Linux : lancement et configuration

Démarrage de Linux

Comme pour tout système, il se passe un certain nombre de choses entre le moment où on allume la machine et celui où on peut utiliser le système. Linux est assez "bavard" sur ce qu'il fait, mais les messages afiichés à l'écran sont parfois un peu ésotériques et de plus l'affichage est le plus souvent trop rapide pour pouvoir l'analyser. Ce document a pour objectifs de présenter les grandes lignes des événements qui se déroulent lors du "boot" du système, et les principaux fichiers de configuration, afin de permettre des modifications pour personnaliser son système.

Que se passe-t-il donc ? Tout d'abord, le noyau Linux est chargé (la base du système), puis la configuration matérielle est testée, et éventuellement des modules complémentaires (drivers de cartes en particulier) au noyau sont chargés. Le système vérifie qu'il avait été correctement éteint la dernière fois, et lance éventuellement un test de disque(s) si ce n'était pas le cas, ou bien si ce test n'a pas été effectué depuis trop longtemps.

Lorsque tous les tests matériels sont effectués, le processus "init" se lance et, selon les fichiers de configuration détaillés ci-dessous, différents services se lancent et finalement la console invite l'utilisateur à présenter son "login" (en mode texte ou en mode graphique selon le cas).

"Niveau" d'utilisation et fichiers associés.

La plupart des fichiers qui permettent de lancer des services sont dans le répertoire : /etc/rc.d/init.d. Ce dernier contient en fait des scripts en shell qui permettent d'activer (ou de désactiver, ou de relancer) les différents services. On pourra en particulier utiliser ces scripts pour lancer à la main, ou relancer, des services. Par exemple, après un changement de configuration réseau, on tapera : "/etc/rc.d/init.d/network restart". Pour lancer le serveur httpd si ce n'est pas fait au démarrage du système, on tapera : "/etc/rc.d/init.d/httpd start".

Au démarrage, le système choisit un "niveau", disons plutôt un "mode" dans lequel il va démarrer. Ce choix est déterminé par une ligne du fichier /etc/inittab contenant par exemple :

id:3:initdefault

Ici le mode choisi est 3, c'est à dire multiutilisateur en mode console (le fichier indique quels sont les autres modes disponibles, en particulier 5 pour lancer le mode graphique).

Ensuite, les différents services associés au mode ainsi choisi sont lancés au moyen du contenu du répertoire : /etc/rc.d/rc3.d (remplacer 3 par un autre chiffre si le lancement s'effectue dans un autre mode). Ce répertoire contient en fait des liens vers les scripts contenus dans init.d. Ces liens commencent tous par S(tart) ou K(ill) et, au démarrage, le système lance automatiquement tous les scripts pointés par un S... avec le paramètre start (pour l'arrêt du système, c'est la même chose avec les K... et le paramètre stop). Les scripts sont lancés dans l'ordre alphanumérique de leurs noms. 5cet ordre est important, par exemple il faut lancer le réseau avant tout service utilisant le réseau). Ainsi, on peut supprimer un service du niveau 3 en retirant les fichiers S et K concernés du répertoire rc3.d. Ce faisant, on ne détruira pas pour autant le script associé à ce service qui, lui, est dans init.d, et on pourra toujours lancer le service "à la main".

Mode graphique et environnements multifenétrés.

L'utilisation du mode graphique nécessite le lancement d'un "serveur X-windows" sur la machine. Il s'agit d'un logiciel qui saura afficher à l'écran des fenètres diverses, à la demande d'applications tournant sur la même machine ou éventuellement sur une machine distante et connectée en réseau. Ce serveur est lancé si on est en mode 5, ou bien à la main avec la commande startx après le login.

La configuration de ce serveur X-windows est décrite dans le fichier : /etc/X11/XF86Config. En particulier, on peut prévoir plusieurs résolutions d'écran et passer de l'une à l'autre par la combinaison de touches "Ctrl,Alt,+" ou "Ctrl,Alt,-".

Ensuite, un environnement graphique doit être lancé. Sous Linux, on a le choix entre diffférents "concurrents" (Fvwm, Afterstep, KDE, Enlightenment, ...). Le choix dépend de l'utilisateur qui le lance. Le fichier (caché) .Xclients détermine une partie de ce choix. Si ce fichier existe dans le "home-directory" de l'utilisateur, c'est lui qui est activé, sinon c'est le fichier par défaut /etc/X11/xinit/Xclients.

Le fichier .wm_style affine le choix entre certains environnements graphiques (les plus rudimentaires).

Enfin, chaque utilisateur peut personnaliser la présentation de son environnement graphique en modifiant l'aspect, les menus, ... mais ceci est analogue à ce qu'on peut faire sous Windows ou MacOs