In den experimentellen Zweigen der Distributionen warten ständig neue Trends auf Tester. Wer treibt Linux voran und wie sieht die Zukunft aus?
Der Kernel feiert im Sommer seinen 25. Geburtstag. Seit seiner Geburt hat sich um ihn und die GNU-Software-Suite eine faszinierende Vielfalt an digitalen Ökosystemen entwickelt. Am Kernel selbst arbeiten die Entwickler mit viel Sorgfalt weiter – sie mögen keine großen Sprünge, sondern stetige Entwicklungen in überschaubaren Schritten.
Wenn im Verlauf des Artikels von “Linux” die Rede ist, meint das aber nicht bloß den Kernel – es sei denn, er wird explizit erwähnt. Vielmehr geht es umgangssprachlich um das Umfeld der Distributionen und um die Frage, wer hier früher wie heute maßgeblich die Entwicklung vorantreibt, technisch wie ideologisch.
Altes neu entdeckt
Beim Blick auf die innovativen Entwicklungen der letzten Jahre fällt auf, dass die Entwickler das Rad nicht immer neu erfinden, sondern oft ältere Technologien aufgreifen und weiterführen. So bedient sich das mittlerweile etablierte Werkzeug Systemd beim Kernel und nutzt Funktionen wie Namensräume und Cgroups als essenzielle Bestandteile (Abbildung 1).
Auch das neue Display-Protokoll Wayland [1] modernisiert eher, als dass es einreißt und neu baut. Docker und CoreOS setzen neben vielen Kernel-Funktionen auf altbewährte Zutaten wie BSD-Jails [2] und Solaris-Zones [3]. Das Dateisystem Btrfs nimmt den Faden von Suns ZFS auf [4], bedient sich bei RAID und integriert Snapshots [5] sowie das Zonen-Modell von Solaris.
Selbst den UsrMerge [6] (Abbildung 2), den einige Distributionen bereits vollzogen haben und der in anderen kurz bevorsteht, hat Solaris bereits vor rund 15 Jahren vorgemacht. Das dahinterliegende Problem und der heutige Dateibaum, der dem Filesystem Hierarchy Standard (FHS [7]) unterliegt, ist noch wesentlich älter und geht ganz banal auf Probleme beim Speicherplatz zurück, die die Unix-Erfinder Ken Thompson und Dennis Ritchie im Jahr 1970 hatten [8].
Das zeigt, dass es sich lohnt, innovativ erscheinende Ideen immer zu hinterfragen: Manchmal handelt es sich dabei einfach nur um mehr oder minder verspätete Korrekturen vergangener Unzulänglichkeiten.
Viele der wirklich innovativen Entwicklungen nehmen in Unternehmen ihren Anfang, oder diese arbeiten die Neuerungen zumindest weiter aus. Die großen Distributionen der 90er-Jahre haben dank dieser Innovationen alle bis heute überlebt. Suse entstand 1996 mit Wurzeln in SLS [9] (Abbildung 3) und Slackware [10], Debian wurde bereits 1993 gegründet. Im gleichen Jahr hoben in den USA die Entwickler Red Hat aus der Taufe, das später mit Red Hat Enterprise Linux (RHEL) eine Distribution für Unternehmen konzipierte und parallel dazu mit der Community-Distribution Fedora die Entwicklung vorantrieb.
Im Jahr 2004 erschien erstmals Ubuntu, mit dem Versprechen, den Linux-Desktop zu revolutionieren. Seitdem warten viele nicht mehr auf Godot, sondern auf das “Jahr des Desktops”. Das Warten ist freilich vergeblich, da Linux längst da ist, wo es gebraucht wird – selbst noch so viele Innovationen bringen unter Linux kein einheitliches Produkt wie bei Microsoft hervor.
Debian setzt Akzente
Abgesehen von Debian gehören die genannten Distributionen zu Unternehmen, die mit Linux Geld verdienen. Und damit erschließt sich bereits die seit 23 Jahren andauernde Leistung von Debian: Noch heute betreut eine Schar von unzähligen Entwicklern ohne finanzielles Interesse in einer Do-o-kratie das Projekt.
Die gemeinsame Arbeit verläuft dabei entlang einer Reihe von Regeln und Richtlinien. Die beiden wichtigsten sind das Debian Manifest [11] und der Social Contract [12], eine Art Vertrag, der unter anderem die Debian Free Software Guidelines (DFSG) [13] beinhaltet. Beide haben die Entwickler 1997 als Richtlinie anerkannt und in einer Revision 2004 erneuert.
Damit gab sich das Projekt Regeln, die weit über das eigentliche Wirken hinaus Bedeutung erhielten: Viele aus Debian abgeleitete Projekte haben diese als Richtschnur für den Umgang mit der Entwicklung freier Software und den Umgang untereinander in der Community anerkannt. Somit hat Debian vor allem in ideologischer Hinsicht enorm viel für die Arbeit an freier Software getan.
Technisch geht es das Projekt eher gemächlich an, legt den Fokus eher auf Stabilität und sendet keine größeren innovativen Impulse nach außen. Allerdings zeigt sich Debian in letzter Zeit offener, Innovation von außen aufzunehmen. Der Wechsel auf Systemd (Abbildung 4) fand zwar unter Schmerzen statt, aber doch sehr zeitnah. Derzeit legen die Entwickler die Grundlagen für UsrMerge, wieder begleitet von vielen Diskussionen, aber auf einem guten Weg.
Ganz weit vorne
An vorderster Front bei den innovativen Entwicklungen für Linux steht ganz zweifellos Red Hat. Besonders in den letzten fünf Jahren entwickeln die vom US-Unternehmen bezahlten Entwickler etliches an Software, was den gesamten Linux-Kosmos voranbringt. Im Fall von Systemd, für das der Fedora-Mitarbeiter Lennart Poettering als Motor gilt, herrscht allerdings kein allgemeiner Konsens – obwohl sich das neue Init-System in der Breite bei den Distributionen durchgesetzt hat und nur wenige sich noch zurückhalten oder die Software ganz ablehnen.
Eine kleine, aber lautstarke Minderheit sieht das Projekt als Verrat an Unix an und Red Hat quasi als Achse des Bösen, die Linux zu kontrollieren versucht. Bei aller Offenheit für Kritik geht die Ansicht der breiten Masse aber dahin, dass Systemd Linux voranbringt, weil es alte Zöpfe abschneidet und vieles bei den Distributionen vereinheitlicht.
Blick nach vorn
Wer nur auf Systemd schaut, betrachtet lediglich einen kleinen Ausschnitt der Ideen, die Poettering für die Zukunft hat und die sich auf die Art und Weise konzentrieren, wie künftig Distributionen entstehen. Seine detaillierten Ausführungen im Blog, die sich mit zustandslosen Systemen [14] sowie künftigen Formen von Distributionen befassen [15], zeigen die volle Breite der Vision.
Über Stateless Linux spricht man bei Red Hat bereits seit 2004 (Abbildung 5). Zusammen mit den weiteren Entwicklungen ist es seitdem gewachsen, weist aber immer noch in die Zukunft. Als Ergebnis sollen einerseits Entwickler, Distributionen und Anwender zeitlich näher zusammenrücken, wenn es um neue Versionen von Paketen geht. Andererseits sollen weitere Vereinheitlichungen den Entwicklern das Testen von Neuerungen erleichtern.

Abbildung 5: Stateless-Images ermöglichen das Booten aus einem immer gleichen Zustand des Systems heraus.
Die Technik ermöglicht es beispielsweise einem Unternehmen, für eine Flotte von Notebooks das jeweilige Image mit dem Betriebssystem von einem zentralen, zustandslosen Abbild auf einem Server zu beziehen, das die Notebooks dann beim Start aktualisieren. Das Aktualisieren vollzieht sich per Device-Mapper [16] atomar, was es ermöglicht, das System bei Fehlern zurückzurollen. Das Live-Dateisystem erfährt dabei keine Änderungen.
Benutzbarer Zustand
Stateless-Linux soll es ermöglichen, dass die Distributionen alle relevanten Dateien in /usr lagern. Diese Systeme sollen selbst dann starten, wenn die Verzeichnisse /etc und /var leer sind: In diesem Fall hält Systemd eine Standard-Konfiguration vor. Entsprechende Systeme speichern keine Zustände dauerhaft, sie starten immer in denselben, vorab definierten Zustand. Systemd erzeugt dabei die Dateien in /etc oder /var, bevor jene Programme starten, die auf die Dateien in /etc angewiesen sind.
Poettering sieht als Vorteil von Stateless-Systemen, dass Software-Anbieter ihre Programme nicht mehr an die Bibliotheken der Distributionen anpassen müssen, sondern eine passende Laufzeitumgebung mit ausliefern können. Das ermöglicht es, Pakete ohne Rücksicht auf die Distribution zu installieren.
Updates passieren atomar mit der Möglichkeit zum Rollback [19]. Die Sicherheit erhöht sich durch eine Kette des Vertrauens, die von der Firmware über den Bootloader bis hin zum Kernel reicht. Dieser Ansatz bringt Distributionen aus allen Bereichen – Desktop, Server oder Cloud – näher zusammen. Das löst in der Linux-Szene jedoch nicht nur Freude aus: Wie bei Systemd befürchten die Gegner eine Vereinheitlichung, die andere Entwicklungen blockiert.
Kdbus
Ein weiterer Baustein aus den Reihen der Systemd-Entwickler ist Kdbus [17], dessen Aufnahme in den Kernel dessen Entwickler vorerst abgelehnt haben. Dabei geht es darum, einen Mechanismus zur Interprozesskommunikation (IPC) wie D-Bus [18] direkt im Kernel zu verankern. Nach Ansicht der Kdbus-Entwickler brächte das einen Geschwindigkeitszuwachs und würde zudem den Austausch von Datenmengen in den Gbit-Bereich zwischen Prozessen erlauben, was für weitere Entwicklungen bei Systemd wichtig wäre.
Vermutlich lehnen die Entwickler nach der Kritik aus den Reihen von Linus Torvalds und anderen Entwicklern den Mechanismus jetzt nicht so eng an D-Bus an, sondern entwickeln eine offenere Architektur.
Mehrere Systeme parallel
Als konkreten Anwendungsfall einer Kombination aus mehreren derzeitigen Innovationen beschreibt Poettering die Möglichkeit, mehrere Betriebssysteme oder mehrere Instanzen eines Systems sowie multiple Runtimes und Frameworks in einem Btrfs-Volume gleichzeitig vorzuhalten und auszuführen.
So skizziert er als Beispiel ein System, in dem Fedora, Mandriva und Arch Linux diesem Schema folgen und entsprechende Images bereitstellen. Das setzt aber voraus, dass die Entwickler zusätzlich die Desktop-Umgebungen und Applikationen anpassen. Poettering zeigt auf, wie all dies mittels Sub-Volumes in verschiedenen Architekturen in einem einzigen Btrfs-Volume möglich wäre. Ob nun die verschiedenen Versionen von Apps wie Firefox mit Mandriva oder Arch Linux starten, spielt keine Rolle, da das System ihnen jeweils beim Start die passende Runtime zuordnet.
Bis solche Visionen in den Mainstream der Distributionen einfließen, vergehen vermutlich noch Jahre. Allerdings existiert genau dieses Konzept bereits heute in der Nischen-Distribution Bedrock, der sich ein eigener Artikel in dieser Ausgabe widmet.
Firmware und XDG-Apps
Red Hat beschäftigt wahre Heerscharen an Entwicklern, sodass andere rote Hüte ebenfalls zukunftsträchtige Techniken entwickeln: Das aktuelle Release 23 von Fedora bringt die Möglichkeit mit, Firmware-Updates aus Gnome heraus zu erledigen, sowie als weitere Innovation XDG-Apps [28].
Die Firmware-Updates aus dem System heraus sollen die Zeiten vergessen machen, in denen ein USB-Stick mit Free-DOS oder Ähnlichem vonnöten war, um unter Linux das BIOS zu aktualisieren. Mit der neuen Technik brauchen Sie nicht einmal mehr ins BIOS/UEFI zu wechseln, sondern aktualisieren das BIOS oder andere Firmware direkt per Gnome-App [20] (Abbildung 6).

