Init-Ersatz von Ubuntu

Ubuntu-Entwickler arbeiten an einem ereignisgesteuerten Mechanismus, der Init ersetzen soll. Init ist auf Unix-Systemen traditionell der erste gestartete Prozess, der die grundlegende Systemkonfiguration übernimmt.

In Pocket speichern vorlesen Druckansicht 518 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Oliver Diedrich

Die Ubuntu-Entwickler haben mit Upstart einen Ersatz für Init entwickelt, der jetzt als Testversion im Universe-Repository der kommenden Version 6.10 (Edgy Eft) verfügbar ist. Init ist auf Unix-Systemen traditionell der erste gestartete Prozess, der über ein langes Skript (BSD-Stil) oder viele kleine Skripte (System-V-Init, in fast allen Linux-Distributionen) die grundlegende Systemkonfiguration übernimmt. Dazu gehören Dinge wie das Initialisieren der Hardware, das Starten des Netzwerks, das Einbinden der Massenspeicher und das Starten von Servern. Das sequenzielle Abarbeiten der mittlerweile recht großen Zahl von Skripten benötigt allerdings viel Zeit. Zudem passen die Hotplugging-Fähigkeiten moderner Linux-Distributionen nicht mehr zu dem Prinzip, das System beim Start komplett aufzusetzen: Massenspeicher etwa können jederzeit im laufenden Betrieb hinzukommen.

Upstart arbeitet daher ereignisgesteuert: Das Skript zum Aufsetzen des Netzwerks beispielsweise wird sowohl beim Systemstart als auch beim Einstecken einer WLAN-PC-Card gestartet. Über den Event-Mechanismus lassen sich Abhängigkeiten zwischen Skripten formulieren und Skripte parallel starten; System-V-Init erlaubt es lediglich, die Reihenfolge festzulegen, in der die Skripte laufen. Letztlich soll Upstart zu einem allgemeinen Mechanismus zum ereignisgesteuerten Starten von Skripten werden und könnte damit auch Daemonen wie crond oder (x)inetd ersetzen.

Versuche, das traditionelle Init abzulösen, gibt es bereits mehrere. Initng erweitert Init um die Definition von Abhängigkeiten zwischen den Skripten mit der Möglichkeit, unabhängige Skripte parallel auszuführen. Launchd, der Init-Ersatz in Mac OS X, arbeitet ebenfalls ereignisgesteuert und übernimmt die Aufgaben von Init, crond und xinetd. Das Service Management Facility (SMF) in Solaris bietet ähnlich wie Initng die Möglichkeit, Abhängigkeiten zwischen Skripten zu definieren. Hier liegt der Schwerpunkt auf der Überwachung und dem automatischen Neustarten von Diensten. (odi)