10 Punkte von GN⁺ 2024-11-04 | 4 Kommentare | Auf WhatsApp teilen
  • 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

 
iolothebard 2024-11-08

Als ob nur systemd das Problem wäre …

 
ganadist 2024-11-06

init von 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 udev verwenden, sondern kann stattdessen feste Device-Nodes in das Root-Dateisystem aufnehmen.

 
plaaat0102 2024-11-05

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..

 
GN⁺ 2024-11-04
Hacker-News-Kommentare
  • systemd löst viele Probleme, und die Community reagiert sehr schnell und ist hilfreich

    • Gelegentlich gibt es seltsame Probleme, aber es gibt immer eine Lösung
    • Der Speicherverbrauch ist nicht wichtig, und die meisten Embedded-Linux-Geräte verfügen über mehr als 1 GB RAM
    • Auf kleinen Geräten verwendet man Zephyr oder FreeRTOS
  • OpenEmbedded/Yocto, Devuan und Gentoo bieten mehrere Init-Systeme an

  • Rustysd ist ein Service-Manager, der das Verhalten von systemd teilweise nachbildet

    • Er bietet Kernfunktionen und kann auf verschiedenen Plattformen einen systemd-ähnlichen Service-Manager bereitstellen
  • Menschen, die systemd bevorzugen, sind meist Distributions-Maintainer

    • systemd liefert verschiedene Systemdienstprogramme in einem einzigen großen Build
  • Die Unix-Philosophie besteht darin, dass kleine Werkzeuge Probleme lösen

    • systemd war anfangs klein, inzwischen sind sogar videobasierte Webkonferenzen möglich
  • runit eignet sich hervorragend zur Überwachung von Anwendungen und Diensten

    • Es ist in BusyBox integriert und sehr leichtgewichtig
    • Die Konfiguration ist sehr einfach, und Logging ist ebenfalls enthalten
    • Es setzt die Unix-Philosophie nahezu perfekt um
  • Embedded-Systeme können auch ohne udev betrieben werden

    • Das ist möglich, wenn feste Peripheriegeräte und Kernel-Module verwendet werden
  • Der RPi verwandelt den Formfaktor industrieller Steuerplatinen in einen Desktop

    • Viel Software wurde nicht mit diesem Segment im Blick geschrieben
  • Chimera Linux schlägt bei Service-Management sowie Login-/Seat-Management eine interessante Richtung ein

    • Die Verwendung von gnulibc- und gcc-Erweiterungen in systemd ist ein Problem
  • Die Installationsgröße von systemd ist das größte Problem in Embedded Linux

    • Auf Geräten mit 64 MB RAM und 128 MB NAND-Flash sind 5 MB für systemd ineffizient
  • systemd ist in Embedded Linux problematisch, weil es 250 MB RAM verbraucht

    • Auf Systemen, die keine Mainstream-Distributionen berücksichtigen, ist das kein großes Problem
  • SysVInit ist zum Starten und Stoppen von Prozessen auf externe Dienstprogramme angewiesen

    • Selbst im Minimalfall wird eine Shell benötigt, um Init-Skripte auszuführen