Login
Newsletter
Werbung

Do, 30. Oktober 2014, 13:34

Software::Kernel

kdbus zur Aufnahme in den Kernel eingereicht

Knapp zwei Jahre nach der initialen Idee haben die Entwickler des Kernel D-Bus-Systems, kdbus, die Lösung offiziell für eine Aufnahme in den Kernel vorgeschlagen. D-Bus selbst ist ein Nachrichtenbus-System, mit dem Anwendungen miteinander kommunizieren können.

Larry Ewing

Im Gegensatz zu anderen modernen Kerneln verfügt Linux nicht über eine schnelle und effiziente IPC-Schnittstelle. Zwar existieren auch im Kernel diverse Mechanismen wie Sockets, FIFOs oder Shared Memory, die Entwickler für ihre Lösungen nutzen können, doch erweisen sie sich immer wieder als zu limitiert, als dass sie effizient genutzt werden könnten. Mit der Implementierung des D-Bus direkt im Kernel sollen diese Probleme nun gezielt adressiert werden.

Die Idee einer Kernel-seitigen D-Bus-Implementation ist nicht neu und kam erstmals vor fast zwei Jahren auf. Verfolgt wurde sie schlussendlich von den systemd-Entwicklern Lennart Poettering, Kay Sievers und Daniel Mack sowie dem Kernel-Hacker und -Maintainer Greg Kroah-Hartman. Lennart Poettering selbst stellte sie Anfang des Jahres in einem Vortrag auf der linux.conf.au öffentlich vor und lobte die zahlreichen Vorzüge von kdbus. So sei der Standarddaemon von D-Bus zwar flexibel, für die Übertragung von großen Datenmengen aber zu langsam. Zudem werden darin keine Zugriffsrechte-Informationen mit übertragen und Zeitstempel fehlen ebenso. Ein weiteres Problem ist auch, dass D-Bus in der frühen Bootphase nicht verfügbar sei und dementsprechend beispielsweise die Verbindung mit Sicherheits-Frameworks in Benutzerprozessen erfolgen müsse.

Mit kdbus wollen die Entwickler mit den Problemen der Implementierung aufräumen und eine effiziente Übertragung auch von großen Datenmengen direkt im Kernel ermöglichen. So orientiert sich kdbus weitgehend am D-Bus-Design, vereint aber im Gegensatz zu einem klassischen Daemon diverse Vorzüge einer Kernel-Implementierung. Unter anderem bietet die Lösung Zero-Copy, um das Kopieren der Daten zu vermeiden. Siegel stellen in diesem Fall sicher, das der Prozess die Speicherbereiche nach dem Versenden nicht verändern kann.

Implementiert wurde kdbus als ein zeichenorientierter Treiber, der je nach Bedarf Devices zur Kommunikation erstellt. Der Treiber selbst arbeitet transparent und unterstützt unter anderem Peer-to-Peer Unicast- und Multicast-Nachrichtentypen. Jeder Nachricht können Metadaten hinzugefügt werden, um beispielsweise Zeitstempel, Sicherheitsetiketten oder Zugriffsrechte zu übertragen. Zudem verfügt die Lösung über diverse Prioritäts- und Benachrichtigungsmechanismen.

Wie Kroah-Hartman in seiner E-Mail an die LKML schreibt, wurde der Treiber über einen Zeitraum von über einem Jahr von über 30 Personen entwickelt und auf den x64-64-, i686- und ARM-Architekturen getestet. Dementsprechend erwartet er, dass die Kernel-API/ABI weitgehend stabil ist und es zu keinen großen Änderungen kommen wird. Gepflegt werden soll das System - sobald es im Kernel implementiert wurde - von Daniel Mack, David Herrmann, Djalal Harouni und Greg Kroah-Hartman.

Werbung
Kommentare (Insgesamt: 10 || Alle anzeigen )
Re: Das Ende ist nah! (Anonymous, Do, 30. Oktober 2014)
Re: Das Ende ist nah! (gustl, Do, 30. Oktober 2014)
Re: 3.19? (Powerrangeruser, Do, 30. Oktober 2014)
Re[2]: 3.19? (blubb, Do, 30. Oktober 2014)
Re[4]: 3.19? (cs, Do, 30. Oktober 2014)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung