D-Bus
| 開発元 | 多数[1] |
|---|---|
| 初版 | 2006年11月 |
| 最新版 | |
| リポジトリ | |
| プログラミング 言語 | C言語 |
| 対応OS | クロスプラットフォーム |
| 前身 |
CORBA DCOP |
| 種別 | |
| ライセンス | GPLv2+またはAFL 2.1[2] |
| 公式サイト |
www |
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つのレイヤーから構成されるアーキテクチャである[3]。
libdbus- 2つのアプリケーションをつなぎ、メッセージを交換することを可能にするライブラリdbus-daemon-libdbus上に作られた実行ファイル形式のメッセージバスデーモン。複数のアプリケーションが接続する。デーモンは1つのアプリケーションから0個以上の複数のアプリケーションにメッセージを配信する。出版-購読型モデルを実装できる。- 特定のアプリケーションフレームワークに基づくラッパーライブラリ
D-Busの設計は、以下の2つのケースに基づいて行われた。
- 同じデスクトップセッション内のデスクトップ環境上のアプリケーション間の通信。全体として、デスクトップセッションを1つに統合する。
- デスクトップセッションとOS間の通信。OSには典型的にはカーネルやシステムデーモンなどが含まれる。
D-Busを利用するソフトウェア
[編集]- HAL (ソフトウェア)(ハードウェアの変更をアプリケーションへ通知する)
- notification-daemon(Xのイベントをアプリケーションに通知する)
- BlueZ (Linux及びAndroidで動作するBluetoothスタック)
参照
[編集]- ^ “Announcing dbus 1.16.2 (stable bugfix release)”. 2025年3月23日閲覧。
- ^ “GPL + AFL”. 2025年4月16日閲覧。
- ^ “Get on the D-BUS”. Linux Journal. 2008年1月23日閲覧。
関連項目
[編集]外部リンク
[編集]- 公式ウェブサイト
- ソースコード - ウェイバックマシン(2008年2月18日アーカイブ分)
- D-Bus 仕様 - ウェイバックマシン(2010年5月21日アーカイブ分)
- D-Bus Tutorial
- IBM D-BUSを使用してデスクトップ・アプリケーションを接続 - ウェイバックマシン(2009年4月8日アーカイブ分)
- D-BUSのWindowsポーティング
- NokiaのLinux開発環境(Maemo)のチュートリアル - ウェイバックマシン(2007年12月16日アーカイブ分)
- MeeGo wiki D-Busオーバービュー - ウェイバックマシン(2010年8月30日アーカイブ分)
- D-Bus入門(kde.org版)