GUADEC: D-Bus im Linux-Kernel

Die Systemd-Entwickler um Lennart Poettering haben weitestgehend D-Bus im Kernel integriert. Poettering war auf der Gnome-Konferenz in Brünn zuversichtlich, dass ihr Ansatz von den Kernel-Entwicklern akzeptiert wird.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Keywan Tonekaboni
  • Dr. Oliver Diedrich

Die Systemd-Entwickler haben Kdbus für den Linux Kernel weitestgehend fertiggestellt. Die Arbeiten dazu stellte der Red Hat Mitarbeiter Lennart Poettering auf der Gnome-Konferenz GUADEC in Brünn vor. Die Kernel-Implementierung von D-Bus ist notwendig, um die Pläne für Linux-Apps umzusetzen, da diese in einer Sandbox laufen sollen und lediglich über Kdbus mit anderen Programmen, dem System und der Hardware kommunizieren sollen.

Bis Ende des Jahres soll Systemd mittels Kdbus starten. Damit würde die Sandbox bereits ab Systemstart zur Verfügung stehen, betonte Poettering gegenüber heise open, und das gäbe es sonst auf keinem anderen System.

Um auch den Austausch großer Daten über D-Bus performant durchzuführen, haben die Systemd-Entwickler ein "Zero Copy"-Verfahren implementiert. Statt der Daten, beispielsweise eine JPEG-Datei, wird lediglich eine Referenz über D-Bus übertragen. Die eigentlichen Daten liegen in einem speziellen geschützten Bereich.

In der Vergangenheit war bereits zweimal der Versuch gescheitert, D-Bus im Kernel zu integrieren. Poettering ist aber zuversichtlich, dass es diesmal klappt, da der Kernel-Entwickler Greg Kroah-Hartman mit im Team ist. Außerdem habe man genau beobachtet, aus welchen nicht-technischen Gründen die vorherigen Versuche gescheitert waren, und will diese Fehler nicht wiederholen.

D-Bus ist ein Protokoll zur Interprozess-Kommunikation. Auf Linux-Systemen laufen typischerweise mindestens zwei Busse: ein System-Bus für die Session-übergreifende Kommunikation zwischen Anwendungen und Systemkomponenten sowie jeweils ein Session-Bus für jede Session. Eine Session umfasst alle Prozesse eines angemeldeten Benutzers. (odi)