Abbildung 6: Firmware-Updates direkt aus dem Software-Center von Gnome würden für Anwender sehr viel mehr Komfort bedeuten.
Das Projekt ist allerdings auf die Mitarbeit der Hardware-Hersteller angewiesen: Es setzt voraus, dass die Firmen die aktuelle Firmware in eine Datenbank einstellen, damit das System sie automatisch findet und den Anwender benachrichtigt. Hoffnung macht, dass Dell als größter Computerhersteller weltweit begonnen hat, seine Updates dort einzustellen [21].
Das Konzept XDG-Apps befindet sich noch in einem frühen Stadium und liegt Fedora 23 als technische Vorschau bei (Abbildung 7). Das neue App-Format ist dem Cloud-Computing entlehnt. Es geht darum, Sicherheit und Handhabbarkeit von Desktop-Anwendungen zu erhöhen und die Abläufe in der Entwicklung zu vereinfachen.

Abbildung 7: Das Gnome-Modul Software als XDG-App ließe sich theoretisch sehr einfach zwischen zwei Systemen verschieben.
Dazu laufen die Anwendungen jeweils in einer Sandbox, prinzipiell ähnlich vom Rest des Systems isoliert wie bei den derzeit allseits beliebten Container-Formaten. Das ermöglicht es, so der Plan der Entwickler, Applikationen gepackt unabhängig von der jeweiligen Distribution zu verteilen.
Als Grundlagen dienen hierbei das Container-Format LXC sowie Colin Walters’ Projekt OSTree [22]. Letzteres scheint wiederum Anleihen bei Bedrock und dem Nix-Paketmanager [23] gemacht zu haben, wenn es darum geht, Pakete aus mehreren gleichzeitig in einem Dateisystem lebenden Distributionen zu verwalten (Abbildung 8).

