読み方 : ディーバス

D-Bus【Desktop Bus】

概要

D-Busとは、Linuxで動作する複数のプログラム間でメッセージをやり取りするための共通の通信基盤の一つ。あるプログラムから別のプログラムへ処理を依頼したり、状態の変化を一斉に通知したりする仕組みを提供する。
D-Busのイメージ画像

コンピュータ上では複数のプログラムが独立したメモリ空間でそれぞれ動作するため、プログラム同士が直接データを共有することはできない。D-Busは「バス」(bus)と呼ばれる共有の通信路を介することで、この制約を超えたプログラム間の連携を可能にする。

通信の形式としては、特定の相手に処理を依頼して応答を受け取る「遠隔手続き呼び出し」(RPC)や、状態の変化を複数のプログラムへ一斉に知らせる「シグナル」(signal)などがある。シグナルは受け取りたいプログラムが事前に登録しておく仕組みであり、イベントの発生を契機に連鎖的な処理を起こすことができる。

バスの種類は用途に応じて二つに分けられる。システム全体で一つだけ動作する「システムバス」(system bus)は、ハードウェアの管理やシステムサービスとの通信に用いられる。一方、利用者がログインする度に個別に起動する「セッションバス」(session bus)は、その利用者が実行するアプリケーション間の連携に使われる。例えば、USB機器が接続された際にオペレーティングシステム(OS)がその事実を検知し、デスクトップ環境ファイル管理ソフトへ即座に伝達する動作はシステムバスを通じて実現される。

従来のLinux環境では、プログラム間の通信(IPCInter-Process Communication)に「ソケット」(socket)や「パイプ」(pipe)などが用いられてきたが、それぞれ通信方式やデータ形式が異なるため、異なるソフトウェア間での連携は容易でなかった。D-Busはこうした状況を改善するために設計され、標準化されたメッセージ形式とインターフェース定義によって共通の通信手段を提供する。現在では主要なLinuxディストリビューションに標準で組み込まれており、デスクトップ環境だけでなく組み込み機器やサーバでも広く利用されている。

(2026.6.27更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。