D-Bus

出典: フリー百科事典『ウィキペディア(Wikipedia)』

出典: フリー百科事典『ウィキペディア(Wikipedia)』
D-Bus
開発元 多数[1]
最新版 1.12.12[1] / 2018年12月4日(3か月前) (2018-12-04
最新評価版 1.13.8[2] / 2018年12月4日(3か月前) (2018-12-04
リポジトリ cgit.freedesktop.org/dbus/dbus/
対応OS クロスプラットフォーム
種別 ライブラリ
ライセンス GPLまたはAcademic Free License
公式サイト freedesktop.org/wiki/Software/dbus
テンプレートを表示

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言語JavaC++C#PythonRubyPerlGTK+QtMaemo(携帯端末用のデスクトップ環境)などから利用できる。さらに、Unix系OSだけでなく、winDBusという名前の別プロジェクトとしてWindows版も開発されている。

機構[編集]

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

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

アーキテクチャ[編集]

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

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

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

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

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

  • HAL (ソフトウェア) (ハードウェアの変更をアプリケーションへ通知する)
  • notification-daemon(Xのイベントをアプリケーションに通知する)

関連項目[編集]

参照[編集]

  1. ^ index : dbus/dbus” (2018年12月4日). 2019年2月17日閲覧。
  2. ^ index : dbus/dbus” (2018年12月4日). 2019年2月17日閲覧。
  3. ^ Get on the D-BUS”. Linux Journal. 2008年1月23日閲覧。