Wie wir gelernt haben, ist der init-Prozess der erste Prozess, der während des Linux-Bootvorgangs gestartet wird. Er ist der Elternprozess aller anderen Prozesse und dafür verantwortlich, die wesentlichen Dienste zu starten, die Ihr System in einen nutzbaren Zustand versetzen. Aber wie erreicht er das?
Es gibt drei Hauptimplementierungen des Linux-Init-Systems, jede mit einem anderen Ansatz zur Verwaltung von Diensten.
System V Init
System V init, oft als sysvinit bezeichnet, ist das traditionelle Init-System für Linux. Es folgt einem sequenziellen Startverfahren, das durch Skripte definiert ist. Der Zustand des Systems wird über Runlevels verwaltet, wobei jeder Runlevel (z. B. Einzelbenutzermodus, Mehrbenutzermodus mit Netzwerk) eine bestimmte Reihe von Diensten zum Starten oder Stoppen hat. Dies war lange Zeit der Standard im klassischen Linux-Bootvorgang.
Upstart
Upstart, das auf älteren Ubuntu-Versionen zu finden ist, ist ein ereignisbasiertes Init-System. Es entfernte sich vom streng sequenziellen Modell von System V. Stattdessen startet und stoppt Upstart Dienste (genannt Jobs) als Reaktion auf Systemereignisse, wie z. B. das Verfügbarwerden eines Netzwerkgeräts. Dies ermöglicht flexiblere und schnellere Bootzeiten.
systemd
Der moderne Standard für das Linux-Init-System ist systemd. Es ist ein zielorientiertes System, das Abhängigkeiten aggressiv verwaltet. Anstatt nur eine Liste von Diensten zu starten, definieren Sie einen Zielzustand (wie eine grafische Oberfläche), und systemd arbeitet daran, alle Abhängigkeiten für dieses Ziel zu erfüllen, indem es oft Dienste parallel startet, um den Bootvorgang erheblich zu beschleunigen.
Wir haben einen ganzen Kurs über Init-Systeme, in dem wir uns detaillierter mit jedem dieser Systeme befassen werden.