Was macht init auf Ubuntu?

13

Ich weiß bereits, dass dies initdas magische Programm ist, das zum Booten Ihres Computers und zum Verwalten von Runlevels erforderlich ist, aber wozu dient es wirklich?

Warum brauchen wir überhaupt init? Warum kann der Bootloader Upstart nicht mitteilen, welche Programme ausgeführt werden sollen und welche nicht?

Diese Frage in (später) Antwort auf meine Was würde passieren, wenn initgelöscht wurde? Frage.

Kaz Wolfe
quelle
initist die Mutter aller Prozesse.
Strg-Alt-Delor
Es ist einfacher, die Funktionalität initeines Benutzerprozesses zu schreiben, als sie in den Kernel zu schreiben. Wenn es im Kernel geschrieben wäre starter, würde jemand einen Prozess hinzufügen , der im Benutzerbereich ausgeführt würde, der flexibler ist. Damit duplizieren Sie die Funktionalität. Daher ist es am besten, den Kernelteil so einfach wie möglich zu halten.
Strg-Alt-Delor
man init > "What does init on Ubuntu do"und lesen Sie es im Home-Ordner
αғsнιη

Antworten:

6

Informationen initzu Unix-Systemen finden Sie im Handbuch .

Dies ist ein Beitrag aus dem Wikipedia-Eintrag überinit :

In Unix-basierten Computer-Betriebssystemen ist init (kurz für Initialisierung) der erste Prozess, der beim Booten des Computersystems gestartet wird. Init ist ein Daemon-Prozess, der so lange ausgeführt wird, bis das System heruntergefahren wird. Es ist der direkte oder indirekte Vorgänger aller anderen Prozesse und übernimmt automatisch alle verwaisten Prozesse. Init wird vom Kernel unter Verwendung eines fest codierten Dateinamens gestartet, und wenn der Kernel es nicht starten kann, kommt es zu einer Kernel-Panik. Init wird normalerweise die Prozesskennung 1 zugewiesen.

Das Design von init ist in Unix-Systemen wie System III und System V von der Funktionalität abgewichen, die von init in Research Unix und seinen BSD-Derivaten bereitgestellt wird. Die Verwendung auf den meisten Linux-Distributionen ist etwas kompatibel mit System V, aber einige Distributionen wie Slackware verwenden einen BSD-Stil und andere wie Gentoo haben ihre eigene angepasste Version.

Es wurden mehrere Ersetzungsinitiierungsimplementierungen geschrieben, um die Entwurfsbeschränkungen in den Standardversionen zu beheben. Dazu gehören launchd, die Service Management Facility, systemd und Upstart, wobei letztere von Ubuntu und einigen anderen Linux-Distributionen verwendet werden.

Ich hoffe, das hilft Ihnen, es zu erklären. es ist viel zu lesen.

Mark Kirby
quelle
3

upstartund systemdsind initSysteme. Vereinbarungsgemäß (und vielleicht auch andere Einschränkungen), wird das Programm noch genannt init, unabhängig davon , ob systemdoder upstartoder etwas anderes im Spiel ist. Lassen Sie sich nicht vom Prozessnamen täuschen. PID1 ist nicht initmehr SysV . Auf Ubuntu ist das schon lange nicht mehr so.

muru
quelle