Vous êtes sur la page 1sur 8

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Un livre de Wikibooks.

Le chargement du noyau Linux


Lorsque l'on allume son ordinateur, la carte mre effectue un test automatique qui se charge de tester le bon fonctionnement des composants de la carte mre (processeur, mmoire, etc.). Ce test s'appelle le POST (Power-On Self Test). Si tout est OK, ce test se termine par un (et un seul) bip. Ceci fait, le BIOS charge ensuite le programme stock dans le boot secteur du disque dur. Sur architecture PC, il existe deux programmes permettant de charger le noyau Linux, ou un autre systme d'exploitation.

LILO
LILO (LInux LOader) a t le premier logiciel permettant d'effectuer cette opration. Exemple de fichier de configuration de Lilo (/etc/lilo.conf) :
boot=/dev/hda map=/boot/map install=/boot/boot.b default=linux prompt timeout=50 message=/boot/message # Premiere section : boot Windows other=/dev/hda1 label=windows table=/dev/hda # Deuxieme section: boot Linux image=/boot/vmlinuz label=linux root=/dev/hda4 append="acpi=off" read-only # Troisieme section: boot Linux - mode mono-utilisateur image=/boot/vmlinuz label=linux_single_user root=/dev/hda4 append="single acpi=off" read-only

Ce fichier se compose de paramtres communs (disque dur de boot, timeout ...)


1 of 8 06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

et de sections pour chaque systme d'exploitation booter. Chaque fois que l'on modifie ce fichier, il faut excuter la commande lilo afin de re-crire dans le boot secteur l'emplacement exact du noyau sur le disque dur.
# lilo Added windows Added linux Added linux_single_user

GRUB
Aujourd'hui, on utilise le programme GRUB (GRand Unified Bootloader) car il offre des possibilits supplmentaires. Contrairement Lilo, Grub sait lire une partition Linux (ext2/3, XFS, reiserFS ...) afin de charger son fichier de configuration (/boot/grub/menu.lst) et le(s) noyau(x) Linux. Exemple de fichier de configuration de Grub (/boot/grub/menu.lst)
default 0 timeout 30 color cyan/blue white/blue # Premiere section : Linux title Debian GNU/Linux, kernel 2.6.18-5-686 root (hd1,0) kernel /vmlinuz-2.6.18-5-686 root=/dev/sdb2 ro acpi=off initrd /initrd.img-2.6.18-5-686 savedefault # Deuxieme section : Linux mode mono-utilisateur title Debian GNU/Linux, kernel 2.6.18-5-686 (single-user mode) root (hd1,0) kernel /vmlinuz-2.6.18-5-686 root=/dev/sdb2 ro acpi=off single initrd /initrd.img-2.6.18-5-686 savedefault # Troisieme section : Windows title Windows NT/2000/XP (loader) root (hd0,0) savedefault makeactive chainloader +1

A la diffrence de Lilo, il n'est pas ncessaire d'excuter une commande particulire lorsque l'on modifie ce fichier.

2 of 8

06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

les messages du noyau Linux


Une fois charg en mmoire, le noyau va se charger de dtecter et d'initialiser les composants de la carte mre et les priphriques prsents. Ces messages sont affichs sur l'cran lors du dmarrage. La commande dmesg permet de consulter ces messages ultrieurement. Exemples :

# dmesg Linux version 2.6.18-5-686 (Debian 2.6.18.dfsg.1-13) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000008f000 (usable) ...

A noter que la commande dmesg affiche tous les messages dtects durant le boot, ainsi que les messages du noyau affichs par la suite (cad durant le fonctionnement du systme). Dans certains cas, l'affichage de la commande dmesg peut tre tronqu (notamment les messages affichs durant le boot). Dans ce cas, on peut consulter le fichier /var/log/dmesg qui ne contient que les messages du boot.

