Login
Newsletter
Werbung

Do, 18. August 2016, 14:32

Software::Kernel

Bus1: Neues Interprozesskommunikationssystem für Linux vorgestellt

Die Kernel-Entwickler David Herrmann und Tom Gundersen schlagen ein neues Interprozesskommunikationssystem für den Linux-Kernel vor. Es könnte ein Ersatz für das bislang abgelehnte Kdbus-Projekt werden und bezieht Ideen sowohl aus diesem als auch aus Androids Binder.

bus1.org

Als Standard für die Interprozesskommunikation hat sich unter Linux weitgehend DBus durchgesetzt, nicht jedoch in Android, wo die Google-Entwicklung Binder zum Einsatz kommt. Binder ist allerdings in einer Hinsicht bereits weiter, da es wesentliche Teile im Kernel implementiert und dadurch wesentlich schneller und weniger limitiert ist. Der Versuch von Greg Kroah-Hartman und anderen, mit Kdbus eine entsprechend Beschleunigung auch für DBus im Kernel zu implementieren, scheiterte vor über einem Jahr an technischen Gründen und wurde danach auf unbestimmte Zeit verschoben. Kdbus war nach dem Geschmack verschiedener Entwickler weder allgemein noch schnell genug.

In Anbetracht dieser Vorgeschichte dürfte es auch der neue Vorschlag von David Herrmann und Tom Gundersen nicht leicht haben. Die beiden Entwickler sowie einige weitere haben bereits mehr als ein halbes Jahr an einem neuen Interprozesskommunikationssystem namens Bus1 gearbeitet und wollen ihr System auf dem kommenden Kernel Summit den anderen Entwicklern vorstellen. Nach Angaben von Herrmann entstand Bus1 aus dem Kdbus-Projekt, ist aber von Grund auf neu entwickelt. Neben DBus dienten auch Androids Binder, Mach IPC und andere als Inspiration.

Bus1 implementiert einen Kommunikationskanal zwischen beliebig vielen Prozessen auf einem einzelnen Rechner. Dieser soll sicher sein und auf Capabilities für die Zugriffsrechte aufbauen. Bus1 soll zudem sehr effizient sein und mit minimalem Overhead arbeiten. Sowohl Unicast- als auch Multicast-Nachrichten können gesendet werden. Dadurch, dass es keine zentrale Instanz gibt, soll das System mit der Zahl der Prozessorkerne im System skalieren. Eine bedeutende Eigenschaft ist außerdem, dass die globale Reihenfolge der Nachrichten erhalten bleibt, das bedeutet, dass sich Nachrichten nicht überholen können. Laut einer ersten Analyse von Neil Brown, der Bus1 eine große Ähnlichkeit zu Binder bescheinigt, ist das eine Eigenschaft, mit der Binder aktuell nicht aufwarten kann.

Die Entwickler haben eine erste Implementation von Bus1, die nur etwa 5.000 Code-Zeilen umfasst, aber trotzdem nicht leicht zu verstehen ist. Außerdem ist das System noch nicht fertig. Die Entwickler warten nun auf das Feedback, das auf dem Kernel Summit zu erwarten ist. Dementsprechend kann sich am Konzept und an der Implementierung noch vieles ändern. Der aktuelle Quellcode ist auf Github zu finden. Man darf wohl davon ausgehen, dass Bus1 auch genutzt werden kann, um DBus massiv zu beschleunigen, wobei es am Ende wahrscheinlich sowohl schneller als auch universeller als Kdbus sein wird. Bis dahin ist es allerdings noch ein weiter Weg.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung