Init-Systeme – für den Desktop egal!
Wer sich viel mit Linux beschäftigt wird schon mal über den Begriff “Init Systeme” gestoßen sein. “SystemD”, “Runit”, “OpenRC”, … doch was sind eigentlich Init Systeme? Welche Vor- und Nachteile gibt es bei anderen Init Systemen? Und vor allem… welches ist das Beste??
Erst mal, was sind Init Systeme überhaupt?
Nun.. Init-Systeme sind verantwortlich für das Starten und Verwalten von Prozessen und Diensten. Konkrete Aufgaben jener Systeme wären…
-> Starten von Diensten
-> Prozessüberwachung (Heißt im Grunde nur, dass geprüft wird, ob die Prozesse ordnungsgemäß ausgeführt werden. Falls der Prozess beendet wird oder abstürzt, startet das Init-System den Prozess neu).
-> Abhängigkeitserwaltung (Auch ganz simple: Es wird geprüft, welche Dienste und Prozesse mit einander zusammenhängen, sodass alle nötigen Prozesse und Dienste gestartet werden)
-> Systemeinstellungen
-> Systemshutdown (Heißt auch hier, dass alle Prozesse und Dienste vernünftigt beendet werden)
SystemD ist wohl das bekannteste Init System, da es bei den meisten Linux Distros vorkommt. Doch es gibt noch einige andere Init-Systeme, wie OpenRC welches überwiegend bei Gentoo eingesetzt wird. Aber auch Runit erfreut sich großer Beliebtheit.
Vor- und Nachteile von SystemD:
Vorteile:
-> Schneller Startprozess
-> Umfangreiche Leistungsüberwachung
-> Integration von CGroups
Nachteile:
-> SystemD ist recht komplex
-> SystemD ist sehr abhängig von SystemD-spezifischen Tools,
-> Mangelnde Portabilität, da SystemD tief in das System integriert ist.
Runit
Vorteile:
-> Einfachheit
-> Geringer Ressourcenverbrauch
-> Stabilität
Nachteile:
-> Begrenzte Funktionen (Im Vergleich zu SystemD)
-> Wenig verbreitet (heißt vermutlich auch weniger Support)
-> Eventuell bedarf es mehr manuelle Konfiguration
OpenRC
Vorteile:
-> Einfachheit und Benutzerfreundlichkeit
-> Portabilität
-> Parallele Service-Starts (Die Prozesse und Dienste werden parallel gestartet, heißt also kürzere Startzeiten)
Nachteile:
-> Möglicherweise weniger erweiterte Funktionen (im Vergleich zu SystemD)
-> Wenig verbreitet
-> Eventuell weniger aktive Entwicklung
Doch, was ist nun das Beste? Und soll ich meine Distro ändern für das Init System?
Absolut nicht! Und es gibt auch kein “bestes Init-System”, denn Fakt ist, dass die meisten einen Computer “nur benutzen” und nicht aktiv das System ändern oder darin herumspielen. Demnach ist die Wahl recht egal. Die meisten Distros haben SystemD und für den einfachen Nutzer spielt es keine Rolle, ob nun Runit oder OpenRC unter der Haube läuft. Wähle das Init-System nach deinen Belieben. Wenn du viel herum experimentierst, wähle mal eine Distro mit anderen Init-Systemen, wie VOID, Artix oder Gentoo. Aber wenn du ein “Just Works” System willst, bleib bei herkömmlichen Distros mit SystemD, denn du wirst keinen Unterschied spüren.
Bei Servern sieht das ganze aber etwas anders aus. Je nach Anwendungsbereich bedarf es eventuell ein “cleveres” Init-System.
Vielleicht hast du spezifische Anforderungen und brauchst ein ganz bestimmtes System. Oder es geht dir um die Sicherheit des Servers, denn durch die Anpassung des Init-Systems können Administratoren Sicherheitsrichtlinien implementieren, ungenutzte Dienste deaktivieren, Zugriffsrechte einschränken und sicherheitsrelevante Einstellungen vornehmen. Oder wenn dein Server eine hohe Arbeitslast bewältigen und immer verfügbar sein muss. Und noch viele weitere Gründe, aber da bedarf es tiefergreifende Recherche, die ich in diesem Artikel nicht weiter ausführe.
Halte wir also fest…
-> Init-Systeme sind tiefe Implementierungen einer Linux Distro
-> Die Wahl der Init-Systeme ist für den einfachen Desktop Bereich egal
-> Wer tief in das System eingreift, profitiert eventuell von einem anderen Init-System
-> Bei Servern kann ein anderes Init-System von Vorteil sein
Hört nicht auf irgendwelche Menschen in Foren, die euch verklickern wollen, welches Init-System “das Beste” ist. “SoystemD” oder “Runshit” sind nur Begrifflichkeiten die überwiegend von Menschen benutzt werden, welche mit ihrem Computer eh nie was sinnvolles anfangen. Das Init-System was DU benutzt und was für DICH funktioniert, ist für DICH das Beste. Außerdem gibt es viel mehr Sachen, über die man diskutieren kann… Zum Beispiel ob Thirdparty-Packagemanager nötig oder sinnvoll sind. Gibt es denn dort eine gute und richtige Wahl?