DBus

DBus
D-Bus
Entwickler: D-Bus-Team
Aktuelle Version: 1.2.12
(7. Januar 2009)
Betriebssystem: Unix, Linux, Windows
Kategorie: Programmbibliothek, daemon, Framework
Lizenz: GPL oder Academic Free License
Deutschsprachig: ja
freedesktop.org/Software/dbus

D-Bus ist ein freies IPC-Framework, also ein Software-System für die Interprozesskommunikation, welches sich insbesondere an den Bedürfnissen von Desktopumgebungen einer graphischen Benutzeroberfläche orientiert.

Es ist Bestandteil des freedesktop.org-Projektes und wird nahezu bei jeder modernen Linux-Distribution eingesetzt, die über eine graphische Oberfläche verfügt. In seiner Gesamtheit stellt D-Bus mit all seinen Komponenten allgemein eine leichtgewichtige Middleware dar, sowie im Speziellen einen Object Request Broker (ORB).

Inhaltsverzeichnis

Grundlagen

Ein vereinfachtes Kommunikationsschema: Ein Datei-Browser kriegt von einem Hardwareüberwachungsprogramm mitgeteilt, dass neue Hardware angeschlossen wurde

Über D-Bus können Programme miteinander kommunizieren. Im rechts gezeigten Beispiel meldet sich ein Datei-Manager-Programm bei einem systemweiten Programm an, welches über die Hardware, die am Computer angeschlossen ist, informiert (in diesem Beispiel der Hardware Abstraction Layer-Dämon, kurz hal-Dämon). Der hal-Dämon informiert nun bei Änderungen an der Hardware das Datei-Manager-Program darüber. Dadurch kann dieses nun z.B. beim Einstecken eines USB-Sticks automatisch diesen mounten und die Inhalte darstellen.

Funktionsweise

Einzelne Programme bekommen über die Softwarebibliothek libdbus die Möglichkeit, sich paarweise gegenseitig zu kontaktieren und Nachrichten auszutauschen. Angesprochen werden jeweils Objekte, deren Benennung an Dateisystempfade erinnert, etwa /org/kde/kspread/sheets/3/cells/4/5. Um sicherzustellen, dass verschiedene Programme auseinandergehalten werden können, sind die D-Bus-Objekte in einem Namensraum zusammengefasst. Diese Namensräume enthalten meist den Domainnamen der Entwickler (zum Beispiel /org/kde für die Programme von kde.org).

Daneben existiert ein ausführbarer Nachrichtenbusdaemon dbus, mit dem sich mehrere Anwendungen verbinden können. Der Daemon kann Nachrichten von einer Anwendung an eine oder mehrere Anwendungen weiterleiten.

Gedacht ist D-Bus zum einen für die Kommunikation zwischen Desktopanwendungen derselben Sitzung (der sogenannte Session-Bus) und zum anderen für die Kommunikation zwischen der Desktopsitzung und Teilen des Betriebssystems wie dem Kernel, den verschiedenen Systemdaemonen oder Systemprozessen (System-Bus).

Geschichtliches

Bereits vor der Einführung eines standardisierten Nachrichtensystems für Desktop-Anwendungen durch freedesktop.org haben die beiden verbreitetsten Desktop Environments KDE und GNOME jeweils ihre eigenen, zueinander inkompatiblen Implementierungen des gleichen Konzepts entwickelt, und zwar DCOP (Desktop Communication Protocol) für KDE und Corba (Common Object Request Broker Architecture) für GNOME.

D-Bus verfügt über mehr Funktionen und wurde von den Desktop Environments bereits nach der Standardisierung schnell angenommen, sodass die Implementierungen der eigenen Systeme zugunsten des Standards schnell fallengelassen wurden. Das Standardprotokoll wurde damit zu einem maßgeblichen Faktor für den Linux-Desktop, da die Diskrepanzen zwischen den Desktop Environments damit zunehmend fallen.

Komponenten

Die D-Bus-Spezifikation besteht aus drei Teilen, und zwar im Einzelnen dem D-Bus-Daemon, der D-Bus-Bibliothek libdbus sowie dem eigentlichen D-Bus-Protokoll.

D-Bus-Daemon

