D-Bus開発元多数[1]
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版も開発されている。
機構.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}が望まれています。
D-Busデーモン (dbus-daemon) によってメッセージを管理する。OSの起動中に常時実行されるシステム管理用のデーモンと、該当ログインセッションが有効である期間中実行されるログインセッション管理デーモンの2つがある。システム管理用のデーモンは、プリンタキューの追加やデバイスの追加・削除などを通知する。セッションごとのデーモンは、デスクトップアプリケーション間の通信に使われる。
デーモンとアプリケーションの間の通信としては、ソケットを用いる。 D-Busは、3つのレイヤーから構成されるアーキテクチャである[3]。 D-Busの設計は、以下の2つのケースに基づいて行われた。
アーキテクチャ
libdbus - 2つのアプリケーションをつなぎ、メッセージを交換することを可能にするライブラリ
dbus-daemon - libdbus 上に作られた実行ファイル形式のメッセージバスデーモン。複数のアプリケーションが接続する。デーモンは1つのアプリケーションから0個以上の複数のアプリケーションにメッセージを配信する。出版-購読型モデルを実装できる。
特定のアプリケーションフレームワークに基づくラッパーライブラリ
同じデスクトップセッション内のデスクトップ環境上のアプリケーション間の通信。全体として、デスクトップセッションを1つに統合する。
デスクトップセッションとOS間の通信。OSには典型的にはカーネルやシステムデーモンなどが含まれる。
D-Busを利用するソフトウェア
HAL (ソフトウェア)(ハードウェアの変更をアプリケーションへ通知する)
notification-daemon
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日閲覧。
関連項目.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:#f9f9f9;display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}ポータル FLOSS
freedesktop.org
外部リンク
公式ウェブサイト
⇒ソースコード
⇒D-Bus 仕様
D-Bus Tutorial (英語)
IBM D-BUSを使用してデスクトップ・アプリケーションを接続
D-BUSのWindowsポーティング (英語)
⇒NokiaのLinux開発環境(Maemo)のチュートリアル (英語)
⇒MeeGo wiki D-Busオーバービュー (英語)
表
話
編
歴
freedesktop.orgのプロジェクト
コンポーネント
Avahi
Compiz
D-Bus
DRI
Enchant
Flatpak
kmscon(英語版)
luit(英語版)
nouveau
PackageKit
Plymouth(英語版)
PulseAudio
systemd
Wayland
X.Org Server
Glamor
Xephyr(英語版)
ライブラリ
AppStream
cairo
Fontconfig
glitz
GStreamer
Mesa 3D
fprint
HarfBuzz
Pango
Poppler
Swfdec
Video Acceleration API(英語版)
XCB
Xft
フレームワーク
CppUnit(英語版)
Galago
GeoClue
Open Collaboration Services(英語版)
Telepathy
ミーテイング
Create Project(英語版)
Portland Project