Init/System/Entwicklung: Unterschied zwischen den Versionen
Erscheinungsbild
Die Seite wurde neu angelegt: „== Entwicklung == Im Laufe der Entwicklung hin zu modernen Unix-Systemen wurde vieles an grundlegender Software immer wieder modernisiert, dazu gehört auch das Init-System, welches für das Starten von Prozessen verantwortlich ist ==== SysVinit ==== * SysVinit ist ein System zum Starten von Diensten * Grundlegendes Design von 1983 * Daher gibt es weder Abhängigkeiten, noch Events und so wird dieses System modernen Desktops und Notebooks nicht mehr gere…“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 31: | Zeile 31: | ||
[http://en.wikipedia.org/wiki/OpenRC OpenRC] | [http://en.wikipedia.org/wiki/OpenRC OpenRC] | ||
* häufig bei [http://de.wikipedia.org/wiki/Gentoo Gentoo]-Systemen | * häufig bei [http://de.wikipedia.org/wiki/Gentoo Gentoo]-Systemen | ||
[[Kategorie:Init]] |
Aktuelle Version vom 21. Februar 2025, 15:24 Uhr
Entwicklung
Im Laufe der Entwicklung hin zu modernen Unix-Systemen wurde vieles an grundlegender Software immer wieder modernisiert, dazu gehört auch das Init-System, welches für das Starten von Prozessen verantwortlich ist
SysVinit
- SysVinit ist ein System zum Starten von Diensten
- Grundlegendes Design von 1983
- Daher gibt es weder Abhängigkeiten, noch Events und so wird dieses System modernen Desktops und Notebooks nicht mehr gerecht
- Dienste werden hier strikt der Reihe nach gestartet, unabhängig davon, ob diese parallel gestartet werden könnten
- SysVinit setzt auf viele Skripte, welche in weiten Teilen ähnliche oder sogar gleiche Aufgaben erledigen
- Häufig benutzte Funktionen wurden aber mit der Zeit auf gemeinsam genutzte Skripte (Includes) ausgelagert, um zumindest im Ansatz dem DRY-Prinzip zu entsprechen
- Die Skripte können je nach Distribution an unterschiedlichen Orten, zum Beispiel /etc/rc.d oder /etc/init.d, liegen, und auch die Aktivierung und Deaktivierung von Diensten kann abhängig von der Distribution unterschiedlich erfolgen – zum Beispiel durch symbolische Links in /etc/rcX.d oder einem Eintrag in der /etc/rc.conf
- Für SysVinit ist es nicht zuverlässig möglich, Dienste sauber zu beenden
- In der Regel wird das Skript entweder einen Prozess anhand seiner gespeicherten Prozess-ID beenden oder aber mit killall alle in Frage kommenden Prozesse beenden
- Ausnahme hiervon sind Dienste, welche eine eigene Logik zum Beenden haben
- Ein bekannter Dienst welcher sich beispielsweise nicht sauber beenden lässt, wäre NRPE, der für Monitoring über Nagios oder Icinga benötigt wird
Upstart
- Neuentwicklung eines Init-Systems
- Im Gegensatz zu dem nachfolgend beschriebenen systemd, welches mit Abhängigkeiten arbeitet, wird hier alles über Events geregelt
- Upstart ist der erste Schritt zur Vereinfachung der Init-Skripte, welche nun unter /etc/init liegen
- Ein weiterer Unterschied ist, dass zum Deaktivieren eines Services die Events im Init-Skript deaktiviert werden müssen (bis Version 1.3)
- systemd arbeitet hier wie auch schon SysVinit mit Symbolischen Verknüpfungen
- Upstart greift bei weitem nicht so tief in ein vorhandenes System ein
- Unter anderem wird auch nicht verlangt Konfigurationen über bestimmte, vorgegebene, Konfigurationsdateien zu erledigen
- Die Dokumentation wurde vor allem in den letzten Versionen stark ausgebaut
- Dies war früher ein häufiger Kritikpunkt
- Upstart wurde neben Ubuntu auch eine Zeit lang von anderen Distributionen wie zum Beispiel Fedora verwendet
- Viele Entwickler sind aber nicht bereit an Upstart mitzuentwickeln, da Canonical hierzu eine Beitragszustimmung verlangt
OpenRC
- häufig bei Gentoo-Systemen