Debian wählt mit Systemd ein neues Init-System
Debians „Technisches Komitee“ hat nach über einem viertel Jahr Investigation und Diskussion entschieden, dass das neue Init-System, welches das altehrwürdige SysVinit ablösen soll, Systemd heißt. Somit wird Debian 8 „Jessie“, das in rund einem Jahr zu erwarten ist, von Systemd gestartet.
Debian ist eine selbstverwaltete Distribution mit rund 1.000 offiziellen Entwicklern und vielen weiteren Paket-Maintainern sowie noch mehr inoffiziellen Helfern. Soll hier eine Entscheidung von einiger Tragweite getroffen werden, wird meist lange und engagiert um die rechte Entscheidung gerungen. So auch bei der Frage, welche Software in Zukunft Debian-Installationen starten soll und somit den ersten Prozess PID 1 aufruft.
Im Oktober 2013 beschwerte sich ein Entwickler auf der Debian-Entwicklerliste darüber, dass der Gnome-Settings-Daemon in Gnome 3 Teile von Systemd in ein Debian-System installiert. Diese Abhängigkeit war seiner Meinung nach überflüssig und damit eine unnötige Fehlerquelle. Er eröffnete seinen Eintrag mit den Worten: „Ich hoffe, ich starte hiermit nicht einen Flamewar über Systemd, Gnome oder ähnliches“
In der Form einer selbsterfüllenden Prophezeiung brach eine erbitterte Diskussion los, die Pro und Kontra unversöhnlich ließ. Sollte Debian bei SysVinit bleiben, das seit 30 Jahren funktioniert oder zu einer technisch deutlich besseren Alternative greifen? Nach einer Woche berief ein anderer Entwickler Debians Technisches Komitee CTTE ein, um eine Entscheidung zu treffen, die durch die vorherige Diskussion unvermeidbar geworden war.
Schwierige Wahl
Das CTTE hat acht Mitglieder, die allesamt langjährige Debian-Entwickler sind. Darunter sind auch zwei derzeitige und ein ehemaliger Mitarbeiter von Canonical, der Firma hinter Ubuntu, was in der Folge noch zu Problemen führen sollte. Seit Ende Oktober suchten die Mitglieder des CTTE eine mehrheitsfähige Lösung. Schon bald kristallisierten sich Systemd und das von Canonical entwickelte Upstart als die beiden chancenreichsten Kandidaten heraus. Dabei galt es, vielfältige Problemstellungen zu lösen, die in weit über tausend Einträgen auf der Liste ihren Niederschlag fanden.
Debian pflegt viele Architekturen, darunter auch GNU Hurd und kFreeBSD, die beide Systemd nicht unterstützen, da deren Betriebssystemkern keine Cgroups unterstützt. Systemd funktioniert somit nur unter Linux, nicht aber unter anderen unixoiden Systemen wie etwa BSD.
Ein weiteres Problem stellte das von Canonical entwickelte Upstart dar. Es ist Systemd technisch nicht ebenbürtig, aber wesentlich moderner als SysVinit, auf dessen Code es basiert, und wird derzeit nur von Ubuntu benutzt. Sollte Upstart das Rennen machen, gäbe es zwei Wege der Zusammenarbeit: Debian-Entwickler unterzeichnen Canonicals repressives CLA oder Debian forkt Upstart und entwickelt es selbst weiter. Da Debian-Entwickler das Lizenzabkommen nicht unterschreiben werden, bliebe nur die eigene Weiterentwicklung. Darüber wäre Mark Shuttleworth naturgemäß erfreut, da jemand anderes ihm die Arbeit abnimmt.
Die prekäre Lage des Komitees mit zwei derzeitigen und einem ehemaligen Canonical-Mitarbeiter führte erwartungsgemäß zu Problemen, vor allem, da Steve Langassek nicht nur bei Canonical arbeitet, sondern auch Paket-Maintainer für Upstart ist. Erst im dritten Wahlgang konnte heute die Wahl abgeschlossen werden, die beiden ersten führten wegen Verzögerungstaktiken eines Mitglieds nicht zu einem Ergebnis. Heute hat in einer Patt-Situation im von Debian verwendeten Condorcet-Wahlverfahren dann der Vorsitzende Bdale Garbee sein Entscheidungsstimmrecht in Patt-Situationen geltend gemacht und Systemd zum Sieger erklärt.
Vermutlicher Sieger
Damit wird vermutlich Systemd das neue Init-System von Debian werden, denn das CTTE bietet den Debian-Entwicklern noch einen Ausweg an: Eine General Resolution (GR) kann mit einfacher Mehrheit der über 1.000 Entwickler das Ergebnis kippen. Zur Einberufung bedarf es lediglich sechs gleichgesinnter offizieller Debian-Entwickler.
Systemd ist eine Entwicklung von Lennart Poettering und Kai Sievers, die beide bei Red Hat arbeiten. Es ist weit mehr als ein Init-System, sondern vielmehr ein System-Daemon, der viele Aufgaben übernimmt. Allerdings ist das auch einer der Kritikpunkte. Die Unix-Philosophie sieht vor, dass ein Werkzeug nur eine Aufgabe erledigt und diese gut. Nun könnte man Systemd als Werkzeugsammlung ansehen, dazu sind jedoch die Einzelteile zumindest derzeit noch zu stark verzahnt.
Distributionen wie Fedora und RHEL7, OpenSuse, Mageia und Arch, aber mittlerweile mit Siduction und Semplice auch zwei Debian-Derivate verwenden Systemd bereits in ihren Veröffentlichungen. Die technischen Grundlagen von Systemd erläutert Entwickler Poettering in einer Blogreihe mit über 20 Einträgen.