Abbildung 8: Beim Treffen der Gnome-Entwickler kam als zentraler Punkt unter anderem das Projekt OSTree von Colin Walters auf die Agenda.
Jedes Programm in einem mit XDG-Apps laufenden System greift auf eine klar definierte Laufzeitumgebung zu, wobei unterschiedliche Umgebungen in einem Dateisystem existieren dürfen. Damit ergibt sich eine Schnittmenge mit den oben erwähnten zustandslosen Systemen mit Usr-Dateisystem ohne veränderlichen Inhalt.
Für das laut Plan im Juni erscheinende Fedora 24 planen die Entwickler einen “Gnome IDE Builder”, der bereits in der Lage sein soll, XDG-Apps zu packen. Auch das Programm “Gnome Software” soll dann den Umgang mit dem neuen Format beherrschen.
Canonical und Konvergenz
Aber nicht nur von Red-Hat-Entwicklern gehen Impulse aus auf die Art und Weise, wie Linux sich in den nächsten Jahren entwickelt. Canonical mischt ebenfalls kräftig mit am Linux der Zukunft. Wer jedoch einen Ubuntu-Anwender in den letzten zwei Jahren auf Innovation angesprochen hat, lief Gefahr, sich lächerlich zu machen: Ubuntu auf dem Desktop war so langweilig wie nie zuvor.
Das liegt vermutlich daran, dass Canonical im Hintergrund keinen Stein auf dem anderen gelassen hat, um als erstes Unternehmen – im Gegensatz zu Microsofts Continuum [24] – echte Konvergenz mit der gleichen Basis an Quellcode für mehrere Plattformen zu liefern. Das bedeutet etwa, dass Sie ein Smartphone oder Tablet mit Ubuntu Touch in ein Dock mit Monitor, Keyboard und Maus stellen, wo es sich in einen realen Desktop verwandelt. Sie brauchen dann also keine Apps mehr zu verwenden, sondern nutzen die Anwendungen des Ubuntu-Desktops (Abbildung 9).

