Systemd – Was Sie wissen müssen

Systemd - Ce trebuie să știți
⏱️ 6 min read

Es sei denn, Sie haben unter einem Felsen gelebt oder noch schlimmer – es interessiert Sie nicht viel, wie Linux funktioniert, Sie müssen davon gehört haben systemd, das (relativ) neue Init-System, das das alte und veraltete SysV-Init ersetzt, das kürzlich von den meisten großen Linux-Distributionen übernommen wurde.

Was ist ein Init-System?

Wenn Ihr Linux-Computer gestartet wird, wird zuerst ein integrierter Code ausgeführt, der zuerst aus dem BIOS oder UEFI geladen wird, gefolgt vom Bootloader, der gemäß seiner Konfiguration einen Linux-Kernel lädt. Der Kernel lädt Treiber und startet beim allerersten Job den Init-Prozess, dem als erster die PID (Process ID) 1 zugewiesen wird.

Aus Sicht des Benutzers sieht dies nach dem Starten von Netzwerken, Datenbanken usw. aus, aber in Wirklichkeit findet unter der Haube ein ziemlich komplexer Prozess statt. Dienste werden gestartet, gestoppt und neu gestartet, häufig parallel zueinander. Einige werden unter anderen Berechtigungen als andere ausgeführt, Dienststatus werden gemeldet und protokolliert, und viele andere Aufgaben werden ausgeführt, damit der andere Teil Ihres Systems funktioniert und mit seinen Benutzern und seiner Umgebung interagieren kann.

Wie dies umgesetzt wird, ist jedoch alles andere als einheitlich, und hier hört wirklich alles auf, gemeinsam und klar definiert zu sein.

Das alte Init-System

Das Init-System, das bis vor kurzem von den meisten Mainstream-Linux-Distributionen verwendet wurde, war System V init (oder kurz SysV init), das seine Namensform abgeleitet hat UNIX-System V. (Ausgesprochen „System Five“), das erste im Handel erhältliche UNIX-System. System V OS hatte eine bestimmte Art, seinen Init-Prozess auszuführen, und SysV init hat dies über die Jahre hinweg beibehalten.

systemd-sysvinit

Und es ist viele Jahre her. UNIX System V wurde ursprünglich 1983 veröffentlicht, was den init SysV init zu einem über 30 Jahre alten Ansatz beim Starten von Linux-Maschinen macht.

Die Notwendigkeit einer Änderung

Wie bereits erwähnt, ist SysV init veraltet und längst überfällig, ersetzt zu werden. Einige der Gründe dafür sind:

  • SysV init verwendet / sbin / init, um den Init-Prozess zu starten, aber init selbst spielt eine sehr begrenzte Rolle. init macht kaum mehr als das Starten von /etc/init.d/rc gemäß der aus / etc / inittab gelesenen Konfiguration, die wiederum Skripte ausführt, um die eigentliche Arbeit des init-Prozesses zu erledigen. Dies geschieht, sofern nicht explizit angegeben (wie bei startpar unter Debian), nacheinander, wobei ein Skript nach dem anderen beginnt, wodurch der gesamte Prozess verlangsamt wird, da jedes Skript auf den Abschluss des vorherigen Skripts warten muss.
  • SysV init hat keinen Zugriff auf die PID oder die Prozesse, die es (indirekt) gestartet hat. Es liest nur PIDs und ordnet sie auf umständliche, komplizierte Weise tatsächlichen Prozessen zu.
  • Für Systemadministratoren, die versuchen, die Umgebung zu ändern, in der ein bestimmter Prozess gestartet wird, ist es mit SysV init ziemlich schwierig. (Um dies zu erreichen, müssen sie den Init-Strcipt ändern, der für den Start des angegebenen Prozesses verantwortlich ist.)
  • Jedem Dienst, den SysV nicht implementiert, sind bestimmte Funktionen gemeinsam, aber jeder Prozess müsste sich stattdessen selbst implementieren, z. B. sich selbst „dämonisieren“ (ein Systemdämon werden) aufwändiger und langer Prozess. Anstatt diese Schritte einmal zu implementieren, muss jeder Prozess von SysV selbst ausgeführt werden.
  • SysV überlässt bestimmte Funktionen auch externen Programmen und weiß nichts über Dienste, die von diesen gestartet werden.

All dies und viele weitere Designfehler oder vielmehr das veraltete Systemdesign von SysV haben die Schaffung eines modernen Init-Systems längst überfällig gemacht.

Geben Sie systemd ein

