Bus1 statt Kdbus: Systemd-Entwickler versuchen sich erneut an IPC
Die hauptsächlich vom Systemd-Team forcierte Interprozesskommunikation (IPC) Kdbus schaffte es nicht in den Linux-Kernel. Mit der neu erstellten IPC Bus1 versuchen es die Beteiligten aber erneut.

In den vergangenen Jahren arbeiteten vor allem Systemd-Entwickler an der Umsetzung einer Interprozesskommunikation (IPC) im Kernel selbst, unterstützt wurden sie von einigen prominenten Kernel-Hackern, allen voran Greg Kroah-Hartman. Der erste Versuch, Kdbus, scheiterte zwar letztlich, mit Bus1 steht aber ein ideeller Nachfolger bereit, dessen Konzept sowohl auf der kommenden Systemd-Konferenz wie auf dem Kernel-Summit diskutiert werden soll.
Dass das Team weiter an einer IPC interessiert ist, war bereits im vergangenen Herbst absehbar, als Systemd-Maintainer Lennart Poettering größere Umbauarbeiten an Kdbus ankündigte. Dies gipfelte letztlich in dem Neuanfang Bus1, der seit Dezember 2015 entsteht und dessen Stand das Wochenmagazin Lwn.net in seiner aktuellen Ausgabe näher beschreibt.
Die Idee, die IPC ohne große Anlehnung an Dbus von Grund auf neu zu gestalten, haben die Hauptentwickler David Herrmann und Tom Gundersen demnach offenbar erfolgreich umgesetzt. Denn der Beschreibung zufolge ähnelt Bus1 der Android-IPC Binder, die seit einigen Jahren im Hauptzweig des Linux-Kernel enthalten ist, und nutzt Techniken, die vergleichbar zu bestehenden Konzepten sind.
Ähnlichkeiten zu bestehenden Techniken
So läuft laut Bericht die Kommunikation über sogenannte Peers, einer Abstraktion ähnlich den weitverbreiteten Sockets. Diese Peers verfügen mit Nodes über adressierbare Objekte. Darüber hinaus werden die Nodes über Handles identifiziert, einer Art File-Descriptor, die sich ähnlich zu den Object-Descriptors von Binder verhalten sollen.
Die eigentlichen Nachrichten werden dabei über den Peer an eine Liste von Nodes gesendet, die über ihre Handles gekennzeichnet werden. Verschickt wird dabei eine Kombination aus einem Datenblock, einer Liste von Handles, einer Liste von File-Descriptors sowie ein Segment, das den Sender der Nachricht, also etwa eine konkrete Anwendung, identifiziert.
Laut Lwn.net ist Bus1 zudem deutlich flexibler und auch einfacher als Binder. Anders als Binder unterstützt Bus1 allerdings nicht nur Unicast, sondern auch Multicast, also das Versenden einer Nachricht an mehrere Ziele. Letzteres wird unter anderem durch eine globale Sortierung der Nachrichten gewährleistet.
Noch ist Bus1 wohl weit entfernt davon, in den Linux-Kernel aufgenommen zu werden. Das neue Konzept und die Ähnlichkeit zu Binder lassen die Aufnahme jedoch wahrscheinlicher erscheinen, als dies bei Kdbus der Fall gewesen ist.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Wer sagt, dass man D-Bus ablösen möchte?