next up previous contents index
Next: Configuration de init pour Up: init Previous: init   Table des matières   Index


init est le premier

init fait partie de ces programmes indispensables au fonctionnement d'un système Linux, mais que l'on peut quand même ignorer la plupart du temps. Une bonne distribution Linux fournira une configuration pour init qui fonctionnera pour la plupart des systèmes, et il n'y aura rien à faire de plus sur ceux-ci. Normalement, on ne doit se soucier d'init que si l'on raccorde des terminaux série, des modems << dial-in >> (et non << dial-out >>), ou si l'on veut modifier le niveau d'exécution par défaut.

Lorsque le noyau a été lancé (a été chargé en mémoire, a commencé à s'exécuter, et a initialisé tous les pilotes de périphériques et autres), il termine sa participation à la phase de démarrage en lançant un programme utilisateur : init. Ainsi, init est-il toujours le premier processus (son numéro de processus est toujours 1).

Le noyau recherche init en plusieurs endroits qui ont historiquement été utilisés pour cela, mais, sur un système Linux, son emplacement correct est /sbin/init. Si le noyau ne peut pas trouver init, il tente de lancer /bin/sh, et s'il échoue encore, le démarrage du système échoue.

Lorsque init démarre, il termine la phase de boot en réalisant un certain nombre de tâches d'administration, comme la vérification des systèmes de fichiers, le nettoyage de /tmp, le démarrage de différents services, le lancement de getty pour chaque terminal et console virtuelle où les utilisateurs pourront se logger (voir le chapitre [*]).

Quand le système est correctement lancé, init redémarre getty pour chaque terminal sur lequel un utilisateur vient de se délogger (un autre utilisateur pourra ainsi s'y logger). init adopte aussi les processus orphelins : quand un processus lance un processus fils et meurt avant celui-ci, le fils devient immédiatement un fils d'init. Ceci est important pour diverses raisons techniques, mais il est bon de le savoir car cela aide à comprendre les listes et les arborescences de processus.6.1

Il existe des variantes d'init. La plupart des distributions Linux utilisent sysvinit (écrit par Miquel van Smoorenburg), qui est basé sur la conception de l'init de System V. Les versions BSD d'UNIX ont un init différent. La principale différence concerne les niveaux d'exécution : System V en offre, pas BSD (traditionnellement, en tout cas). Cette différence n'est pas essentielle. Nous n'étudierons que sysvinit.


next up previous contents index
Next: Configuration de init pour Up: init Previous: init   Table des matières   Index
root
1999-03-03