dconf es un sistema de configuración de bajo nivel y una herramienta de gestión de ajustes. Su principal objetivo es proporcionar un backend para GSettings en plataformas que no disponen de sistemas de almacenamiento de configuración. Depende de GLib . Forma parte de GNOME desde la versión 3 y reemplaza a GConf .
Descripción general
dconf es un sistema de configuración sencillo basado en claves. Las claves existen en una base de datos no estructurada (pero se pretende que las claves que lógicamente pertenecen juntas se agrupen).
Se admite la notificación de cambios.
Se admite el apilamiento de múltiples fuentes de configuración. Se admiten claves obligatorias.
El apilamiento se puede realizar en los puntos de montaje. Por ejemplo, la configuración global del sistema se puede montar en /system/ dentro del espacio de configuración de cada usuario. Una única fuente de configuración puede aparecer en varios puntos de la jerarquía. Por ejemplo, además de apilarse sobre las claves normales en /user/ , las claves predeterminadas del sistema también pueden aparecer en /default/ para su inspección y modificación mediante una utilidad de configuración de políticas del sistema.
La integración de PolicyKit está prevista para que un usuario normal pueda obtener temporalmente la capacidad de, por ejemplo, escribir en las claves de /system/ (o /default/ ). Esto significa que programas como la utilidad de configuración del Administrador de pantalla de GNOME ya no tendrán que ejecutarse como root.
dconf es, a grandes rasgos, el equivalente en GNOME al Registro de Windows .
Arquitectura de software

Dado que un inicio de sesión típico de GNOME implica miles de lecturas e idealmente ninguna escritura, dconf está optimizado para lecturas. Normalmente, leer una clave de dconf no requiere llamadas al sistema ni cambios de contexto. Esto se logra con un formato de archivo sencillo que funciona tanto como formato de almacenamiento de datos en dconf como mecanismo de comunicación entre procesos (IPC) entre los clientes y el servidor.
Evitar los viajes de ida y vuelta y los cambios de contexto es deseable en sí mismo, pero la verdadera ventaja reside en permitir que el planificador de E/S del kernel haga un mejor trabajo saturándolo con solicitudes provenientes de todas las aplicaciones que intentan leer sus claves (en contraposición a un servidor de configuración común que solicita una sola clave en serie).
El hecho de tener todas las claves en un único formato binario compacto también evita los graves problemas de fragmentación que actualmente experimenta el enfoque de árbol de directorios de archivos XML.

Las operaciones de escritura están menos optimizadas : recorren el bus y son gestionadas por un "escritor" ( un servicio D-Bus ) de la forma habitual. La notificación de cambios también la gestiona el escritor. La razón de contar con un servicio de bus es que lograr que los clientes se sincronicen en las operaciones de escritura sería muy difícil.
El servicio de escritura no necesita activarse hasta que se realice la primera operación de escritura.
El servicio no tiene estado y puede iniciarse y detenerse dinámicamente. La lista de notificaciones de cambio que interesan a cada cliente la mantiene el demonio del bus (como una lista de vigilancia/coincidencia de señales D-Bus).
base de datos dconf
Una base de datos dconf consta de un único archivo en formato binario, es decir, no es un archivo de texto. El formato se define como gvdb (archivo de base de datos GVariant). Se trata de un formato de archivo de base de datos sencillo que almacena una correspondencia entre cadenas y valores GVariant de forma extremadamente eficiente para las búsquedas.
El archivo de base de datos de GNOME para cada usuario es, por defecto ~/.config/dconf/user, un archivo que se espera que esté en formato GVDB.
GVariante
GVariant es un tipo de dato variante fuertemente tipado que se utiliza para todos los valores almacenados en dconf; puede contener uno o más valores junto con información sobre el tipo de valores.
Un GVariant puede contener tipos simples, como enteros o valores booleanos; o tipos complejos, como una matriz de dos cadenas o un diccionario de pares clave-valor. Un GVariant también es inmutable: una vez creado, ni su tipo ni su contenido pueden modificarse. GVariant resulta útil cuando se necesita serializar datos, por ejemplo, al enviar parámetros de métodos en DBus o al guardar configuraciones con GSettings.
GVariant forma parte de GLib.
- https://developer.gnome.org/glib/stable/glib-GVariant.html
- https://git.gnome.org/browse/glib/tree/glib/gvariant.c
Configuración de Google
La clase GSettings proporciona una API de alto nivel para que las aplicaciones almacenen y recuperen su propia configuración.
En Debian, el programa de utilidad /usr/bin/gsettingsestá contenido en el paquete libglib2.0-bin .
GSettings forma parte de GIO . [ 2 ] que forma parte de GLib. libglib2.0-0
- https://developer.gnome.org/gio/stable/GSettings.html
- https://git.gnome.org/browse/glib/tree/gio/gsettings.c
Documentación
Existe una guía para administradores de sistemas de dconf. Desde la versión 0.2, dconf está licenciado bajo la LGPL versión 2.1 o posterior.
Historia
Historial de lanzamientos
Referencias
Enlaces externos
- https://wiki.gnome.org/Projects/dconf
- https://download.gnome.org/sources/dconf/
- https://gitlab.gnome.org/GNOME/dconf/
- Gestión de la configuración
- GNOMO
- Software que utiliza Meson