web-dev-qa-db-fra.com

Que fait init sur Ubuntu?

Je sais déjà que init est le programme magique nécessaire au démarrage de votre ordinateur et à la gestion des niveaux d'exécution, mais quel est son véritable objectif?

Pourquoi avons-nous même besoin de init en premier lieu? Pourquoi le chargeur de démarrage ne peut-il pas dire à Upstart quels programmes exécuter ou ne pas exécuter?

Cette question en réponse (tardive) à ma Que se passerait-il si init était supprimé? question.

13
Kaz Wolfe

Voir le manuel pour init sur les systèmes Unix .

Ceci est un message de l'entrée de Wikipedia sur init :

Dans les systèmes d'exploitation basés sur Unix, init (abréviation d'initialisation) est le premier processus démarré lors du démarrage du système informatique. Init est un processus démon qui continue à s'exécuter jusqu'à ce que le système soit arrêté. Il est l’ancêtre direct ou indirect de tous les autres processus et adopte automatiquement tous les processus orphelins. Init est démarré par le noyau en utilisant un nom de fichier codé en dur, et si le noyau ne parvient pas à le démarrer, il en résulte une panique du noyau. Init est généralement affecté à l'identificateur de processus 1.

La conception de init a divergé dans les systèmes Unix tels que System III et System V, par rapport aux fonctionnalités fournies par init dans Research Unix et ses dérivés BSD. L'utilisation sur la plupart des distributions Linux est quelque peu compatible avec System V, mais certaines distributions, telles que Slackware, utilisent un style BSD et d'autres, telles que Gentoo, ont leur propre version personnalisée.

Plusieurs implémentations init de remplacement ont été écrites pour tenter de remédier aux limitations de conception des versions standard. Il s’agit de launchd, de Service Management Facility, de systemd et d’Uststart, cette dernière étant utilisée par Ubuntu et d’autres distributions Linux.

J'espère que cela aide à vous l'expliquer; c’est beaucoup de lecture.

6
Mark Kirby

upstart et systemd sont des init systèmes. Par convention (et peut-être d'autres contraintes), le programme s'appelle toujours init, indépendamment du fait que systemd ou upstart ou quelque chose d'autre soit en jeu. Ne laissez pas le nom du processus vous tromper. Le PID1 n'est plus SysV init. Cela ne fait pas longtemps que sur Ubuntu.

3
muru