Le processus init
Une fois que le noyau a dtect l'ensemble des composants de l'ordinateur, il lance le processus du systme : init. Le processus init a comme particularit d'avoir le PID (Process IDentifiant) n1 (c'est le premier processus), et de fait, il est le pre de tous les autres. *** A VERIFIER *** Le processus init dmarre les processus internes au noyau (not entre crochet lorsque l'on fait ps aux), comme par exemple les processus kjournald qui gre les journaux des systmes de fichiers journaliss. Le processus dispose d'un fichier de configuration, c'est le fichier /etc/inittab. La syntaxe de ce fichier est la suivante : code:niveau:action:commande Exemple de fichier /etc/inittab :

3 of 8

06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# Indique le runlevel par dfaut (ici le 2) id:2:initdefault:

# Script d'initiation du boot du systme si::sysinit:/etc/init.d/rcS

# mode mono-utilisateur ~~:S:wait:/sbin/sulogin # runlevel 0 : arret du systme l0:0:wait:/etc/init.d/rc 0

# runlevel 1 : mono-utilisateur l1:1:wait:/etc/init.d/rc 1

# runlevel 2 : runlevel par dfaut sur Debian l2:2:wait:/etc/init.d/rc 2

# runlevel 3, 4 et 5 : autres runlevels disponible l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5

# runlevel 6 : redmarrage du systme l6:6:wait:/etc/init.d/rc 6

# mode emergency z6:6:respawn:/sbin/sulogin

# lance le reboot quand on appuie sur CTRL-ALT-DEL ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Pour les onduleurs pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop

4 of 8

06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# Dmarre les ttys en mode console 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6

Les runlevels et les scripts de dmarrage


Une fois que le systme a effectu le runlevel S (initialisation minimale, comme par exemple vrifier l'intgrit des systmes de fichiers), il va dans le runlevel 2 (Debian). Les niveaux de Runlevel S : Initialisation commune tous les runlevels 0 : Arrt de la machine 1 : Single-User 2,3,4,5 : Fonctionnement normal 6 : Reboot de la machine Les principe de fonctionnement est le suivant : tous les scripts de dmarrage et d'arrt sont stocks dans le rpertoire /etc/init.d/. les rpertoires rc0.d, rc1.d ... rc6.d contiennent des liens qui vont appeller les scripts d'initialisation. Si le lien commence par un S, le script va etre appell avec l'option start Si le lien commence par un K, le script va etre appell avec l'option stop le numro qui suit le S ou le K indique l'ordre de dmarrage ou d'arrt. Exemple, le serveur d'impression cupsys : Le script de dmarrage et d'arrt est situ dans /etc/init.d :
$ ls -l /etc/init.d/cupsys -rwxr-xr-x 1 root root 1977 2007-02-02 14:18 /etc/init.d/cupsys

Le lien suivant indique qu'il faut appeller ce script avec l'option start dans le runlevel 2 (runlevel par dfaut sous Debian) :

5 of 8

06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

$ ls -l /etc/rc2.d/S20cupsys lrwxrwxrwx 1 root root 16 2007-10-24 15:40 /etc/rc2.d/S20cupsys -> ../init.d/cupsys

Le lien suivant indique qu'il faut appeller ce script avec l'option stop dans le runlevel 0 (arrt de la machine) :
$ ls -l /etc/rc0.d/K20cupsys lrwxrwxrwx 1 root root 16 2007-10-24 15:40 /etc/rc0.d/K20cupsys -> ../init.d/cupsys

La commande update-rc.d
Sous Debian, la commande update-rc.d permet de grer les liens des runlevels. Par exemple, pour enlever le dmarrage automatique du serveur web apache :
# update-rc.d -f apache remove Removing any system startup links for /etc/init.d/apache ... /etc/rc0.d/K91apache /etc/rc1.d/K91apache /etc/rc2.d/S91apache /etc/rc3.d/S91apache /etc/rc4.d/S91apache /etc/rc5.d/S91apache /etc/rc6.d/K91apache

Pour re-activer le dmarrage automatique du serveur web apache :


# update-rc.d apache defaults 91 Adding system startup for /etc/init.d/apache ... /etc/rc0.d/K91apache -> ../init.d/apache /etc/rc1.d/K91apache -> ../init.d/apache /etc/rc6.d/K91apache -> ../init.d/apache /etc/rc2.d/S91apache -> ../init.d/apache /etc/rc3.d/S91apache -> ../init.d/apache /etc/rc4.d/S91apache -> ../init.d/apache /etc/rc5.d/S91apache -> ../init.d/apache

Pour connaitre la liste des options de la commande update-rc.d, il suffit de l'appeller sans argument :

6 of 8

06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# update-rc.d usage: update-rc.d [-n] [-f] <basename> remove update-rc.d [-n] <basename> defaults [NN | sNN kNN] update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] . -n: not really -f: force

La commande chkconfig
attention : spcifique REDHAT Pour savoir en quel(s) runlevel est lanc un service (ie. postgresql)
# chkconfig --list postgresql

Pour positionner le lancement d'un service un runlevel donn (ie. 3, 4 et 5)


# chkconfig --level 345 postgresql

Commandes pour manipuler les runlevel


La commande runlevel permet de connatre le runlevel dans lequel on est :
# runlevel N 2

Dans cet exemple, on est dans le runlevel n2 (fonctionnement sous Debian). Le N nous indique le runlevel prcdent (N (No) : pas de runlevel prcdent) La commande init ou la commande telinit permet de changer de runlevel. Exemple :
# init 6

Arrter ou redmarrer le systme


Pour arrter le systeme : Commun tous les UNIX : shutdown
7 of 8 06/12/2012 16:11

Le systme d'exploitation GNU-Linux/Le processus...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Spcifique Linux et systmes rcents : halt et reboot

# shutdown -h now "changement de noyau" &

NB : on rajoute un & pour garder la main Il existe diffrentes options telles que : -h (h pour halt) : arrt immdiat -r now (r pour reboot) : redmarrage immdiat -h +10 : arrt diffr dans 10 minutes -h 10:30 : arrt 10h30 -c : annule l'arrt

Rcupre de http://fr.wikibooks.org /w/index.php?title=Le_systme_d%27exploitation_GNULinux/Le_processus_d%27initialisation&oldid=332021

Menu de navigation
Dernire modification de cette page le 24 mai 2011 08:45. Les textes sont disponibles sous licence Creative Commons attribution partage lidentique ; dautres termes peuvent sappliquer. Voyez les termes dutilisation pour plus de dtails.

8 of 8

06/12/2012 16:11

Vous aimerez peut-être aussi