Lorsque le système démarre, après que le noyau ait tout configuré et monté la racine du système de fichiers, il exécute le programme /sbin/init [34]. init est le père de tous les processus du système et il est chargé d'amener le système au niveau d'exécution voulu. Nous reviendrons sur les niveaux d'exécution plus tard (cf Section 2, « Les niveaux d'exécution »).
Le fichier de configuration d'init
est /etc/inittab
. Ce fichier possède sa
propre page de manuel (inittab(5)), mais nous ne
décrirons ici que quelques directives.
La ligne qui doit d'abord attirer votre attention est celle-ci :
si::sysinit:/etc/rc.d/rc.sysinit
Cette directive dit à init que
/etc/rc.d/rc.sysinit doit être exécuté à
l'initialisation du système (si pour
System Init) avant tout autre
chose. Pour déterminer le niveau d'exécution par défaut,
init recherche ensuite la ligne contenant l'action
initdefault
:
id:5:initdefault:
En l'occurrence, init sait que le niveau d'exécution par défaut est 5. Il sait également que pour entrer dans le niveau 5, il lui faudra exécuter la commande suivante :
l5:5:wait:/etc/rc.d/rc 5
Vous constaterez que la syntaxe pour chacun des niveaux d'exécution est similaire.
init est également chargé de
relancer (respawn
) certains programmes que
lui seul est en mesure de lancer. C'est le cas, par exemple, de
tous les programmes de connexion qui tournent sur chacun des 6
terminaux virtuels.[35]. La deuxième console
virtuelle, est spécifiée par la ligne :
2:2345:respawn:/sbin/mingetty tty2
[34] Vous comprenez
donc pourquoi placer /sbin
sur un autre
système de fichiers que le système de fichiers racine est une
très mauvaise idée. A ce stade là, le noyau n'a pas encore monté
les partitions et donc ne pourra pas charger
/sbin/init.
[35] En modifiant ce fichier, il vous est donc possible d'enlever ou d'ajouter des consoles virtuelles (pour un maximum de 64) en suivant la syntaxe. Mais n'oubliez pas que X occupe également une console virtuelle ! Laissez-lui en donc au moins une.