Que fait init sur Ubuntu?

13

Je sais déjà que initc'est le programme magique qui est nécessaire pour démarrer votre ordinateur et gérer les niveaux d'exécution, mais quel est son véritable objectif?

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

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

Kaz Wolfe
la source
initest la mère de tous les processus.
ctrl-alt-delor
Il est plus facile d'écrire la fonctionnalité de en inittant que processus utilisateur que de l'écrire dans le noyau. S'il était écrit dans le noyau, quelqu'un ajouterait un processus starterqui s'exécuterait dans l'espace utilisateur, ce qui est plus flexible. Dupliquant ainsi la fonctionnalité. Par conséquent, il est préférable de garder la partie noyau aussi simple que possible.
ctrl-alt-delor
man init > "What does init on Ubuntu do"et lisez-le dans le dossier d'accueil
αғsнιη

Réponses:

6

Voir le manuel initsur les systèmes Unix .

Ceci est un article de l'entrée Wikipedia surinit :

Dans les systèmes d'exploitation informatiques 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 de s'exécuter jusqu'à l'arrêt du système. 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 n'est pas en mesure de le démarrer, une panique du noyau se produira. Init est généralement attribué l'identificateur de processus 1.

La conception d'init a divergé dans les systèmes Unix tels que System III et System V, par rapport aux fonctionnalités fournies par l'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, comme Gentoo, ont leur propre version personnalisée.

Plusieurs implémentations init de remplacement ont été écrites pour tenter de résoudre les limitations de conception dans les versions standard. Il s'agit notamment de launchd, du Service Management Facility, de systemd et d'Upstart, ce dernier étant utilisé par Ubuntu et certaines autres distributions Linux.

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

Mark Kirby
la source
3

upstartet systemdsont des initsystèmes. Par convention (et peut-être d'autres contraintes), le programme est toujours appelé init, qu'il y ait systemdou non upstartautre chose en jeu. Ne laissez pas le nom du processus vous tromper. PID1 n'est plus SysV init. Cela ne fait pas longtemps depuis Ubuntu.

muru
la source