D-Bus
D-Bus(Desktop Bus、ディーバス)は、メッセージバスと呼ばれる、アプリケーション間でやりとりを行うための、プロセス間通信 (IPC) 実装の1つである。プロセスの生成期間を調節し、それらのサービスが必要なときに簡単に呼び出すことができるようにすることができる。軽量さ、低依存度を保って開発されている。
開発元 | 多数[1] |
---|---|
最新版 |
1.12.16[1]
/ 2019年6月11日 |
最新評価版 |
1.13.12[2]
/ 2019年6月11日 |
リポジトリ | |
対応OS | クロスプラットフォーム |
種別 | ライブラリ |
ライセンス | GPLまたはAcademic Free License |
公式サイト |
www |
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つのレイヤーから構成されるアーキテクチャである[3]。
libdbus
- 2つのアプリケーションをつなぎ、メッセージを交換することを可能にするライブラリdbus-daemon
-libdbus
上に作られた実行ファイル形式のメッセージバスデーモン。複数のアプリケーションが接続する。デーモンは1つのアプリケーションから0個以上の複数のアプリケーションにメッセージを配信する。出版-購読型モデルを実装できる。- 特定のアプリケーションフレームワークに基づくラッパーライブラリ
D-Busの設計は、以下の2つのケースに基づいて行われた。
- 同じデスクトップセッション内のデスクトップ環境上のアプリケーション間の通信。全体として、デスクトップセッションを1つに統合する。
- デスクトップセッションとOS間の通信。OSには典型的にはカーネルやシステムデーモンなどが含まれる。
D-Busを利用するソフトウェア
編集- HAL (ソフトウェア)(ハードウェアの変更をアプリケーションへ通知する)
- notification-daemon(Xのイベントをアプリケーションに通知する)
- BlueZ (Linux及びAndroidで動作するBluetoothスタック)
参照
編集- ^ “index : dbus/dbus” (2019年6月11日). 2019年12月22日閲覧。
- ^ “index : dbus/dbus” (2019年6月11日). 2019年12月22日閲覧。
- ^ “Get on the D-BUS”. Linux Journal. 2008年1月23日閲覧。