D-Bus: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
Zum Starten von dbus-daemon enthält das D-Bus-Paket das Programm "dbus-launch", das unter anderem die nötigen Umgebungsvariablen setzt. Die meisten Linux-Distributionen starten dbus-daemon damit im Session-Modus zusammen mit der [[X]]-Sitzung.
Zum Starten von dbus-daemon enthält das D-Bus-Paket das Programm "dbus-launch", das unter anderem die nötigen Umgebungsvariablen setzt. Die meisten Linux-Distributionen starten dbus-daemon damit im Session-Modus zusammen mit der [[X]]-Sitzung.


Events, die der [[Hardware Abstraction Layer]] aufgrund von Hardware-Interrupts der Bus-Controller auslöst, können Programme im Userspace auf vielfältige Weise auswerten. Unter Gnome kümmert sich der Gnome Volume Manager darum, unter KDE der Kioslave Media. Für die Arbeitsumgebungs-unabhängige Reaktion lässt sich die Software lvman einsetzen, die z. B. auch unter [[Xfce]] funktioniert.
Vom [[Hardware Abstraction Layer]] aufgrund von Hardware-Interrupts der Bus-Controller ausgelöste Events können Programme im Userspace auf vielfältige Weise auswerten. Unter Gnome kümmert sich darum der Gnome Volume Manager, unter KDE der Kioslave Media. Für die Arbeitsumgebungs-unabhängige Reaktion lässt sich die Software lvman einsetzen, die z. B. auch unter [[Xfce]] funktioniert.


== Weblinks ==
== Weblinks ==

Version vom 4. August 2009, 10:07 Uhr

D-Bus ist ein IPC-Framework, also ein Software-System für die Interprozesskommunikation, das sich besonders an den Bedürfnissen von Arbeitsumgebungen grafischer Benutzeroberflächen orientiert. Es ist Bestandteil des freedesktop.org-Projekts und wird nahezu bei jeder Linux-Distribution eingesetzt, die über eine grafische Oberfläche verfügt.

Funktionsweise

Der D-Bus fungiert als Kommunikationssystem, das Arbeitsumgebungen untereinander und mit den darunter liegenden Schichten bis hin zu Kernel und Hardware verbindet. Er steht also im Dienst der Interprozesskommunikation und stellt die Infrastruktur bereit, dank der sich Anwendungsprogramme untereinander und mit Teilen des Betriebssystems unterhalten können. Zwar gibt es schon von Anfang an die bewährten Unix-Interprozesskommunikationsmechanismen, doch beschränken diese sich auf Signale, Pipes, usw. Daneben gibt es viele konkurrierende Ansätze zum D-Bus-Konzept, beispielsweise Corba oder Microsofts DCOM. Sowohl Gnome wie auch KDE experimentierten zu Beginn mit eigenen Corba-Implementierungen. KDE setzt inzwischen auf DCOP, bei Gnome wirken die Corba-Altlasten noch im Komponentensystem Bonobo nach.

Die grundlegende Bibliothek "Libdbus" von D-Bus stellt nur Funktionen für die Kommunikation zweier Anwendungen zur Verfügung. Anwendungsentwickler machen von ihr normalerweise keinen Gebrauch. Für sie gibt es die auf der Glib-Programmierschnittstelle basierende Bibliothek "Libdbus-Glib", die eine objektorientierte C-Programmierschnittstelle bereitstellt. Auf dieser Ebene erweitern sich die Fähigkeiten von D-Bus hin zu einem Bus-System - wie es der Name bereits andeutet.

D-Bus läuft als Daemon dbus-daemon im Hintergrund und wartet auf Verbindungsanfragen von Anwendungsprogrammen, die sich für bestimmte Ereignistypen registrieren, z. B. für das Ein- und Ausstecken von Hardware. Tritt ein solches Ereignis ein, schickt der dbus-daemon eine entsprechende Nachricht über den Bus und die Anwendungen können darauf reagieren. Grundsätzlich gibt es auf D-Bus verwendenden Systemen zwei von je einem Serverprozess realisierte Busse:

  • Der System-Bus startet beim Bootvorgang und ist auch dann aktiv, wenn kein Benutzer angemeldet ist (dbus-daemon-Befehlszeilenparameter "--system"). Er dient hauptsächlich dafür, dass Arbeitsumgebungs-Programme mit den darunter liegenden Schichten sprechen können. So kann ein Anwendungsprogramm sich über den System-Bus für eine Hardwareklasse registrieren.
  • Der Session-Bus startet erst beim grafischen Login einer Desktop-Sitzung (dbus-daemon-Befehlszeilenparameter "--session"). Er ermöglicht es den zu einer Arbeitsumgebungs-Sitzung gehörenden Anwendungsprogrammen, miteinander zu sprechen. Das können auch Dienste sein, die beispielsweise die Arbeitsumgebung zur Verfügung stellt.

Zum Starten von dbus-daemon enthält das D-Bus-Paket das Programm "dbus-launch", das unter anderem die nötigen Umgebungsvariablen setzt. Die meisten Linux-Distributionen starten dbus-daemon damit im Session-Modus zusammen mit der X-Sitzung.

Vom Hardware Abstraction Layer aufgrund von Hardware-Interrupts der Bus-Controller ausgelöste Events können Programme im Userspace auf vielfältige Weise auswerten. Unter Gnome kümmert sich darum der Gnome Volume Manager, unter KDE der Kioslave Media. Für die Arbeitsumgebungs-unabhängige Reaktion lässt sich die Software lvman einsetzen, die z. B. auch unter Xfce funktioniert.

Weblinks

Vorlage:Weblinks1