dconf エディタのスクリーンショット | |
| 開発者 | GNOME プロジェクト(アリソン・ローティ) |
|---|---|
| 初回リリース | 2009年9月16日 |
| 安定リリース | 0.40.0 [1]
/ 2021年3月13日 |
| リポジトリ |
|
| 書かれた | C |
| タイプ | 構成、設定管理 |
| ライセンス | GNU 劣等一般公衆利用許諾書 |
| Webサイト | wiki.gnome.org/プロジェクト/dconf |

dconf は、低レベルの構成システムおよび設定管理ツールです。その主な目的は、構成ストレージ システムを備えていないプラットフォームで GSettings のバックエンドを提供することです。これはGLibに依存します。これはバージョン 3 以降のGNOMEの一部であり、GConfの代替です。
概要
dconf は、シンプルなキーベースの設定システムです。キーは非構造化データベースに存在します (ただし、論理的に一緒に属するキーはグループ化されることを目的としています)。
変更通知がサポートされています。
複数の構成ソースのスタックがサポートされています。必須キーがサポートされています。
スタッキングは「マウント ポイント」で行うことができます。たとえば、グローバル システム構成は、各ユーザーの構成スペース内の/system/ の下にマウントできます。単一の構成ソースは、階層内の複数のポイントに表示される場合があります。たとえば、/user/の通常のキーの上にスタッキングするだけでなく、システム デフォルト キーも/default/に表示され、システム ポリシー構成ユーティリティによる検査と変更が可能になります。
PolicyKit の統合は、通常のユーザーが一時的に、たとえば/system/ (または/default/ ) の下のキーに書き込むことができるように計画されています。つまり、GNOME ディスプレイ マネージャー構成ユーティリティなどのプログラムを root として実行する必要がなくなります。
dconf は、 Windows レジストリに相当する GNOME のものです。
ソフトウェアアーキテクチャ
典型的な GNOME ログインは数千回の読み取りと理想的には 0 回の書き込みで構成されているため、dconf は読み取りに最適化されています。通常、dconf からのキーの読み取りには、システム コールもコンテキスト スイッチも必要ありません。これは、dconf 内のデータの保存形式と、クライアントとサーバー間の IPCメカニズムの両方を兼ねるシンプルなファイル形式で実現されています。
ラウンドトリップやコンテキストスイッチを回避すること自体は望ましいことですが、本当の利点[引用が必要]は、カーネル内の I/O スケジューラが、キーを読み取ろうとするすべてのアプリケーションからの要求で飽和状態になることで、より効率的に処理できるようになることです (共通の構成サーバーが 1 つのキーを連続的に要求する場合とは対照的です)。
すべてのキーを単一のコンパクトなバイナリ形式で保持すると、XML ファイルのディレクトリツリー アプローチで現在発生している深刻な断片化の問題も回避できます。

書き込みは最適化が不十分です。書き込みはバスを横断し、通常の方法で「ライター」( D-Busサービス) によって処理されます。変更通知もライターによって処理されます。バス サービスが存在する理由は、クライアントが書き込み時に同期することが非常に困難であるためです。[引用が必要]
最初の書き込み操作が実行されるまで、ライター サービスをアクティブ化する必要はありません。
サービスは完全にステートレスであり、動的に開始および停止できます。個々のクライアントが関心を持つ変更通知のリストは、バス デーモンによって (D-Bus 信号監視/一致リストとして) 維持されます。
dconf データベース
1 つの dconf データベースは、バイナリ形式の 1 つのファイルで構成されます。つまり、テキスト ファイルではありません。形式は gvdb (GVariant データベース ファイル) として定義されています。これは、文字列から GVariant 値へのマッピングを、検索に非常に効率的な方法で保存するシンプルなデータベース ファイル形式です。
各ユーザーの GNOME データベース ファイルはデフォルトで であり~/.config/dconf/user、GVDB 形式であることが想定されています。
Gバリアント
GVariant は、dconf に格納されるすべての値に使用される、厳密に型指定されたバリアント データ型です。1 つ以上の値と、値の型に関する情報を含めることができます。
GVariant には、整数やブール値などの単純な型、または 2 つの文字列の配列やキーと値のペアの辞書などの複雑な型を含めることができます。また、GVariant は不変です。つまり、一度作成されると、その型も内容もそれ以上変更することはできません。GVariant は、たとえば DBus でメソッド パラメータを送信するときや、GSettings を使用して設定を保存するときなど、データをシリアル化する必要がある場合に便利です。
GVariant は GLib の一部です。
- https://developer.gnome.org/glib/stable/glib-GVariant.html
- https://git.gnome.org/browse/glib/tree/glib/gvariant.c [永久リンク切れ ]
G設定
GSettings クラスは、アプリケーションが独自の設定を保存および取得するための高レベル API を提供します。
Debian では、ユーティリティ プログラムは/usr/bin/gsettingslibglib2.0-bin パッケージに含まれています。
GSettingsはGIOの一部です。[2] GIOはGLibの一部です。libglib2.0-0
- https://developer.gnome.org/gio/stable/GSettings.html
- https://git.gnome.org/browse/glib/tree/gio/gsettings.c [永久リンク切れ ]
ドキュメント
dconf のシステム管理者ガイドが利用可能です。バージョン 0.2 以降、dconf はLGPLバージョン 2.1 以降でライセンスされています。
歴史
リリース履歴
参考文献
- ^ “リリース 0.40.0”. 2021年3月13日. 2021年4月10日閲覧。
- ^ "gio/gsettings.c · master · GNOME / GLib". GitLab . 2018年4月22日閲覧。[永久リンク切れ ]
外部リンク
- https://wiki.gnome.org/Projects/dconf
- https://download.gnome.org/sources/dconf/
- https://gitlab.gnome.org/GNOME/dconf/
