staging.inyokaproject.org

Kurswechsel am Start: systemd kommt in Ubuntu

ubuntu_logo.png

Mit den Worten „losing graciously“ (würdevoll verlieren) kündigte Mark Shuttleworth den Umstieg von „Upstart“ auf „systemd“ an.

Gerade einmal drei Tage, nachdem Debian bekannt gegeben hat systemd als init-Dienst zu nutzen, kündigte nun auch Ubuntu die Umstellung auf den Daemon an. Das in zwei Monaten erscheinende Ubuntu 14.04 LTS soll von dieser Entscheidung noch nicht betroffen sein, da die Umstellung erst erfolgen soll, wenn systemd genauso gut arbeitet wie sein Vorgänger Upstart. Zum Zeitplan der Umsetzung äußerte sich Shuttleworth wie folgt: „Es werde zweifellos Zeit brauchen, um die Stabilität und Abdeckung von upstart zu erreichen, man werde jedoch beim Ubuntu Tech Board Pläne und Positionen für den Wechsel ausarbeiten“. Zuerst soll systemd, nachdem es in Debian implementiert ist, für Entwickler zugänglich gemacht werden. Danach wird der Init-Dienst in die Distribution eingepflegt. Wann genau das passieren wird, ist allerdings noch offen.

Mark Shuttleworth bedankte sich bei den vielen engagierten Mitarbeitern des Projekts Upstart. In seiner Ankündigung ließ er allerdings offen, wie es mit dem Projekt weitergehen wird, sobald die Umstellung erfolgt ist.

Der systemd-Hauptentwickler Lennart Poettering verkündete auf Google+, dass er sich über die Entscheidung sehr freue, aber auch die Kritik an dieser Umstellung nachvollziehen kann.

Gründe für die Umstellung

Im Juni vergangenen Jahres äußerte sich Shuttleworth in einer Fragestunde anlässlich der Ubuntu Open Week, dass man Upstart beibehalten, die Diskussion in der Debian-Gemeinschaft aber aufmerksam verfolgen werde. Daran hat er sich augenscheinlich gehalten.

Die Abstimmung über den künftigen Init-Standard in Debian habe diese Frage nun auch für Ubuntu beantwortet. Da Ubuntu auf Debian aufbaut, ist die Nutzung eines einheitlichen init-Dienstes eine Vereinfachung gegenüber dem Festhalten an Upstart. Dies betrifft nicht nur die Pflege dieser Komponente sondern auch anderer Software-Pakete, deren systemd-Konfigurationen bzw Init- oder Upstart-Skripte dauerhaft gepflegt werden müssten. Weiterhin erhofft man sich mit systemd einen noch schnelleren Systemstart.

Konflikt bei Debian

Schon im Oktober 2013 wurde auf der Mailingliste der Debian-Entwickler diskutiert, ob es nun zum Einsatz des Init-Dienstes kommen soll.

Die Umstellung auf systemd ist umstritten, bei der Abstimmung unter den Debian-Entwicklern über die Umstellung kam es unter den Stimmberechtigten zu größeren Auseinandersetzungen. Nach dem aktuellen Zeitplan soll systemd in Debian 8 „Jessie" zum Einsatz kommen. Allerdings gibt es für diese Version noch keinen Erscheinungstermin. Die bisher getroffene Entscheidung ist jedoch noch nicht bindend, da sie durch eine Resolution von mindestens sechs Debian-Entwickler noch rückgängig gemacht werden kann.

Auch außerhalb von Debian gab es unterschiedliche Meinungen zur Machbarkeit der Umstellung, diese fielen allerdings moderater aus.

Upstart und systemd in Kürze

Upstart wurde ab 2006 entwickelt, um den bisherigen init-Daemon unter Linux zu ersetzen und das Starten und Beenden von Systemprozessen flexibler zu gestalten. Während System-V-Init Dienste in einer vorgegebenen Reihenfolge startet, kann Upstart Abhängigkeiten der Dienste und Prozesse berücksichtigen und beispielsweise mit dem Start des Webservers so lange warten, bis die notwendigen Netzwerkdienste verfügbar sind.

2010 begann 🇬🇧 Lennart Poettering mit der Entwicklung von systemd. Hier können Dienste zu großen Teil zeitgleich gestartet werden, wobei systemd an einen noch nicht verfügbaren Prozess gerichtete Kommunikation so lange zwischenspeichert, bis dieser sie entgegennehmen kann. Das dahinterliegende Prinzip, Sockets zur Kommunikation durch systemd zu erstellen und bei Bedarf an andere Prozesse zu übergeben, ermöglicht beispielsweise auch, während des Boot-Vorgangs Log-Meldungen an /dev/log in das Bootlog zu schreiben und später in das Syslog, sobald dessen Dienst verfügbar ist. Konfiguriert wird systemd jedoch nicht über die von Init und Upstart bekannten Shell-Skripte, sondern mittels Konfigurationsdateien.


Quellen und weitere Informationen:

Vielen Dank an Das Auge und Thorsten Reinbold für die eingesandten Artikel!

Veröffentlicht von Robert.Kurz | 16. Februar 2014 20:00 | Kategorie: Rund um Ubuntu | # Fehler im Artikel melden

basti171

1 16. Februar 2014 21:17