Abbildung 9: Setzen die Entwickler von Canonical ihre Vision um, gehören Laptop und Desktop-PC bald zu einer aussterbenden Art: Ein Tablet in Kombination mit einem Dock übernimmt dann die Aufgabe beider.
Hierzu erdachte Canonical das Paketformat Snappy, das es aus den Klick-Paketen von Ubuntu Touch heraus entwickelte. Allerdings ist das Unternehmen vermutlich sehr optimistisch in Bezug auf die anstehenden Probleme gewesen. Immerhin haben die Entwickler im Rahmen dieser Umbauten mit Mir gleich noch einen eigenen Display-Manager auf die Beine gestellt, der zusammen mit Unity 8 die Grundlage der neuen Plattform bildet.
Angesichts des Umfangs der Veränderungen ist das Vertrauen in den Erfolg stark geschrumpft. Nun soll das demnächst lieferbare Ubuntu-Tablet BQ Aquaris M10 das erste Gerät sein, das die Kritiker Lügen straft und Konvergenz in einem produktiven Zustand präsentiert.
Snappy Core
Das Snappy-Paketformat, das starke Anleihen bei Konzepten von CoreOS [25] und Red Hats Atomic Host [26] (Abbildung 10) genommen hat, kommt zudem in Ubuntu Snappy Core zum Einsatz, einem leichtgewichtigen Betriebssystem auf der Basis des Ubuntu-Kerns, das für Geräte wie Gateways, Router und Gerätschaften des Internets der Dinge gedacht ist. Dabei kommen atomare Upgrades mit Rollback-Funktion zum Einsatz. Router mit Snappy Core könnten somit stets aktuelle Firmware erhalten.
Ende Februar hat das Unternehmen eine Partnerschaft mit dem taiwanesischen Hersteller MediaTek bekannt gegeben, der Ubuntu Core auf dem MT7623, einem Router für das Smart Home, einsetzen möchte [29]. Das SoC-Gerät verfügt über zahlreiche Möglichkeiten zum drahtlosen Vernetzen und eignet sich so als Schaltzentrale für die steigende Zahl der Geräte in einem Haushalt, die einen Zugang zum Internet oder zu einem lokalen Netzwerk voraussetzen.
Canonical ist zwar eine vergleichsweise kleine Firma, hat aber beim Cloud-Computing mit OpenStack einen Fuß in der Tür. In diesem Zusammenhang entstand auf Basis von Linux-Container (LXC) das neue Format LXD [27]. Der Hybrid zwischen Container-Engine und Hypervisor soll das Beste aus beiden Welten vereinen, ohne den Overhead eines herkömmlichen Hypervisors.
Mark Shuttleworth nennt das neue Format Hypertainer, und es zeichnen sich sinnvolle Szenarien für dessen Einsatz auf dem Desktop ab. In die gleiche Richtung zielt Intel mit seinem für die Cloud bestimmten Betriebssystem Clear Linux. Mehr über dieses System lesen Sie in dieser Ausgabe ab Seite 26.
Ausblick
Die hier vorgestellten Innovationen zeigen, dass sich der Umgang mit Linux und der Aufbau der Distributionen derzeit im Fluss befinden. Das dürfte den Einsatz des Betriebssystems im nächsten Jahrzehnt drastisch verändern. Als Vorreiter der neuen Formate dürften vermutlich die Linux-Unternehmen auftreten, die versuchen, den Bedürfnissen ihrer Kunden zu entsprechen. Das Entwickeln, Testen und Erproben übernehmen aber wohl eher Entwickler und Enthusiasten von Fedora und anderen Distributionen, die beständig neueste Trends in ihre aktuellen Versionen einbauen.
Bereits jetzt lassen sich die Änderungen in den Paketsystemen absehen: Deren Archive dürften einerseits kompatibler zwischen den Systemen werden, andererseits durch Isolation gegenüber dem System dieses aber zudem sicherer machen. Der überkommene Dateibaum vereinfacht sich schrittweise; der Kernel bleibt die essenzielle Grundlage, entwickelt sich aber behutsam weiter.
Glossar
-
Do-o-kratie
-
Wer macht, bestimmt. Wer viel macht, bestimmt viel.
Infos
[1] Wayland: https://de.wikipedia.org/wiki/Wayland_(Protokoll)
[2] Jails: https://de.wikipedia.org/wiki/FreeBSD#Virtualisierung
[3] Zones: https://de.wikipedia.org/wiki/Container_(Solaris)
[4] ZFS: https://de.wikipedia.org/wiki/ZFS_(Dateisystem)
[5] Snapshots: https://de.wikipedia.org/wiki/Schnappschuss_(Informationstechnik)#In_Dateisystemen
[6] UsrMerge: http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/
[7] FHS: https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
[8] Ursachen für Dopplungen im Dateibaum: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
[9] SLS: https://de.wikipedia.org/wiki/Softlanding_Linux_System
[10] Slackware: https://de.wikipedia.org/wiki/Slackware
[11] Debian Manifest: https://www.debian.org/doc/manuals/project-history/ap-manifesto.de.html
[12] Social Contract: https://www.debian.org/social_contract#guidelines
[13] DFSG: https://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines
[14] Stateless-Linux: http://0pointer.de/blog/projects/stateless.html
[15] Zukunft der Distributionen: http://www.pro-linux.de/news/1/stage/21461
[16] Device-Mapper: https://de.wikipedia.org/wiki/Device_Mapper
[17] Kdbus: https://de.wikipedia.org/wiki/D-Bus#Kdbus
[18] D-Bus: https://de.wikipedia.org/wiki/D-Bus
[19] Atomic Updates: http://www.projectatomic.io/docs/os-updates/
[20] Firmware-Update im System: http://www.fwupd.org/vendors.html
[22] OSTree: https://wiki.gnome.org/Projects/OSTree
[23] Nix-Paketmanager: https://de.wikipedia.org/wiki/Nix_(Paketmanager)
[24] Continuum: http://www.heise.de/ct/ausgabe/2016-3-Microsoft-Continuum-und-Display-Dock-sollen-das-Smartphone-zum-PC-machen-3075627.html
[25] CoreOS: https://en.wikipedia.org/wiki/CoreOS
[26] Red Hat Atomic: http://www.projectatomic.io
[27] LXD: http://www.ubuntu.com/cloud/lxd
[28] XDG-Apps: https://blogs.gnome.org/mclasen/2015/01/21/sandboxed-applications-for-gnome/
[29] Partnerschaft MediaTek und Canonical: http://insights.ubuntu.com/2016/02/25/mediatek-and-canonical-partner-to-build-app-enabled-smart-home-gateway/