Der D-Bus-Daemon implementiert einen sogenannten Nachrichtenbus (message bus), der in seiner Funktion einem Object Request Broker gleich kommt. Eine beliebige Anzahl von Clients verbindet sich mit dem daemon, basierend auf dem D-Bus-Protokoll und in der Regel unter Zuhilfenahme von libdbus. Einzelne (L)RPC-Aufrufe werden vom daemon entgegen genommen und an den zuständigen Client vermittelt, der daemon ist somit ein Broker. Die (L)RPC-Aufrufe agieren auf abstrakten Objekten und stellen in Anlehnung an das OOP-Objektmodel demnach Methodenaufrufe dar. Ferner bietet der daemon noch Dienste wie 'Activation' an, sodass er in seiner Funktion wohl als Object Request Broker betrachtet werden darf. Zuletzt stellt der daemon natürlich zeitgleich basierend auf den Einzelverbindungen eine one-to-many-Kommunikation (Broadcast) zur Verfügung

D-Bus-Bibliothek (libdbus)

Die D-Bus-Bibliothek stellt eine Referenzimplementierung des D-Bus-Protokolls bzw. der D-Bus-Spezifikation als Ganzes dar. Sie bietet eine API in der Programmiersprache C, mit der zwei Prozesse eine Verbindung eingehen können, um danach via LRPC/RPC zu kommunizieren. Sie stellt weiterhin das nötige Marshalling zur Verfügung, also das Ausrichten und korrekte Anordnen der Bytes für den Transport. Letztlich bietet die API alle Dienste für eine einfach abstrahierte Punkt-zu-Punkt- (Prozess-zu-Prozess-) Interprozesskommunikation.

Aufbauend auf libdbus haben sich Implementierungen für alle verbreiteten Programmiersprachen und Frameworks entwickelt, bei letzterem insbesondere auf Qt und Glib (Gtk+) zugeschnittene Implementierungen.

D-Bus-Protokoll

Das D-Bus-Protokoll ist ein binäres IPC-Protokoll. Spezifiziert sind sowohl Primitivtypen als auch zulässige Nachrichtentypen sowie die Kodierung für den Transport. Grundlegend basiert das Protokoll auf dem Prinzip des Nachrichtentauschs und spezifiziert darauf basierende entfernte Aufrufe (LRPCs/RPCs).

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Dbus — may refer to: Dbus, or Ü (both transcriptions of [y˧˥˧ʔ]), a region of Tibet that is now part of Ü Tsang The Central Tibetan language of this province The Standard Tibetan language, based on a dialect of the earlier Dbus language D Bus or Desktop …   Wikipedia

  • Dbus — D Bus Entwickler: D Bus Team Aktuelle Version: 1.2.12 (7. Januar 2009) Betriebssystem: Unix, Linux, Windows Ka …   Deutsch Wikipedia

  • DbUs — Ü (tibetisch དབུས dbUs = ‚die Mitte‘) ist die alte zentraltibetische (Kultur ) Provinz mit der Hauptstadt Lhasa und bildet zusammen mit der weiter westlich anschließenden Provinz Tsang (tib. gtsang, Sitz in Xigazê) das kulturhistorische Herz des… …   Deutsch Wikipedia

  • DBus — D Bus Pour les articles homonymes, voir Bus. D Bus …   Wikipédia en Français

  • Dbus — D Bus Pour les articles homonymes, voir Bus. D Bus …   Wikipédia en Français

  • Dbus-Gtsang — ▪ region, China       one of three historical regions of Central Asia (the other two being A mdo and Khams) into which Tibet was once divided.       Dbus and Gtsang were provinces in the days of the early kings of central Tibet (c. 7th century… …   Universalium

  • Dbus — …   Википедия

  • DBUS — Data Bus (Computing » Hardware) …   Abbreviations dictionary

  • Ü (dbUs) — Ü (tibetisch དབུས dbUs = ‚die Mitte‘) ist die alte zentraltibetische (Kultur ) Provinz mit der Hauptstadt Lhasa und bildet zusammen mit der weiter westlich anschließenden Provinz Tsang (tib. gtsang, Sitz in Xigazê) das kulturhistorische Herz des… …   Deutsch Wikipedia

  • D-Bus — DBus redirects here. For other uses, see Dbus (disambiguation). D Bus Developer(s) Red Hat and the community Stable release 1.4.12[1] / June 10, 2011; 5 months ago (2011 06 10) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”