- systemd ist ein integrierter Satz von Anwendungen für die Systemverwaltung, der den traditionellen
init-Prozess ersetzt und verschiedene Funktionen wie Benutzer-Sitzungsverwaltung, Geräteverwaltung, Logging und Timing umfasst
- Die meisten Linux-Nutzer interessieren sich nicht für die Vor- und Nachteile von systemd, einige lehnen es jedoch entschieden ab oder unterstützen es stark
- Mainstream-Linux-Distributionen haben systemd übernommen, vor allem wegen seiner Vorteile in typischen Desktop-Umgebungen
Probleme bei Embedded Linux
- In Embedded-Systemen können die Vorteile von systemd eher zu Nachteilen werden
- Am Beispiel der Speichernutzung auf einem Raspberry Pi 3B zeigt sich, dass systemd mehr Ressourcen verbraucht als
SystemV init
- Auch die Logging-Daemons von systemd wie
systemd-journald verbrauchen viele Ressourcen
- In Embedded-Umgebungen werden kleinere Alternativen benötigt, und systemd ist für solche Umgebungen nicht optimiert
Komplexität von systemd und Boot-Zeit
- systemd kann die Boot-Zeit verkürzen, in Embedded-Systemen kann sich die Boot-Zeit jedoch auch verlängern
- Die Komplexität und der Funktionsumfang von systemd sind in allgemeinen Umgebungen sinnvoll, in Embedded-Umgebungen aber oft unnötig
Fehlen von Alternativen
- Für viele Dienste, die systemd ersetzt, gibt es in Embedded-Umgebungen kleinere und schnellere Alternativen, für einige jedoch nicht mehr
- So wurde etwa der
udev-Daemon in das systemd-Projekt integriert, und unabhängige Alternativen gibt es kaum
Verbreitung von systemd und Rückgang der Alternativen
- systemd umfasst viele Funktionen und ist für Distributionsverwalter bequem
- Da systemd immer mehr Funktionen absorbiert, sinkt die Motivation, Alternativen zu pflegen
- Das kann in Embedded-Umgebungen Probleme verursachen, wenn systemd dafür ungeeignet ist
Fazit
- systemd kann in Embedded-Umgebungen weniger effektiv sein als traditionelle Alternativen
- Es wird immer schwieriger, unter Mainstream-Linux-Distributionen welche ohne systemd zu finden
- Durch die Verbreitung von systemd bewegt sich Linux auf eine Zukunft zu, in der es ohne systemd kaum noch vorstellbar ist
- Es braucht die Bereitschaft, Alternativen zu entwickeln oder zu pflegen und Distributionen ohne systemd weiterhin zu unterstützen
4 Kommentare
Als ob nur systemd das Problem wäre …
initvon busybox ist ein hervorragender Ersatz für systemd auf Embedded-Geräten.Und bei eingeschränkten Systemen wie Embedded-Geräten muss man nicht unbedingt
udevverwenden, sondern kann stattdessen feste Device-Nodes in das Root-Dateisystem aufnehmen.In meinem Fall ist das zwar eher die absolute Ausnahme, aber als jemand, der Ubuntu auf einem Galaxy Tab installiert und darauf VS Code nutzt, treibt mich systemd manchmal regelrecht zur Verzweiflung..
Hacker-News-Kommentare
systemd löst viele Probleme, und die Community reagiert sehr schnell und ist hilfreich
OpenEmbedded/Yocto, Devuan und Gentoo bieten mehrere Init-Systeme an
Rustysd ist ein Service-Manager, der das Verhalten von systemd teilweise nachbildet
Menschen, die systemd bevorzugen, sind meist Distributions-Maintainer
Die Unix-Philosophie besteht darin, dass kleine Werkzeuge Probleme lösen
runit eignet sich hervorragend zur Überwachung von Anwendungen und Diensten
Embedded-Systeme können auch ohne udev betrieben werden
Der RPi verwandelt den Formfaktor industrieller Steuerplatinen in einen Desktop
Chimera Linux schlägt bei Service-Management sowie Login-/Seat-Management eine interessante Richtung ein
Die Installationsgröße von systemd ist das größte Problem in Embedded Linux
systemd ist in Embedded Linux problematisch, weil es 250 MB RAM verbraucht
SysVInit ist zum Starten und Stoppen von Prozessen auf externe Dienstprogramme angewiesen