Was sind die Unterschiede zwischen gconf und dconf?

57

Ich habe viel über ein neues Ubuntu-Konfigurationstool gelesen: gconf wird durch dconf ersetzt.

Warum wird diese Änderung vorgenommen? Warum wird so viel darüber diskutiert? Ist es zu schwierig, ein Migrationstool für gconf2dconf zu erstellen?

nkint
quelle

Antworten:

65

gconfVerwendet in der Regel ein XML-Backend und dconfeinen eigenen Binär-Blob. Allein aus dieser Änderung können Sie einige Punkte ableiten:

  • Der binäre Lesezugriff ist weitaus schneller als das Parsen von XML
  • Ein Gnome-Login besteht nach Angaben von dconf aus Tausenden von Leseoperationen und nur wenigen Schreibvorgängen. Dazu gconfgehören Tausende von Statistiken, Tausende von Lesevorgängen und Tausende von Parsings. dconfDer binäre Blob würde durch diese hindurchblitzen, ohne das System mit zehntausend IOPs zu überfrachten.
  • XML ist portabler
  • XML ist weitgehend von Menschen lesbar und bearbeitbar.
  • Ein dateibasiertes System kann ohne großen Aufwand getrennt und aufgeteilt werden
  • Die Beschädigung einer Monolith-Binärdatei kann bedeuten, dass das Ganze abstirbt. Einzelne Dateibeschädigung verletzt nur dieses Segment gconf.

Viele der Argumente beziehen sich auf und gegen die Windows-Registrierung.

Soweit ich weiß, ist die Schnittstelle zu diesem Einstellungs-Backend dieselbe wie gconf: through GSettings. Dies würde es Distributionen und Benutzern ermöglichen, eine auszuwählen und bei Bedarf zu wechseln.

Oli
quelle
1
sehr klare Antwort. Lesen Sie Ihre Antwort (vor allem die letzten 3 Punkte) Ich denke, dass Gconf auch wenn langsamer besser ist ..
Nkint
21
Ein weiterer großer Unterschied besteht darin, dass das Lesen von Einstellungen aus dconf vollständig in Bearbeitung erfolgt, wobei IPC nur für Schreibvorgänge und Änderungsbenachrichtigungen verwendet wird. Im Gegensatz dazu beinhaltet fast jede GConf-Operation IPC. Möglicherweise überschätzen Sie auch die Vorteile von GConf mit XML: Die einzige unterstützte Methode für den Zugriff auf die GConf-Datenbank ist die Verwendung der GConf-API. Das direkte Bearbeiten der XML-Dateien während der Ausführung von gconfd kann zu unerwarteten Ergebnissen führen.
James Henstridge
2
Ich denke, der Hauptvorteil der Verwendung von textbasiertem Code ist die Möglichkeit, Teile davon mit einem beliebigen Texteditor zu retten, wenn die Datei teilweise beschädigt ist (aber ich denke, theoretisch ist es möglich, ein Tool zu schreiben, das auch Teile der binären Blobs retten kann ?).
22.
3
Ich denke, der beste Weg zur Rettung wäre, ~ / .config unter Versionskontrolle zu stellen, was es Ihnen ermöglicht, einfach ein Rollback durchzuführen, wenn etwas schief geht. Das würde auch beabsichtigte Konfigurationsänderungen mit unvorhergesehenen Nebenwirkungen beheben.
Jo-Erlend Schinstad,
1
@ Jo-ErlendSchinstad Wenn etwas schief geht, hat man immer die Möglichkeit, auch die Steuerdateien von VCS zu vermasseln.
Ruslan