Es gab viele Versuche, ein alternatives Init-System zu erstellen, von denen systemd nur eines ist. Ubuntu führte früher ein eigenes Init-System namens Emporkömmling. Gentoo verwendet immer noch OpenRC. Andere Init-Systeme umfassen Initng, Busybox-Init, starte es, und Mudur und andere.

Der Grund, warum systemd ein klarer Gewinner ist, ist, dass es von den meisten großen Distributionen übernommen wurde. RHL und CentOS gingen natürlich den systemd-Weg, da Fedora 2011 als erste Distribution systemd offiziell einführte. Aber systemd ist wirklich das einzige Init-System geworden, das sie alle regiert, als Debian 8 offiziell auf systemd umstellte und Ubuntu und Derivate mitbrachte , Überwindung von Canonical (oder genauer Mark Shuttleworth) anfänglicher Widerspruch in Richtung systemd.

Wie unterscheidet sich systemd?

  • Systemd möchte eine einzige, zentralisierte Möglichkeit bieten, den Init-Prozess von Anfang bis Ende zu handhaben.
  • Es startet und stoppt Prozesse und Dienste und verfolgt dabei deren Abhängigkeiten. Es kann sogar einen Prozess als Antwort auf die Abhängigkeitsanforderung eines anderen Prozesses starten.
  • Zusätzlich zum Starten und Stoppen von Prozessen während der Startzeit kann Systemd auch jederzeit gestartet werden, wenn das System als Reaktion auf bestimmte Triggerereignisse, z. B. wenn ein Gerät angeschlossen ist, in Betrieb ist.
  • Es sind auch keine Prozesse erforderlich, um sich selbst zu dämonisieren. Im Gegensatz zu SysV init kann systemd Dienste ausführen, die ausgeführt werden, ohne den langen Prozess durchlaufen zu müssen, Dämonen zu werden.
  • Im Gegensatz zu SysV init kennt und verfolgt systemd alle Prozesse, einschließlich PIDs, und das Abrufen von Informationen zu Prozessen ist für Systemadministratoren unter systemd viel einfacher.
  • Systemd unterstützt Container, die im Grunde genommen isolierte Serviceumgebungen sind, ohne dass virtuelle Maschinen erforderlich sind. Dies hat ein großes Potenzial für sicherere und einfachere Systemdesigns in der Zukunft.

systemd-container

Dies sind natürlich nur einige der Hauptvorteile. Um eine vollständige Diskussion über die Vorteile von systemd zu erhalten, lesen Sie Debian 8 “Systemd Position Statement

Kontroverse

Natürlich wurde systemd nicht von allen begrüßt. In der Tat haben und tun viele runzelte die StirnEinige nannten es monolithisch und umständlich und beschuldigten es sogar, den „Fensterweg“ zu gehen, alles zentral zu haben. Viele argumentieren, dass es nicht „der Linux-Weg“ ist, und sicherlich scheint systemd nicht den POSIX-Standards zu entsprechen, und wenn wir systemd als Toolkit betrachten (über die Binärdatei hinaus), ist es definitiv hugae.

systemd-infographic

Trotzdem ist systemd eindeutig ein Fortschritt, und obwohl es nicht perfekt ist, wurde ein Großteil der Kritik erhalten von seinem ursprünglichen Autor angesprochen und Entwickler Lennart Poettering. Es ist definitiv eine dringend benötigte Weiterentwicklung und ein Fortschritt gegenüber dem alten Init-System. Linus Torvalds, der Schöpfer von Linux, scheint systemd nichts auszumachen zu viel, und wer sind wir, um mit “The Creator” zu streiten.

Fazit

Systemd wurde von allen großen Linux-Distributionen übernommen und ist hier, um zu bleiben. Was auch immer einige Systemadministratoren aus irgendeinem Grund sagen, systemd ist die Zukunft des Mainstream-Linux, ob es einzelnen Benutzern gefällt oder nicht, was angesichts seiner besonderen Vorteile nicht unbedingt eine schlechte Sache ist.

Für den durchschnittlichen Benutzer bringt es schnellere Startzeiten und wahrscheinlich zuverlässigere Systeme, während in zukünftigen Distributionen, die es übernehmen, die Kompatibilität untereinander verbessert werden kann. Auf der Benutzerseite werden wir definitiv von dem aktuelleren und zeitgemäßeren Systemdesign profitieren, das es auf unsere Desktops bringt.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Benutzerbild von Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Das könnte dich auch interessieren …

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x