www.wikidata.de-de.nina.az
D Bus von englisch Desktop Bus ist eine freie Programmbibliothek zur Interprozesskommunikation Sie orientiert sich insbesondere an den Bedurfnissen von Desktop Umgebungen D BusBasisdatenEntwickler D Bus TeamAktuelle Version 1 14 10 1 1 September 2023 Betriebssystem Unix Linux WindowsProgrammiersprache CKategorie Programmbibliothek daemon FrameworkLizenz GPL oder Academic Free Licensedeutschsprachig jafreedesktop org Software dbusEs ist Bestandteil des freedesktop org Projektes und wird bei nahezu jeder modernen Linux Distribution eingesetzt In seiner Gesamtheit stellt D Bus mit all seinen Komponenten allgemein eine leichtgewichtige Middleware Daemon zur Unterstutzung der Interprozesskommunikation sowie im Speziellen einen Object Request Broker ORB eine Art Kommunikations Vermittler fur Objekte dar Inhaltsverzeichnis 1 Grundlagen 2 Funktionsweise 3 Geschichte 4 Komponenten 4 1 D Bus Daemon 4 2 D Bus Bibliothek libdbus 4 3 D Bus Protokoll 5 Kdbus bus1 und dbus broker 6 Weblinks 7 EinzelnachweiseGrundlagen Bearbeiten nbsp Ein vereinfachtes Kommunikationsschema Ein Datei Browser erhalt von einem Hardwareuberwachungsprogramm Mitteilung dass neue Hardware angeschlossen wurdeUber D Bus konnen Programme miteinander kommunizieren Im rechts gezeigten Beispiel meldet sich ein Dateimanager bei einem systemweiten Programm an das uber die Hardware die am Computer angeschlossen ist informiert in diesem Beispiel der Hardware Abstraction Layer Daemon kurz hal Daemon Der hal Daemon informiert den Dateimanager nun bei Anderungen an der Hardware sodass dieser z B beim Einstecken eines USB Sticks diesen automatisch einhangen und die Inhalte anzeigen kann Funktionsweise BearbeitenEinzelne Programme bekommen uber die Programmbibliothek libdbus die Moglichkeit 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 konnen sind die D Bus Objekte in einem Namensraum zusammengefasst Diese Namensraume enthalten meist die Domains der Entwickler zum Beispiel org kde fur die Programme von a href KDE html title KDE kde a org Daneben existiert ein ausfuhrbarer Nachrichtenbusdaemon dbus mit dem sich mehrere Anwendungen verbinden konnen Der Daemon kann Nachrichten von einer Anwendung an eine oder mehrere Anwendungen weiterleiten Gedacht ist D Bus zum einen fur die Kommunikation zwischen Desktopanwendungen derselben Sitzung der sogenannte Session Bus und zum anderen fur die Kommunikation zwischen der Desktopsitzung und Teilen des Betriebssystems wie dem Kernel den verschiedenen Systemdaemonen oder Systemprozessen System Bus Geschichte BearbeitenBereits vor der Einfuhrung eines standardisierten Nachrichtensystems fur Desktop Anwendungen durch freedesktop org haben die beiden beliebtesten Desktop Environments KDE und Gnome jeweils unterschiedliche zueinander inkompatible Implementierungen des gleichen Konzepts verwendet und zwar DCOP Desktop Communication Protocol fur KDE und eine CORBA ahnliche Architektur Common Object Request Broker Architecture fur GNOME D Bus verfugt uber 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 massgeblichen Faktor fur den Linux Desktop da die Diskrepanzen zwischen den Benutzeroberflachen damit zunehmend fallen Komponenten BearbeitenDie 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 Bearbeiten Der D Bus Daemon implementiert einen sogenannten Nachrichtenbus message bus der in seiner Funktion einem Object Request Broker gleichkommt 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 zustandigen 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 naturlich zeitgleich basierend auf den Einzelverbindungen eine eins zu viele Kommunikation Broadcast zur Verfugung D Bus Bibliothek libdbus Bearbeiten 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 konnen um danach via LRPC RPC zu kommunizieren Sie stellt weiterhin das notige Marshalling zur Verfugung also das Ausrichten und korrekte Anordnen der Bytes fur den Transport Letztlich bietet die API alle Dienste fur eine einfach abstrahierte Punkt zu Punkt Prozess zu Prozess Interprozesskommunikation Aufbauend auf libdbus haben sich Implementierungen fur alle verbreiteten Programmiersprachen und Frameworks entwickelt bei letzterem insbesondere auf Qt und GLib GTK zugeschnittene Implementierungen So verwendet Gnome GDBus und KDE4 QtDBus D Bus Protokoll Bearbeiten Das D Bus Protokoll ist ein binares IPC Protokoll Spezifiziert sind sowohl Primitivtypen als auch zulassige Nachrichtentypen sowie die Kodierung fur den Transport Grundlegend basiert das Protokoll auf dem Prinzip des Nachrichtentauschs und spezifiziert darauf basierende entfernte Aufrufe LRPCs RPCs Kdbus bus1 und dbus broker BearbeitenDbus ist funktionell limitiert und langsamer als alternative Ansatze fur Interprozesskommunikation weshalb beispielsweise Android statt auf Dbus auf das eigene System Binder setzt Um dies zu beheben entwickelten Greg Kroah Hartman und andere Linux Entwickler mit Kdbus Kernel D Bus eine D Bus Implementierung fur den Linux Kernel Kdbus ist deutlich schneller als die bisherige Userspace Losung Ausserdem konnen durch die effizientere Architektur 2 statt 10 Kopien auch grosse Datenmengen im GiB Bereich zwischen Prozessen ausgetauscht werden 2 3 4 Kdbus scheiterte jedoch aus technischen Grunden und wurde nicht in den Linux Kernel aufgenommen Als neue Alternative wurde im August 2016 Bus1 vorgeschlagen 5 Im August 2017 wurde von denselben Entwicklern mit dbus broker ein dritter Ansatz fur die Losung der Probleme von dbus vorgeschlagen der kompatibel zur DBus Spezifikation sein soll 6 Weblinks BearbeitenD Bus Homepage auf freedesktop org englisch D Bus Overview englisch D Bus Tutorial englisch Einzelnachweise Bearbeiten Announcing dbus 1 14 10 maintenance release Thorsten Leemhuis Kdbus Neue Interprozesskommunikation fur den Linux Kernel Heise 20 Januar 2014 abgerufen am 26 Mai 2015 Vortragsfolien Anatomy of kdbus englisch PDF 250 kB Lennart Poettering Februar 2014 Vortragsfolien kdbus in Tizen 3 0 englisch PDF 2 1 MB siehe Gegenuberstellung unter D Bus vs kdbus auf Seite 7 2014 Bus1 Neues Interprozesskommunikationssystem fur Linux vorgestellt In Pro Linux 18 August 2016 pro linux de dbus broker erfindet DBus neu In Pro Linux 24 August 2017 pro linux de Abgerufen von https de wikipedia org w index php title D Bus amp oldid 201965218 Kdbus bus1 und dbus broker