Init Freedom: Auch systemd ist nicht alternativlos

  Niklas   Lesezeit: 7 Minuten  🗪 7 Kommentare

Inzwischen setzen die meisten Linux Distributionen auf Red Hats Init-System systemd, doch es gibt zahlreiche Alternativen und einige Distributionen, die diese standardmässig verwenden.

init freedom: auch systemd ist nicht alternativlos

Das erst 2010 gestartete systemd Projekt des Red Hat Konzerns ist inzwischen der de-facto Standard für die Steuerung und Überwachung von Daemons und viel mehr auf Linux Systemen. Neuere Linux-Anwender kennen vielleicht gar nichts anderes mehr, als die Befehle systemctl (für Daemons) und journalctl (für Logs).

Und doch ist systemd nicht alternativlos. Mögliche Alternativen sind: SysVinit, OpenRC, runit, sinit, s6, dinit oder GNU Shepherd. Unix-artige Betriebssysteme sind für ihre Vielfalt und Auswahlmöglichkeiten bekannt. Wir haben beispielsweise weit mehr als 10 verschiedene Desktopoberflächen, wäre es da nicht schade, nur noch ein einziges Init System zu haben? In der Serie Init Freedom werden wir uns die verschiedenen Möglichkeiten und einige Distributionen, die diese nutzen, näher anschauen.

Früher nutzten die meisten Linux Distributionen das Init System SysVinit von Unix System V. Es wurde allerdings von einigen als veraltet angesehen, weshalb die Unix Systeme Solaris schon 2004 und Mac OS X 2005 Alternativen dazu einführten. 2006 folgte Ubuntu diesem Schritt mit Upstart, das wenige Jahre von einigen weiteren Distributionen verwendet wurde. Nach dem Erscheinen von systemd 2010 wechselten schrittweise fast alle grossen Linux Distributionen darauf. Als letzte Distribution zog 2014 auch Ubuntu nach.

Auf Distributionen mit systemd ist es so gut wie unmöglich, dieses zu ersetzen, da es sehr stark ins System verwurzelt ist und dort viele verschiedene Aufgaben übernimmt, viel mehr, als es die anderen Init Systeme taten. Ausserdem sind Alternativen schlicht nicht mehr in den Paket Repositorys enthalten.

Aber systemd hat auch viele Kritiker. Bei Debian führte die Umstellung auf systemd zu monatelangen Streits in der Community und letztendlich zu einer ganz neuen Distribution, Devuan, die eine grosse Auswahl an verschiedenen Init Systemen anbietet und die Init Freedom Kampagne gestartet hat. Devuan als die vielleicht bekannteste Distribution ohne systemd werde ich in der Serie natürlich auch näher vorstellen.

Der Hauptkritikpunkt an systemd ist seine Vielseitigkeit. Es verletzt die Unix Philosophie, nur eine Aufgabe zu erledigen, diese aber so gut wie möglich. Systemd ist auch zu komplex und fehleranfällig. Ausserdem wird kritisiert, dass es Googles DNS und NTP Server als Fallback fest einprogrammiert hat. Auch zahlreiche schwerwiegende Sicherheitslücken sprechen nicht für systemd.

Des Weiteren ist systemd auf den Linux Kernel beschränkt. Die BSD Betriebssysteme, illumos Distributionen und Systeme, die den GNU Hurd Kernel nutzen, können es beispielsweise nicht nutzen. Allein aus diesem Grund muss es weiterhin andere Lösungen geben. Die BSDs setzen mehrheitlich auf ihr eigenes rc.d Init System. OpenIndiana, die bekannteste illumos Distribution, nutzt hingegen Service Management Facility von Solaris.

Das vielleicht verbreitetste alternative Init System für Linux ist OpenRC vom Gentoo Projekt. Es wird unter anderen von den Linux Distributionen Gentoo und Alpine Linux standardmässig eingesetzt, ausserdem auf dem FreeBSD-basierten GhostBSD. Bei Artix Linux, Devuan und Parabola kann es optional genutzt werden.

