![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
La phase de démarrage d'un serveur linux est souvent méconnue. Il est pourtant important de bien conneître celle-ci, si on désire bien connaître son système.
Le BIOS (Basic Input/Output System) est l'interface entre le matériel et le logiciel à un très bas niveau.
Le BIOS effectue tout d'abord un auto-test de l'allumage (POST). Il recherche les périphériques et en particulier celui qui est utilisé pour démarrer.Les inforamtions de configuration du matériel sont stockés dans une petite zone (de l'ordre de 64 octets) appelé CMOS (Complementary Metal Oxide Semiconductor) alimenté par une batterie se trouvant sur la carte mère qui lui permet de conserver la configuration lorsque l'ordinateur est éteint.
A la fin du POST, le périphériquede démarrage est sélectionné parmi la liste des périphériques de démarrage détectés. L'ordinateur va prendre dans l'ordre la liste qui a été définie. Le plus souvent, pour modifier cette liste, il faut taper au boot sur la touche F10 (parfois F2 ...).
Le BIOS lit alors et exécute le premier secteur physique du média de démarrage ou MBR (Master Boot Record). Sur un disuqe dur il s'agit des 512 permiers octets.
Le BIOS charge le chargeur de programme initial (IPL Initial Program Loader) à partir du MBR.
Sur redhat c'est le premier étage du chargeur de démarrage. La seconde phase va chercher dans /boot où est stockéle noyau pour amorcer le système. Cette seconde phase fournit à l'utilisateur un moyen de charger un autre noyau ou de démarrer un autre système d'exploitation (windows par exemple).
Le chargeur de démarrage de redhat entreprise est GRUB (GRand Unified Bootloader). GRUB supporte de nombreuses fonctionnalités comme la protection par mot de passe,un mode d'édition de menus, une interface en ligne de commandes.
Le noyau au démarrage :
Le démarrage se passant assez rapidement, il est possible d'examiner à postériori le fichier /var/log/dmesg pour savoir comment cela s'est passé.
Init est le père de tous les processus. C'est pourquoi son numéro de pid est 1.
init va lire sa configuration dans le fichier /etc/inittab .
Il va en déduire
Si X11 est lancé, le fichier /etc/sysconfig/desktop détermine le gestionnaire d'affichage (valeur GNOME ou KDE). Ce fichier est lu lorsque init execute /etc/X1/prefdm.
Si /etc/inittab n'existe pas ou est corrompu, il faut partir en single user (Single,S,s) ou d'urgence (emergency).
init peut définir un runlevel parmi les niveau 0 à 6, S et emergency. Le niveau est sélectionné dans le fichier /etc/inittab au démarrage, ou choisi par GRUB ou lancer à partir de la ligne de commande en tapant init x.
Dans le cas de /etc/inittab on va trouver un fichier:
Les runlevel définis dans linux sont
0 | arret du système (à ne pas mettre dans /etc/inittab ) |
1,S | mode en utilisaeur simple (single user) pour maintenance |
2 | multiples utilisateurs, sans réseau NFS |
3 | mode multiples utilisateurs complet (avec le réseau) |
4 | configurable par l'utilisateur mais contient tout ce qu'il y a au runlevel 3 |
5 | X11 (le réseau est compris) |
6 | redémarrage (à ne pas mettre dans /etc/inittab ) |
Pour afficher les niveaux d'exécution courant ainsi que le précédent il faut taper:
/sbin/runlevel
Un processus demon est un programme qui s'execute en arrière plan pour fournir des services systèmes. Il attend que des requêtesse produisent. Lorsqu'il recoit une requête, il créé une copie de lui-même pour traiter sa tâche. Un serveur web apache, un serveur ftp, une file d'attente d'impression sont des exemples de démons.
Certains démons sont autonomes et sont lancés par init comme mingetty et gdm ou par un script de démarrage sous /etc/rc/d .
Certains démons sont transitoires et ne sont lancés que lorsqu'ils deviennent necessaires. Le démon xinetd est chargés de les controller. Son fichier de configurattion est /etc/xinetd.conf .