D-Bus

D-Bus
D-Bus
Entwickler D-Bus-Team
Aktuelle Version 1.4.12
(26. Juni 2011)
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 grafischen 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 erhält von einem Hardwareüberwachungsprogramm Mitteilung, 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-Daemon, kurz hal-Daemon). Der hal-Daemon informiert nun bei Änderungen an der Hardware das Datei-Manager-Programm 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 verwendet, 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 nach der Standardisierung von den Desktop-Environment-Projekten schnell angenommen und die Implementierungen der eigenen Systeme zugunsten des Standards fallengelassen. Das Standardprotokoll wurde damit zu einem maßgeblichen Faktor für den Linux-Desktop, da die Diskrepanzen zwischen den Benutzeroberflächen 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 entgegengenommen 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-Objektmodell demnach Methodenaufrufe dar. Ferner bietet der daemon noch Dienste wie Activation an. Zuletzt stellt der daemon natürlich zeitgleich, basierend auf den Einzelverbindungen, eine eins-zu-viele-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:

  • Bus transport in the United Kingdom — Buses play a major role in the public transport of the United Kingdom, as well as seeing extensive private use.History The horse bus era The first omnibus service in the United Kingdom was started by John Greenwood between Pendleton and… …   Wikipedia

  • Bus routes in Sydney — Bus routes in Sydney, Australia are numbered with three digits, the first digit referring to the region in which the bus route primarily operates.Northern BeachesBus services between the Northern Beaches region of Sydney and the central business… …   Wikipedia

  • Bus Parisien — Situation Paris et petite couronne Type Autobus …   Wikipédia en Français

  • Bus RATP — Bus parisien Bus parisien Situation Paris et petite couronne Type Autobus …   Wikipédia en Français

  • Bus parisien — Situation Paris et petite couronne Type Autobus …   Wikipédia en Français

  • Bus parisiens — Bus parisien Bus parisien Situation Paris et petite couronne Type Autobus …   Wikipédia en Français

  • Bus rapid transit — ( BRT ) is a broad term given to a variety of transportation systems that, through improvements to infrastructure, vehicles and scheduling, attempt to use buses to provide a service that is of a higher quality than an ordinary bus line. Each BRT… …   Wikipedia

  • Bus manufacturing — describes the manufacturing of buses and coaches.HistoryBus manufacturing had its earliest origins in carriage building. Other bus manufacturers had their origins in truck manufacturing. Historically, bus chassis were shared between truck designs …   Wikipedia

  • Bus (informatique) — Bus informatique Pour les articles homonymes, voir Bus. bus VME Un bus informatique désigne l ensemble des lignes de communication connectant différents composan …   Wikipédia en Français

  • Bus Blancs — de la Croix Rouge suédoise, probablement à proximité du domaine de leur quartier général à Friedrichsruh Le terme Bus blancs a été utilisé pour une opération humanitaire dont le fer de lance fut le comte suédois Folke Bernadotte sous les ausp …   Wikipédia en Français

  • Bus Informatique — Pour les articles homonymes, voir Bus. bus VME Un bus informatique désigne l ensemble des lignes de communication connectant différents composan …   Wikipédia en Français

Share the article and excerpts

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