Zum Hauptinhalt Zur Navigation

Fosdem: Linux ist Entwicklung auf der Langstrecke

Auf der Fosdem-Konferenz in Brüssel zeigt sich in vielen Vorträgen, dass die Entwicklung des Linux-Kernels sehr viel Durchhaltewillen erfordert. Einige der Projekte im Kernel brauchen gar Jahrzehnte bis zur vollständigen Umsetzung.
/ Kristian Kißling (Linux Magazin) , Sebastian Grüner
3 Kommentare News folgen (öffnet im neuen Fenster)
Auf der Fosdem blickt die Kernel-Community zurück und plant neue Aufgaben. (Bild: Kristian Kißling/Linux Magazin)
Auf der Fosdem blickt die Kernel-Community zurück und plant neue Aufgaben. Bild: Kristian Kißling/Linux Magazin

Den 20. Geburtstag ihrer Fosdem-Konferenz in Brüssel nutzen die Organisatoren für einen eigenen History-Track. Darin wird aber nicht nur zurückgeblickt, sondern auch vorausgeschaut. So hat auch der Kernel-Log-Autor Thorsten Leemhuis in seinem langen Eröffnungsvortrag der Fosdem(öffnet im neuen Fenster) keine schnöde Geschichtsstunde gehalten. Vielmehr arbeitete er aus den historischen Ereignissen einige typische Entwicklungsmuster der Kernel-Entwicklung heraus.

Da wäre zum Beispiel der Umgang mit großen Projekten und Problemen. So hat es etwa gut 15 Jahre gedauert, Linux in einen Echtzeit-Kernel zu verwandeln. Am Ende sei es dem Verantwortlichen Thomas Gleixner und seinen Mitstreitern jedoch in vielen kleinen Schritten und dank sehr viel Beharrlichkeit gelungen, die Idee von einem echtzeitfähigen Kernel umzusetzen, sagte Leemhuis. Noch in diesem Jahr wird die Funktion voraussichtlich offiziell im Hauptzweig des Linux-Kernels freigeschaltet.

In vielen kleinen Schritten weite Strecken zurücklegen

Aber nicht nur dieses Beispiel zeigt, dass sich Kernel-Entwickler nicht selten an der Langstrecke versuchen. Dank vieler kleiner Schritte bringen sie nicht nur Großprojekte erfolgreich ans Ziel. Sie programmieren auf diese inkrementelle Weise mitunter auch Funktionen, die sich dann später erstaunlich entwickeln.

Basierend auf den bereits im Kernel existierenden Namespaces und Cgroups sorgte beispielsweise die Firma Dotcloud für Furore und führte mit Docker eine Containertechnologie ein, die in heutigen Rechenzentren eingesetzt wird und unter anderem als Engine in Kubernetes dient. Dockers Idee für die Nutzung der Kernel-Funktionen, aber vor allem auch deren Umsetzung waren damals quasi Alleinstellungsmerkmale. Die Docker-Entwickler bastelten aus der Kernel-Technologie in wenigen Jahren ein Open-Source-Produkt, das mit großem Erfolg eine Lücke füllte.

Langer Umbau mitten im Kernel-Space

Auch ein anderes Projekt, den eBPF (extended Berkley Packet Filter), sollten Interessierte genau verfolgen, empfiehlt Langzeit-Kernel-Beobachter Leemhuis. Dabei handelt es sich um eine im Kernel-Space angesiedelte spezielle Art von Virtual Machine (VM), die System-Events verarbeitet und es ermöglicht, Code im Kernel-Space auszuführen. Die Interaktionen mit dem Userspace laufen über sogenannte Maps (Key-Value-Stores), die Programme dürfen nicht Turing-komplett sein und der Userspace darf nur lesend auf die von der eBPF generierten Werte zugreifen.

Tatsächlich gibt es bereits erste Nutzer dieser neuen Technologie, wie etwa den Dtrace-Entwickler Brendan Gregg, dem sich dank eBPF die Option für ein Dtrace 2.0 eröffnet . Das ursprünglich vom Computer- und Softwarehersteller Sun Microsystems erstellte Analysewerkzeug Dtrace stand jahrelang wegen Lizenzproblemen nicht ohne weiteres für Linux bereit. Die fortdauernden Arbeiten von Gregg und der Kernel-Community, um BPF systematisch zu erweitern, schufen letztlich aber einen Ersatz für Dtrace.

Zusätzlich stellte die Entwicklerin Kris Nova in ihrem Clusterfuck-Vortrag auf der Fosdem(öffnet im neuen Fenster) wenig später das Projekt Falco vor, eine Runtime Security Engine für Kubernetes. Diese kann zur Laufzeit eines Clusters unter anderem ungewöhnliche und ungewollte Systemaufrufe blockieren.

Dazu durchsucht die Software mit Hilfe von eBPF unter anderem die Systemaufrufe, überprüft aber auch Container-Kontexte sowie die Meta- und Audit-Daten von Kubernetes und untersucht diese auf bekannte Angriffsmuster hin. Das macht Falco zu einer Art "Wireshark für den Kernel" . Möglich machen das erst die jahrelange Arbeit an Containertechnik und eBPF.

Container besser isolieren

Mit Containersicherheit setzten sich die Entwickler Mike Rapoport und James Bottomley auseinander(öffnet im neuen Fenster) . Sie suchen nach einem Weg, Container ohne zusätzliche Werkzeuge sicher genug für den Einsatz zu machen. Eines der zentralen Argumente gegen Container ist laut dem Vortrag nämlich noch immer die fehlende Isolation im Speicher. Auch wenn die Angst oft übertrieben scheint, stecken Nutzer und Unternehmen die Container daher mit Vorliebe zusätzlich in VMs, um sie voneinander zu isolieren. Dafür gibt es inzwischen eine Vielzahl unterschiedlicher Projekte, das zieht jedoch einen Overhead nach sich.

Bottomley und Rapoport suchen nun nach einer Möglichkeit, über den Linux-Kernel auch Adressräume im Speicher direkt voneinander zu isolieren. In ihrem Talk zeigten sie die verschiedenen Ansätze – mögliche und bereits ausprobierte -, um gleich auch die Probleme aufzulisten, die sich aus den jeweiligen Ansätzen ergeben.

Es scheint ein mühsamer Weg zu sein, den die Forscher da vor sich haben und auf dem sie wohl wieder mal nur in kleinen Schritten vorwärtskommen können. Ein paar Jahre werde es schon dauern, bis ihr Code einsatzbereit sei, schätzen die Entwickler. Aber das ist in der Kernel-Entwicklung ja keine Seltenheit und muss kein schlechtes Zeichen sein.


Relevante Themen