Dconf - Dconf

dconf
Dconf-editor-icon-gnome-3.12.png
редактор dconf
Скриншот редактора dconf, работающего под управлением Arch Linux
Разработчики)Проект GNOME (Эллисон Лорти)
изначальный выпуск16 сентября 2009 г.; 11 лет назад (2009-09-16)
Стабильный выпуск
0.28 / 13 марта 2018 г.; 2 года назад (2018-03-13)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вC
ТипКонфигурация, управление настройками
ЛицензияСтандартная общественная лицензия ограниченного применения GNU
Интернет сайтвики.гном.org/ Проекты/ dconf
Инструмент настройки GNOME дает доступ к определенному популярному подмножеству настроек рабочего стола.

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

Обзор

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

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

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

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

PolicyKit интеграция запланирована так, чтобы обычный пользователь мог временно получить возможность, например, писать на ключи под /система/ (или же /дефолт/). Это означает, что такие программы, как Диспетчер отображения GNOME Утилиту настройки больше не нужно запускать от имени пользователя root.

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

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

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

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

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

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

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

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

база данных dconf

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

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

GVariant

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

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

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

GSettings

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

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

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

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

Системные администраторы гид для dconf доступен. Начиная с версии 0.2, dconf распространяется под лицензией LGPL версия 2.1 "или более поздняя".

История

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

ВерсияДата выходаСущественные изменения
0.12009-09-18
0.22009-10-27
0.32010-05-25
0.42010-07-12
0.52010-09-15
0.62010-12-21
0.72011-05-09
0.82011-07-26
0.92011-09-19
0.102011-09-26
0.112012-03-19
0.122012-05-01
0.132012-08-20
0.142012-11-01
0.152013-02-11
0.162013-07-16
0.172013-09-16
0.182013-09-23
0.192014-03-17
0.202014-03-24dconf compile: всегда писать прямой порядок байтов
0.212014-07-22
0.222014-09-19
0.232015-03-16разделить dconf-editor на отдельный пакет
0.242015-03-23
0.252015-12-16
0.262016-03-23внутренняя часть libdbus-1 удалена; dconf теперь всегда использует GDBus
0.272017-10-17Порт в Система построения мезонов (#784910)

Альтернативы

Электра сохраняет предпочтения в настраиваемых файлах конфигурации, обычно в текстовой форме, такой как INI, XML или JSON. В отличие от dconf, системный администратор выбирает, какие параметры конфигурации должны быть помещены в какой файл (и в каком формате) при монтировании.

Inkscape сохраняет настройки в одном файле XML, расположенном по адресу ~ / .config / Inkscape / preferences.xml (в Linux) и % APPDATA% inkscape preferences.xml (в Windows).[3]

GIMP хранит их в одном файле по адресу /etc/gimp/2.0/gimprc и еще один в $ HOME / .gimp-2.8 / gimprc перезапись глобальных настроек, если это так.

KDE не использует dconf. В KDE настройки хранятся в простых текстовых файлах, расположенных по адресу ~ / .kde / share / config / <имя приложения> rc или же .kde / config / <имя приложения> rc, а не базу данных. Графический интерфейс для изменения этих настроек - это системные настройки, хотя индивидуальные настройки приложения обычно устанавливаются внутри приложения.

Большинство приложений Windows по-прежнему хранят свои пользовательские настройки в отдельных файлах .ini (инициализации), разбросанных по диску. Они дополнительно используют Реестр Windows для хранения информации, которая может быть интересна для другого программного обеспечения. Для таких программ реестр Windows действует скорее как доска объявлений, чем в качестве системы пользовательских настроек. Когда такое приложение удаляется (деинсталлируется), это также скорее по умолчанию, чем исключение, что его записи реестра не очищаются и остаются в базе данных. Реестр Windows довольно обширен и со временем становится все больше и больше. Если пользователь точно не знает, что искать, простой поиск можно сравнить с поиском «иголки в стоге сена». Поэтому по назначению и объему dconf нельзя сравнивать с реестром Windows. Фактически, единственное сходство между dconf и реестром Windows - это использование базы данных.

Реестр Windows состоит из кустов. Каждый улей хранится в отдельном файле (в каталоге C: Windows system32 config системного и загрузочного раздела). Когда система Windows загружается, загрузчик начальной загрузки (тот же, что загружает ядро ​​и другие загрузочные файлы, такие как драйверы загрузки, из загрузочного раздела) загружает файл SYSTEM в память. В кусте SYSTEM хранится много важной информации, включая информацию о том, какие драйверы использовать с какими устройствами, какое программное обеспечение запускать на начальном этапе, и многие параметры, управляющие работой системы. Условные обозначения для организации информации о конфигурации определены плохо.

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

  1. ^ "архивы dconf". Получено 22 апреля 2018.
  2. ^ "gio / gsettings.c · master · GNOME / GLib". GitLab. Получено 22 апреля 2018.
  3. ^ «Inkscape Wiki: подсистема настроек».

внешняя ссылка