D-Bus

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

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) だけでなく、winDBusという名前の別プロジェクトとしてWindows版も開発されている。

 機構 

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

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

アーキテクチャ
D-Busは、3つのレイヤーから構成されるアーキテクチャである。

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

D-Busの設計は、以下の2つのケースに基づいて行われた。

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

 D-Busを利用するソフトウェア 
HAL (ソフトウェア)（ハードウェアの変更をアプリケーションへ通知する）
notification-daemon（Xのイベントをアプリケーションに通知する）
BlueZ (Linux及びAndroidで動作するBluetoothスタック)

参照

 関連項目 

 freedesktop.org

 外部リンク 



 D-Bus Tutorial 

 D-BUSのWindowsポーティング 


 D-Bus入門(kde.org版)

Category:GNOME
Category:KDE
Category:OSのプロセス管理
Category:UNIX
Category:Freedesktop.org
Category:遠隔手続き呼出し