D-Bus
| 開発元 | 多数[1] |
|---|---|
| 最新版 | 1.2.12 (および1.2.4.4premissive).20 / 2009年1月7日 |
| 対応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つのアーキテクチャレイヤーからなる[1]。
libdbus- 2つのアプリケーションをつなぎ、メッセージを交換することを可能にするライブラリdbus-daemon-libdbus上に作られた実行ファイル形式のメッセージバスデーモン。複数のアプリが接続する。デーモンは1つのアプリケーションから0個以上の複数のアプリケーションにメッセージを配信する。出版-購読型モデルを実装できる。- 特定のアプリケーションフレームワークに基づくラッパーライブラリ
D-Bus の設計は以下の2つのケースに基づく。
- 同じデスクトップセッション内のデスクトップ環境上のアプリケーション間の通信。全体として、デスクトップセッションを1つに統合する。
- デスクトップセッションとオペレーティングシステム間の通信。オペレーティングシステムには典型的にはカーネルやシステムデーモンなどが含まれる。
D-Busを用いているソフトウェア [編集]
- HAL (ソフトウェア) (ハードウェアの変更をアプリケーションへ通知する)
- notification-daemon (Xのイベントをアプリケーションに通知する)
関連項目 [編集]
参照 [編集]
- ^ “Get on the D-BUS”. Linux Journal. 2008年1月23日閲覧。
外部リンク [編集]
- Freedesktop.org - Software/dbus(英語)
- ソースコード
- D-Bus 仕様
- D-Bus Tutorial(英語)
- IBM D-BUSを使用してデスクトップ・アプリケーションを接続
- D-BUSのWindowsポーティング (英語)
- NokiaのLinux開発環境(Maemo)のチュートリアル(英語)
- MeeGo wiki D-Busオーバービュー(英語)
|
||||||||||||||||
|
|||||||||||||||||||||