stringtranslate.com

conferencia d

La herramienta de ajustes de GNOME brinda acceso a un determinado subconjunto popular de configuraciones del escritorio.

dconf es un sistema de configuración de bajo nivel y una herramienta de gestión de configuraciones. Su principal propósito es proporcionar un back end para GSettings en plataformas que aún no tienen sistemas de almacenamiento de configuración. Depende de GLib . Es parte de GNOME a partir de la versión 3 y es un reemplazo de GConf .

Descripción general

dconf es un sistema de configuración simple basado en claves. Las claves existen en una base de datos no estructurada (pero se pretende que las claves que pertenecen juntas lógicamente estén agrupadas).

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 "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 por parte de 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 de GNOME Display Manager ya no tienen que ejecutarse como root.

dconf es, en líneas generales, el equivalente en GNOME del Registro de Windows .

Arquitectura de software

Dado que un inicio de sesión típico de GNOME consta de miles de lecturas e idealmente ninguna escritura, dconf está optimizado para lecturas. Normalmente, leer una clave desde dconf implica cero llamadas al sistema y cero cambios de contexto. Esto se logra con un formato de archivo simple que funciona como formato de almacenamiento de datos en dconf y como mecanismo de IPC entre los clientes y el servidor.

Evitar viajes de ida y vuelta y cambios de contexto es deseable en sí mismo, pero la verdadera ventaja [ cita requerida ] proviene de permitir que el programador de E/S en el núcleo haga un mejor trabajo al saturarlo con solicitudes provenientes de todas las aplicaciones que intentan leer sus claves (a diferencia de un servidor de configuración común que solicita en serie una sola clave a la vez).

Tener todas las claves en un único formato binario compacto también evita los intensos problemas de fragmentación que actualmente experimenta el enfoque de árbol de directorios de archivos xml.

Arquitectura de dconf
Arquitectura de dconf

Las escrituras están menos optimizadas: recorren el bus y las gestiona un "escritor" (un servicio D-Bus) de la forma habitual. El escritor también gestiona la notificación de cambios. La razón de tener un servicio de bus es que conseguir que los clientes se sincronicen al escribir sería muy difícil. [ cita requerida ]

No es necesario activar el servicio de escritura hasta que se realice la primera operación de escritura.

El servicio no tiene ningún estado y puede iniciarse y detenerse de forma dinámica. La lista de notificaciones de cambios que le interesan a un cliente individual la mantiene el demonio de bus (como una lista de observación/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). Es un formato de archivo de base de datos simple que almacena una asignación de cadenas a valores GVariant de una manera que resulta extremadamente eficiente para las búsquedas.

El archivo de base de datos de GNOME para cada usuario es, de forma predeterminada ~/.config/dconf/user, un archivo que se espera que esté en formato GVDB.

GVariante

GVariant es un tipo de datos 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 los valores.

Una GVariant puede contener tipos simples, como números enteros o valores booleanos, o tipos complejos, como una matriz de dos cadenas o un diccionario de pares clave-valor. Una GVariant también es inmutable: una vez que se ha creado, ni su tipo ni su contenido se pueden modificar más. GVariant es útil siempre que sea necesario serializar datos, por ejemplo, al enviar parámetros de método en DBus o al guardar configuraciones mediante GSettings.

GVariant es parte de GLib.

GConfiguración

La clase GSettings proporciona una API de alto nivel para que las aplicaciones almacenen y recuperen sus propias configuraciones.

En Debian, el programa de utilidad /usr/bin/gsettingsestá contenido en el paquete libglib2.0-bin.

GSettings es parte de GIO . [2] que es parte de GLib. libglib2.0-0

Documentación

Hay disponible una guía para administradores de sistemas sobre dconf. Desde la versión 0.2, dconf tiene licencia LGPL versión 2.1 "o posterior".

Historia

Historial de versiones

Referencias

  1. ^ "Versión 0.40.0". 13 de marzo de 2021. Consultado el 10 de abril de 2021 .
  2. ^ "gio/gsettings.c · master · GNOME / GLib". GitLab . Consultado el 22 de abril de 2018 .[ enlace muerto permanente ]

Enlaces externos