dconf
![]() | |
![]() Скриншот редактора dconf | |
Разработчик(и) | Проект GNOME (Эллисон Лорти) |
---|---|
Первоначальный выпуск | 16 сентября 2009 г |
Стабильная версия | 0.40.0 [1] ![]() |
Репозиторий | |
Написано в | С |
Тип | Конфигурация, управление настройками |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | неделя |

dconf — это низкоуровневая система конфигурации и инструмент управления настройками. Его основная цель — предоставить серверную часть GSettings на платформах , на которых еще нет систем хранения конфигурации. Это зависит от GLib . Он является частью GNOME начиная с версии 3 и заменяет GConf .
Обзор
[ редактировать ]dconf — это простая система конфигурации на основе ключей. Ключи существуют в неструктурированной базе данных (но предполагается, что ключи, которые логически принадлежат друг другу, группируются вместе).
Уведомление об изменении поддерживается.
Поддерживается стекирование нескольких источников конфигурации. Обязательные ключи поддерживаются.
Укладку можно выполнять в «точках монтирования». Например, глобальную конфигурацию системы можно смонтировать под /system/ внутри пространства конфигурации каждого пользователя. Один источник конфигурации может присутствовать в нескольких точках иерархии. Например, в дополнение к наложению обычных клавиш на /user/ ключи системы по умолчанию также могут появиться по адресу /default/ для проверки и изменения с помощью утилиты настройки системной политики.
Интеграция PolicyKit запланирована таким образом, чтобы обычный пользователь мог временно получить возможность, например, записывать ключи под /система/ (или /по умолчанию/ ). Это означает, что такие программы, как утилита настройки GNOME Display Manager, больше не нужно запускать от имени пользователя root.
dconf — это во многом эквивалент реестра Windows в GNOME .
Архитектура программного обеспечения
[ редактировать ]Поскольку типичный вход в систему GNOME состоит из тысяч операций чтения и, в идеале, 0 операций записи, dconf оптимизирован для чтения. Обычно чтение ключа из dconf не требует никаких системных вызовов и переключений контекста. Это достигается с помощью простого формата файла, который одновременно служит форматом хранения данных в dconf и механизмом IPC между клиентами и сервером.
Избегать циклических обходов и переключений контекста желательно само по себе, но реальное преимущество [ нужна ссылка ] происходит за счет того, что планировщик ввода-вывода в ядре может лучше выполнять свою работу, насыщая его запросами, поступающими от всех приложений, пытающихся прочитать свои ключи (в отличие от обычного сервера конфигурации, последовательно запрашивающего один ключ за раз).
Наличие всех ключей в одном компактном двоичном формате также позволяет избежать серьезных проблем фрагментации, с которыми в настоящее время сталкивается подход «дерево каталогов XML-файлов».

Запись менее оптимизирована — она проходит по шине и обрабатывается «писателем» — службой D-Bus — обычным способом. Уведомление об изменении также обрабатывается автором. Причина существования автобусной службы заключается в том, что заставить клиентов синхронизироваться при записи будет очень сложно. [ нужна ссылка ]
Службу записи не нужно активировать до тех пор, пока не будет выполнена первая операция записи.
Служба полностью не сохраняет состояние и может запускаться и останавливаться динамически. Список уведомлений об изменениях, в которых заинтересован отдельный клиент, поддерживается демоном шины (как список наблюдения/соответствия сигналов D-Bus).
база данных dconf
[ редактировать ]Одна база данных dconf состоит из одного файла в двоичном формате, т.е. это не текстовый файл. Формат определяется как gvdb (файл базы данных GVariant). Это простой формат файла базы данных, в котором сохраняется сопоставление строк со значениями GVariant, что чрезвычайно эффективно для поиска.
Файл базы данных GNOME для каждого пользователя по умолчанию ~/.config/dconf/user
, файл, который, как ожидается, будет в формате GVDB.
GВариант
[ редактировать ]GVariant — это строго типизированный вариантный тип данных, используемый для всех значений, хранящихся в dconf; он может содержать одно или несколько значений вместе с информацией о типе значений.
GVariant может содержать простые типы, например целые числа или логические значения; или сложные типы, такие как массив из двух строк или словарь пар ключ-значение. GVariant также является неизменяемым: после его создания ни его тип, ни его содержимое не могут быть изменены в дальнейшем. GVariant полезен, когда данные необходимо сериализовать, например, при отправке параметров метода в DBus или при сохранении настроек с помощью GSettings.
GVariant является частью GLib.
- https://developer.gnome.org/glib/stable/glib-GVariant.html
- https://git.gnome.org/browse/glib/tree/glib/gvariant.c [ постоянная мертвая ссылка ]
GНастройки
[ редактировать ]Класс GSettings предоставляет приложению API высокого уровня для хранения и получения собственных настроек.
В Debian служебная программа /usr/bin/gsettings
содержится в пакете libglib2.0-bin .
GSettings является частью GIO . [2] который является частью GLib. libglib2.0-0
- https://developer.gnome.org/gio/stable/GSettings.html
- https://git.gnome.org/browse/glib/tree/gio/gsettings.c [ постоянная мертвая ссылка ]
Документация
[ редактировать ]системного администратора руководство Доступно по dconf. Начиная с версии 0.2, dconf лицензируется по лицензии LGPL версии 2.1 «или новее».
История
[ редактировать ]История выпусков
[ редактировать ]Версия | Дата выпуска | Значительные изменения |
---|---|---|
0.1 | 2009-09-18 | |
0.2 | 2009-10-27 | |
0.3 | 2010-05-25 | |
0.4 | 2010-07-12 | |
0.5 | 2010-09-15 | |
0.6 | 2010-12-21 | |
0.7 | 2011-05-09 | |
0.8 | 2011-07-26 | |
0.9 | 2011-09-19 | |
0.10 | 2011-09-26 | |
0.11 | 2012-03-19 | |
0.12 | 2012-05-01 | |
0.13 | 2012-08-20 | |
0.14 | 2012-11-01 | |
0.15 | 2013-02-11 | |
0.16 | 2013-07-16 | |
0.17 | 2013-09-16 | |
0.18 | 2013-09-23 | |
0.19 | 2014-03-17 | |
0.20 | 2014-03-24 | Компиляция dconf: всегда писать с прямым порядком байтов |
0.21 | 2014-07-22 | |
0.22 | 2014-09-19 | |
0.23 | 2015-03-16 | разделить dconf-editor на отдельный пакет |
0.24 | 2015-03-23 | |
0.25 | 2015-12-16 | |
0.26 | 2016-03-23 | серверная часть libdbus-1 удалена; dconf теперь всегда использует GDBus |
0.27 | 2017-10-17 | Перенос в систему сборки Meson (#784910) |
Ссылки
[ редактировать ]- ^ «Выпуск 0.40.0» . 13 марта 2021 г. Проверено 10 апреля 2021 г.
- ^ «gio/gsettings.c · мастер · GNOME / GLib» . ГитЛаб . Проверено 22 апреля 2018 г. [ постоянная мертвая ссылка ]