D-Bus

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
D-Bus
開発元 多数[1]
最新版 1.6.12[1] / 2013年06月13日(12か月前) (2013-06-13
対応OS クロスプラットフォーム
種別 ライブラリ
ライセンス GPLまたはAcademic Free License
公式サイト freedesktop.org/wiki/Software/dbus
テンプレートを表示

D-Bus (Desktop Bus) はメッセージバスと呼ばれる、アプリケーション間でやりとりを行うための、プロセス間通信(IPC)実装のひとつ。加えて、プロセスの生成期間を調節し、それらのサービスが必要なときに簡単に呼び出すことが出来るようにするものである。軽量さ、低依存度を保って開発されている。

D-BusはKDE (バージョン2~3) 独自のIPC実装であるDCOPから影響されて生まれ、KDE4 (Qt4) で採用された。GNOMEも独自のIPC実装であるBonoboからD-Busへ移行している。Linuxでもudevによるマウントメッセージの通知を行う際にD-Busを使っている。X.Org Server7.3からはD-Busによる実行時の設定が可能になっている。

D-Busは現在、多くの言語とライブラリとのバインディングを持ち、C言語, Java, C++, C#, Python, Ruby, Perl, GTK+, Qt, Maemo(携帯端末用のデスクトップ環境)などから利用出来る。さらに、Unix系OSだけでなくWindowsへの移植も行われている (winDBusという名前の別プロジェクト)。

機構[編集]

D-Busデーモン (dbus-daemon) によってメッセージを管理する。該当OSの起動中ずっと動くシステム管理用のデーモンと、該当ログインセッションが有効である期間中動くログインセッション管理デーモンの2つがある。システム管理用のデーモンはプリンタキューの追加やデバイスの追加・削除などを通知する。セッションごとのデーモンはデスクトップアプリケーション間の通信に使われる。

デーモンとアプリケーションの間の通信としては、ソケットを用いている。

アーキテクチャ[編集]

D-Bus は3つのアーキテクチャレイヤーからなる[2]

  1. libdbus - 2つのアプリケーションをつなぎ、メッセージを交換することを可能にするライブラリ
  2. dbus-daemon - libdbus 上に作られた実行ファイル形式のメッセージバスデーモン。複数のアプリが接続する。デーモンは1つのアプリケーションから0個以上の複数のアプリケーションにメッセージを配信する。出版-購読型モデルを実装できる。
  3. 特定のアプリケーションフレームワークに基づくラッパーライブラリ

D-Bus の設計は以下の2つのケースに基づく。

  1. 同じデスクトップセッション内のデスクトップ環境上のアプリケーション間の通信。全体として、デスクトップセッションを1つに統合する。
  2. デスクトップセッションとオペレーティングシステム間の通信。オペレーティングシステムには典型的にはカーネルやシステムデーモンなどが含まれる。

D-Busを用いているソフトウェア[編集]

関連項目[編集]

参照[編集]

  1. ^ Announcing dbus 1.6.12” (2013年6月13日). 2013年6月14日閲覧。
  2. ^ Get on the D-BUS”. Linux Journal. 2008年1月23日閲覧。

外部リンク[編集]