Website-Suche

Die 6 besten modernen Linux-Init-Systeme (1992–2023)


In Linux und anderen Unix-ähnlichen Betriebssystemen ist der Prozess init (Initialisierung) der erste vom Kernel beim Booten ausgeführte Prozess, der eine Prozess-ID (PID) von 1, die im Hintergrund ausgeführt wird, bis das System heruntergefahren wird.

Der init-Prozess startet alle anderen Linux-Prozesse, also Daemons, Dienste und andere Hintergrundprozesse, und ist daher die Mutter aller anderen Prozesse auf dem System.

Ein Prozess kann viele andere untergeordnete Prozesse auf dem System starten, aber wenn ein übergeordneter Prozess stirbt, wird init zum übergeordneten Prozess des verwaisten Prozesses.

Im Laufe der Jahre sind in großen Linux-Distributionen viele Init-Systeme entstanden. In diesem Handbuch werfen wir einen Blick auf einige der besten Init-Systeme, mit denen Sie auf dem Linux-Betriebssystem arbeiten können.

1. System V-Init

System V (SysV) ist ein ausgereiftes und beliebtes init-Schema auf Unix-ähnlichen Betriebssystemen, es ist das übergeordnete Element aller Prozesse auf einem Unix/Linux-System. SysV ist das erste kommerzielle Unix-Betriebssystem, das entwickelt wurde.

Fast alle Linux-Distributionen verwendeten zuerst das Init-Schema SysV, mit Ausnahme von Gentoo, das über ein benutzerdefiniertes Init verfügt, und Slackware, das das Init-Schema im BSD-Stil verwendet.

Im Laufe der Jahre wurden aufgrund einiger Unvollkommenheiten mehrere SysV-Init-Ersetzungen entwickelt, um effizientere und perfektere Init-Systeme für Linux zu erstellen.

Obwohl diese Alternativen darauf abzielen, SysV zu verbessern und wahrscheinlich neue Funktionen anzubieten, sind sie dennoch mit den ursprünglichen SysV-Init-Skripten kompatibel.

2. SystemD

SystemD ist ein relativ neues Init-Schema auf der Linux-Plattform. Es wurde mit Fedora 15 eingeführt und umfasst eine Reihe von Tools zur einfachen Systemverwaltung. Der Hauptzweck besteht darin, alle Systemprozesse während des Startvorgangs und während des Systembetriebs zu initialisieren, zu verwalten und zu verfolgen.

Systemd init unterscheidet sich umfassend von anderen traditionellen Unix-Init-Systemen in der Art und Weise, wie es praktisch an die System- und Dienstverwaltung herangeht. Es ist auch mit SysV- und LBS-Init-Skripten kompatibel.

Es verfügt über einige der folgenden herausragenden Merkmale:

  • Sauberes, unkompliziertes und effizientes Design
  • Gleichzeitige und parallele Verarbeitung beim Booten
  • Bessere APIv
  • Ermöglicht das Entfernen optionaler Prozesse
  • Unterstützt die Ereignisprotokollierung mit „journald“.
  • Unterstützt die Jobplanung mithilfe von Systemd-Kalender-Timern
  • Speicherung von Protokollen in Binärdateien
  • Beibehaltung des Systemzustands zur späteren Bezugnahme
  • Bessere Integration mit GNOME und vielem mehr

3. Emporkömmling

Upstart ist ein ereignisbasiertes Init-System, das von den Machern von Ubuntu als Ersatz für das SysV-Init-System entwickelt wurde. Es startet verschiedene Systemaufgaben und -prozesse, überprüft sie bei laufendem System und stoppt sie beim Herunterfahren des Systems.

Es handelt sich um ein hybrides Init-System, das sowohl SysV-Startskripte als auch Systemd-Skripte verwendet. Zu den bemerkenswerten Funktionen des Upstart-Init-Systems gehören:

  • Ursprünglich für Ubuntu Linux entwickelt, kann aber auf allen anderen Distributionen ausgeführt werden
  • Ereignisbasiertes Starten und Stoppen von Aufgaben und Diensten
  • Ereignisse werden beim Starten und Stoppen von Aufgaben und Diensten generiert
  • Ereignisse können von anderen Systemprozessen gesendet werden
  • Kommunikation mit dem Init-Prozess über D-Bus
  • Benutzer können ihre Prozesse starten und stoppen
  • Wiederaufleben von Diensten, die plötzlich ausfallen, und viele mehr

4. OpenRC

OpenRC ist ein abhängigkeitsbasiertes init-Schema für Unix-ähnliche Betriebssysteme, es ist kompatibel mit SysV init. Obwohl es einige Verbesserungen für Sys V mit sich bringt, müssen Sie bedenken, dass OpenRC kein absoluter Ersatz für die Datei /sbin/init ist.

Es bietet einige illustre Funktionen, darunter:

  • Es kann auf vielen anderen Linux-Distributionen einschließlich Gentoo und auch auf BSD ausgeführt werden
  • Unterstützt hardwareinitiierte Init-Skripte
  • Unterstützt eine einzelne Konfigurationsdatei
  • Es werden keine Konfigurationen pro Dienst unterstützt
  • Läuft als Daemon
  • Start paralleler Dienste und vieles mehr

5. runit

runit ist außerdem ein plattformübergreifendes Init-System, das unter GNU/Linux, Solaris, *BSD und Mac OS

Es verfügt über einige Vorteile und bemerkenswerte Komponenten, die in SysV-Init und möglicherweise anderen Init-Systemen unter Linux nicht zu finden sind, darunter:

  • Dienstüberwachung, bei der jeder Dienst einem Dienstverzeichnis zugeordnet ist
  • Ein sauberer Prozesszustand garantiert, dass jeder Prozess einen sauberen Zustand hat
  • Es verfügt über eine zuverlässige Protokollierungsfunktion
  • Schnelles Hochfahren und Herunterfahren des Systems
  • Es ist auch tragbar
  • Verpackungsfreundlich
  • Kleine Codegröße und vieles mehr

6. s6

s6 bietet einen kompakten Satz von Tools für UNIX, die auf die Prozessüberwachung zugeschnitten sind, ähnlich wie daemontools und runit. Es erleichtert Operationen an Prozessen und Daemons.

s6 ist als Toolkit für die Serviceverwaltung auf niedriger Ebene konzipiert und bietet verschiedene Tools, die unabhängig oder innerhalb seines Frameworks funktionieren können. In Kombination bieten diese Tools robuste Funktionalität mit minimalem Code.

Wie ich bereits erwähnt habe, startet und verwaltet das init-System alle anderen Prozesse auf einem Linux-System. Darüber hinaus ist SysV das primäre Init-Schema auf Linux-Betriebssystemen, aber aufgrund einiger Leistungsschwächen haben Systemprogrammierer mehrere Ersatzsysteme dafür entwickelt.

Hier haben wir uns einige dieser Ersetzungen angesehen, aber es könnte auch andere Init-Systeme geben, die Ihrer Meinung nach in dieser Liste erwähnenswert sind. Sie können uns diese über den Kommentarbereich unten mitteilen.