stringtranslate.com

dconf

GNOME Tweak Tool предоставляет доступ к определенному популярному подмножеству настроек рабочего стола.

dconf — это низкоуровневая система конфигурации и инструмент управления настройками. Его основная цель — предоставить серверную часть GSettings на платформах, на которых еще нет систем хранения конфигурации. Это зависит от GLib . Он является частью GNOME начиная с версии 3 и заменяет GConf .

Обзор

dconf — это простая система конфигурации на основе ключей. Ключи существуют в неструктурированной базе данных (но предполагается, что ключи, которые логически принадлежат друг другу, группируются вместе).

Уведомление об изменении поддерживается.

Поддерживается стекирование нескольких источников конфигурации. Обязательные ключи поддерживаются.

Укладку можно выполнять в «точках монтирования». Например, глобальную конфигурацию системы можно смонтировать в /system/ внутри пространства конфигурации каждого пользователя. Один источник конфигурации может присутствовать в нескольких точках иерархии. Например, в дополнение к обычным ключам в /user/ системные ключи по умолчанию также могут появляться в /default/ для проверки и изменения с помощью утилиты настройки системной политики.

Интеграция PolicyKit запланирована таким образом, чтобы обычный пользователь мог временно получить возможность, например, записывать ключи в /system/ (или /default/ ). Это означает, что такие программы, как утилита настройки GNOME Display Manager, больше не нужно запускать от имени пользователя root.

dconf — это во многом эквивалент реестра Windows в GNOME .

Архитектура программного обеспечения

Поскольку типичный вход в систему GNOME состоит из тысяч операций чтения и, в идеале, 0 операций записи, dconf оптимизирован для чтения. Обычно чтение ключа из dconf не требует никаких системных вызовов и переключений контекста. Это достигается с помощью простого формата файла, который одновременно служит форматом хранения данных в dconf и механизмом IPC между клиентами и сервером.

Избегать циклических обходов и переключений контекста желательно само по себе, но настоящее преимущество [ нужна цитата ] заключается в том, что планировщик ввода-вывода в ядре может лучше выполнять свою работу, насыщая его запросами, поступающими от всех приложений, пытающихся прочитать их. ключи (в отличие от обычного сервера конфигурации, последовательно запрашивающего один ключ за раз).

Наличие всех ключей в одном компактном двоичном формате также позволяет избежать серьезных проблем фрагментации, с которыми в настоящее время сталкивается подход «дерево каталогов XML-файлов».

dconf Архитектура
dconf Архитектура

Запись менее оптимизирована — она проходит по шине и обрабатывается «писателем» — службой D-Bus — обычным способом. Уведомление об изменении также обрабатывается автором. Причина существования автобусной службы заключается в том, что синхронизация клиентов при записи будет очень сложной. [ нужна цитата ]

Службу записи не нужно активировать до тех пор, пока не будет выполнена первая операция записи.

Служба полностью не сохраняет состояние и может запускаться и останавливаться динамически. Список уведомлений об изменениях, в которых заинтересован отдельный клиент, поддерживается демоном шины (как список наблюдения/соответствия сигналов D-Bus).

база данных dconf

Одна база данных dconf состоит из одного файла в двоичном формате, т.е. это не текстовый файл. Формат определяется как gvdb (файл базы данных GVariant). Это простой формат файла базы данных, в котором сохраняется сопоставление строк со значениями GVariant, что чрезвычайно эффективно для поиска.

По умолчанию файл базы данных GNOME для каждого пользователя — ~/.config/dconf/userэто файл в формате GVDB.

GВариант

GVariant — это строго типизированный вариантный тип данных , используемый для всех значений, хранящихся в dconf; он может содержать одно или несколько значений вместе с информацией о типе значений.

GVariant может содержать простые типы, например целые числа или логические значения; или сложные типы, такие как массив из двух строк или словарь пар ключ-значение. GVariant также является неизменяемым: после его создания ни его тип, ни его содержимое не могут быть изменены в дальнейшем. GVariant полезен, когда данные необходимо сериализовать, например, при отправке параметров метода в DBus или при сохранении настроек с помощью GSettings.

GVariant является частью GLib.

GНастройки

Класс GSettings предоставляет приложению API высокого уровня для хранения и получения собственных настроек.

Утилита /usr/bin/gsettingsсодержится в libglib2.0-bin.

GSettings является частью GIO . [2] который является частью GLib. libglib2.0-0

Документация

Доступно руководство системного администратора по dconf. Начиная с версии 0.2, dconf лицензируется по лицензии LGPL версии 2.1 «или новее».

История

История выпусков

Рекомендации

  1. ^ «Выпуск 0.40.0» . 13 марта 2021 г. Проверено 10 апреля 2021 г.
  2. ^ «gio/gsettings.c · мастер · GNOME / GLib». ГитЛаб . Проверено 22 апреля 2018 г.[ постоянная мертвая ссылка ]

Внешние ссылки