Zum Inhalt springen

Init/System/Entwicklung: Unterschied zwischen den Versionen

Aus Foxwiki
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

OpenRC