InitNG
# InitNG

InitNG steht für Next Generation Init System (dt. Initialisierungssystem der nächsten Generation) und ist ein Softwaresystem für Unix und Unix-ähnliche Betriebssysteme zur Initialisierung des Betriebssystems. InitNG ist ein vollständiger Ersatz für das veraltete Init-System SysVinit, welches von den meisten Unix- und Linux-Distributionen verwendet wird.

## Hintergrund

InitNG wurde von Jimmy Wennlund gegründet und wird von ihm und einigen anderen aktiv weiterentwickelt.

Bei InitNG handelt es sich, wie auch bei seinem Vorgänger, um den Prozess, der als Erster vom Kernel gestartet wird und daher die Prozess-ID 1 bekommt. Dieser erste Prozess startet anhand der gewünschten Runlevels alle benötigten System-Dienste.

SysVinit startet die Prozesse immer in einer vorgegebenen Reihenfolge und startet einen Prozess immer erst dann, wenn der vorherige Prozess fertig initialisiert wurde. InitNG dagegen startet einen Prozess sofort, wenn alle Prozesse, von denen dieser abhängig ist, fertig initialisiert wurden. Es können also z. B., nachdem das Netzwerk initialisiert wurde, parallel Apache, Datenbank und Mailsystem initialisiert werden (zum Vergleich SysVinit: erst Netzwerk, dann Apache, dann Datenbank, dann Mailsystem …). Durch diese Parallelisierung der einzelnen Skripte wird eine im Vergleich zu SysVinit deutlich höhere Geschwindigkeit erreicht.

Ein weiteres Problem des Vorgängers ist, dass er keine Auskunft über den Status des Bootvorgangs gibt. So macht es u. a. den Einsatz von Anzeigen, so genannten Bootsplashes mit Fortschrittsanzeige, nur begrenzt möglich. InitNG soll dort Abhilfe leisten.

InitNG kann auf Wunsch Dienste, die abgestürzt sind, neu starten. Dies ist ein wichtiges Merkmal für Serversysteme, die ständig laufen müssen. Auch ist mit InitNG ein echter Warmstart möglich, wobei alle Systemdienste heruntergefahren und danach sofort wieder hochgefahren werden.

## Lizenz

InitNG wird unter der GPL-v2-Lizenz entwickelt und steht damit jedem auch im Quellcode frei zur Verfügung.

