D-Bus: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
<b>D-Bus</b> ist ein IPC-Framework, also ein Software-System für die [[Interprozesskommunikation]], das sich besonders an den Bedürfnissen von [[Arbeitsumgebung]]en einer grafischen Benutzeroberfläche orientiert. Es ist Bestandteil des freedesktop.org-Projektes und wird nahezu bei jeder Linux-Distribution eingesetzt, die über eine grafische Oberfläche verfügt.
<b>D-Bus</b> 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.


Der D-Bus fungiert also 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 Anwendungen 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.
== Funktionsweise ==


Es gibt viele konkurrierende Ansätze zum D-Bus-Konzept, z. B. 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.
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.
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.


Der Serverprozess "dbus-daemon" läuft im Hintergrund und wartet auf Verbindungsanfragen von Anwendungen, die sich für bestimmte Ereignistypen registrieren, z. B. für das Ein- und Ausstecken von Hardware. Tritt ein solches Ereignis ein, schickt der D-Bus eine entsprechende Nachricht über den Bus und die Anwendungen können darauf reagieren.
D-Bus läuft als [[Daemon]] <b>dbus-daemon</b> 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.  


Grundsätzlich gibt es auf Systemen, die D-Bus verwenden, zwei von je einem Serverprozess realisierte Busse:
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.
* Der System-Bus startet beim Bootvorgang und ist auch dann aktiv, wenn kein Benutzer angemeldet ist.
* Der Session-Bus startet erst beim grafischen Login einer Desktop-Sitzung.


Das Binary "dbus-dameon" kennt für die beiden Modi die Befehlszeilenparameter "--system" bzw. "--session".
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.
 
Zum Starten des Daemon enthält das D-Bus-Paket das Programm "dbus-launch", das unter anderem die nötigen Umgebungsvariablen setzt. Die meisten Distributionen starten damit den D-Bus-Daemon im Session-Modus zusammen mit der [[X]]-Sitzung. Der Session-Bus ermöglicht es Anwendungen, die zu einer Desktop-Sitzung gehören, miteinander zu sprechen. Das können auch Dienste sein, die z. B. die Arbeitsumgebung zur Verfügung stellt. Der System-Bus ist vor allem dafür gedacht, dass Desktop-Programme mit den darunter liegenden Schichten sprechen können. So kann eine Anwendung sich über den System-Bus für eine Hardwareklasse registrieren.
 
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 z. B. der Gnome Volume Manager darum, unter KDE der Kioslave Media. Für die Desktop-unabhängige Reaktion lässt sich die Software lvman einsetzen, die z. B. auch unter [[Xfce]] funktioniert.


== Weblinks ==
== Weblinks ==


{{Weblinks1|{{url_dewikipediacat|D-Bus|D-Bus}}
{{Weblinks1|{{url_dewikipedia|D-Bus|D-Bus}}
}}
}}



Version vom 4. August 2009, 10:04 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.

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.

Weblinks

Vorlage:Weblinks1