Red hat hat mit systemD eigentlich das gleiche gemacht wie ubuntu mit upstart, bekommt dafür aber keine kritik ... Generell würde ich mir bei canonical wünschen, dass man die eher unnützen projekte beerdigt und endlich mal was vernünftiges (unity 8, juju) macht. Upstart, mir, cups, dbus, ist mir alles egal was darunter läuft. Wichtig wäre vor allem mal deren convergence-concept und da vor allem mal ein paar vernünftige apps.

Statt compiz/unity 7 hätte man jetzt schon einen convergence-desktop qt5 haben müssen und die ersten alphaversionen von den core-apps, die dann gleich mitausgeliefert werden. Dann sind die apps auch gut, wenn ubuntu phone rauskommt

encbladexp

Ehemaliger

Avatar von encbladexp
2 16. Februar 2014 21:20

@1: upstart und systemd arbeiten vom Grundsatz unterschiedlich, siehe auch Link.

Und bzgl. systemd gab es nicht erst die letzten Wochen schon ordentlich Kritik. Ungeachtet dessen scheinen die technischen Vorteile für die meisten Distributoren zu überwiegen.

mfg Stefan Betz

ingo2

Avatar von ingo2
3 16. Februar 2014 22:12

Auch ich stehe der Wahl von systemd bei Debian kritisch gegenüber, aber unterm Strich ist die Entscheidung sinnvoll. Alle größeren Linux-Distributionen haben dann jetzt ein gemeinsames Init-System, das ist für kommerzielle Anbieter ein großer Vorteil und trägt damit zur Verbreitung von Linux bei.

Der größte Nachteil sind die zahlreichen Abhängigkeiten (prerequisites), die systemd benötigt. Der ganze Init-Prozeß wird aus User-Sicht in eine Blackbox gesperrt. Dabei bleiben dann FreeBSD und auch Hurd außen vor. OpenRC ist leider noch nicht ausgereift, wird aber bei denen wohl als Ersatz dienen - oder das gute alte SysV-Init.

Upstart und Canonical haben sich den Mißerfolg größtenteils selbst zuzuschreiben. Die CLA's, die mangelnde Co-Operation mit der Community, egoistische Forks/Eigenentwicklungen (Unity, Mir), mangenlde Beiteiligung an Upstream-Projekten, haben eine weitere Verbreitung verhindert. Daß Google noch Upstart nutzt, liegt an einem ganz altem Ubuntu-Bekannten JR, der als einer der Ersten Mitarbeiter bei Canonical das Projekt "Upstart" begonnen hat. Ist vor ein paar Jahren (so umn die Lucid-Zeit) dann zu Google gegangen.

Ximion

Avatar von Ximion
4 16. Februar 2014 22:40

@3: Im Prinzip hast du Recht, mit Ausnahme von zwei Punkten: Systemd ist keine "Blackbox" - der Code ist öffentlich (und recht gut zu verstehen) und mittels den wirklich hervorragenden Analysewerkzeugen kann man sich leicht ein Bild davon machen, was beim start so passiert.
Die deklarativen systemd-units können zudem von jedem init-system verwendet werden, welches ähnliche Funktionalität wie systemd bietet. Momentan ist das zwar nur systemd, aber man könnte theoretisch ein neues initsystem schreiben, welches ähnliches implementiert.
SJR ist zudem eher ein Kritiker von Upstart, dass Google es nutzt liegt vermutlich daran, dass man an die interne Ubuntu-distribution gewöhnt war (oder dass der Projektleiter es einfach vorgezogen hat). Siehe auch SJR's statement, oder seine Antworten zu Kays post hier.

fuchsfuchsfuchs

Maskottchen

Avatar von fuchsfuchsfuchs
5 16. Februar 2014 22:41

@3:

OpenRC ist leider noch nicht ausgereift, wird aber bei denen wohl als Ersatz dienen

War hier nun fuer Monate im Einsatz, bevor ich interessehalber (G+ von encbladexp) gestern auf systemd umgestellt habe. Und ja, Distributionen, welche mehr als nur Linux ansprechen, koennen OpenRC nutzen. Gentoo ist wohl das prominenteste Beispiel, da laeuft das in der Praxis sauber. Jetzt schon.

Fuchs

(Randbemerkung: von systemd habe ich bisher nichts. Der Boot ist ziemlich genau gleich schnell wie mit OpenRC, einige Features verliere ich hingegen (optionaler Interactive Mode, der waerend des Bootens immer noch aktiviert werden kann). Aussehen tut es auch gleich, es starten sogar die selben Dienste wie unter OpenRC (inklusive Gentoos /etc/local.d/*) Von daher: kein Gewinn und kein Verlust fuer mich persoenlich. Fuer Ubuntu ist es in meinen Augen ein Gewinn, eine gemeinsame Grundlage bei Desktopdistributionen ist vor allem fuer Drittentwickler wie Valve interessant, oder fuer Projekte wie KDE)

Thorsten_Reinbold

6 16. Februar 2014 23:25

Gute Entscheidung. Ich habe nach meinem Schwenk auf Arch die Umstellung dort sehr hautnah mitbekommen und mich inzwischen ganz gut mit systemd angefreundet. Etwas Einarbeitung vorausgesetzt, bietet systemd tolle Möglichkeiten.

Tids

Avatar von Tids
7 17. Februar 2014 00:48

Weiter so ☺ Das ist der erste Schritt zurück zu dem Ubuntu was ich damals lieben gelernt habe.