Runit ist unter den systemd-freien Distributionen ebenfalls sehr beliebt. Es ist sehr klein und gut auf verschiedene Unix-artige Systeme portierbar. Damit stellt es das genaue Gegenteil zu systemd dar. Es wird bei Void Linux standardmässig eingesetzt, ist aber auch auf Artix Linux und Devuan verfügbar.

Mit Shepherd hat auch das GNU Projekt sein eigenes Init System, dieses wird nur von GNUs eigener Distribution GNU Guix verwendet und unterstützt. Wer die Befehle von systemd gewohnt ist, sollte sich vielleicht Dinit anschauen, das mit dinitctl ziemlich ähnliche Befehle hat und auf Artix Linux genutzt werden kann.

Quellen:

Tags

Systemd, Init, Linux, GNU, Distributionen, Ubuntu, System

Udo Müller
Geschrieben von Udo Müller am 20. Dezember 2021 um 16:53

Korrektur: GhostBSD ist mittlerweile wieder auf das originale Init-System rc.d von FreeBSD zurückgegangen, weil OpenRC immer wieder Schwierigkeiten machte.

tux.
Geschrieben von tux. am 20. Dezember 2021 um 18:39

Zu GNU Shepherd, direkt von seiner Website: "It is intended for use on GNU/Hurd, but it is supposed to work on every POSIX-like system where Guile is available."

Niklas
Geschrieben von Niklas am 21. Dezember 2021 um 14:58

Wird aber auch von der GNU/Linux Distribution GNU Guix verwendet. Diese werde ich im Laufe meiner Serie noch naeher vorstellen.

👓
Geschrieben von 👓 am 25. Dezember 2021 um 08:46

Was Brauche ich: Ich arbeite mittlerweile fast nur noch mit Laptop.

  • Internetverbindung ja/nein
  • Mit welchen WLan verbunden
  • Mit welchem USB-Gerät verbunden

Anhand diesen Informationen müssen SFTP und SMB verzeichnisse unter verschiedene User gemountet werden und verschiedene dienste gestartet oder beendet werden.

Welcher Dienst macht das am Besten?

this.ven
Geschrieben von this.ven am 19. Oktober 2022 um 16:45

Ich glaube für so eine konkrete Frage nach einer Empfehlung ist hier die Kommentar-Funktion nicht gedacht. Außerdem sind für die beschriebenen Anforderungen im Detail auch andere Dienste zuständig.

Mein intuitiver Ansatz wäre NetworkManager mit Dispatcher Skripten (für die ersten beiden Punkte) sowie udev Regeln und das mit Systemd koppeln, aber besser mal in Foren o.ä. nachfragen.

Li
Geschrieben von Li am 19. Oktober 2022 um 18:01

Kann man hier ruhig fragen, sofern eine kurze Antwort zu erwarten ist. Ansonsten ab in unseren HELP-Raum -> https://matrix.to/#/!jQjdroQWbaLwmKCqdK:matrix.sp-codes.de?via=sils.li&via=matrix.org&via=t2bot.io

V wie Vendetta
Geschrieben von V wie Vendetta am 8. März 2024 um 15:48

Linux, 2024. Mittlerweile hat sich systemd wie ein Krebsgeschwür weiter ausgebreitet. Viele Desktop Umgebungen und Distributionen lassen einem gar keine Wahl mehr und sind den Launen von MS Poettering und Red Hat hilflos ausgeliefert Die Alternativen sind auch nicht mehr so zahlreich bzw. aktiv. OpenRC vegetiert vor sich hin und s6 kommt nur langsam voran. Wer braucht schon Alternativen, Wahlfreiheit, Backuplösungen, neue revolutionäre Ansätze oder gar von Großkonzernen unabhängige, modulare Lösungen? BSD muss man eh nicht beachten und warum libmusl unterstützen, wenn es glibc gibt? https://drewdevault.com/2020/09/25/A-story-of-two-libcs.html