Documente Academic
Documente Profesional
Documente Cultură
Sommaire
11/10/09 ESAT 1
Systèmes Répartis UNIX Démarrage du système
Démarrage du système
La procédure de mise en route du système est la même pour tous les systèmes UNIX. Mais il
ya bien sûr quelques différences quant aux possibilités de saisie ou aux possibilités de
configuration.
1. Chronologie du lancement
En général, les étapes qui sont parcourues lors du démarrage des systèmes UNIX sont
semblables. Les voici :
• Après la mise sous tension de la machine, le boot bloc du premier système de fichiers
UNIX est chargé à partir de la ROM (Read Only Memory)
• Le programme de boot charge ensuite directement ou non le système d’exploitation. Le
noyau de ce système d’exploitation est normalement placé dans le fichier /unix du
système de fichiers activé. Ceci fait, les tables de gestion (Tables des fichiers, tables des
inodes, tables de gestion de mémoires, etc.) ainsi que les zones de mémoires tampon sont
initialisées.
• Lorsque le noyau du système d’exploitation a le contrôle du matériel, la configuration des
processus et des fonctions peut commencer. Cette opération est pilotée par le fichier
/etc/inittab , dont les instructions définissent les commandes et les processus à lancer. Les
entrées sont regroupées de manière logique, en niveaux d’exécution. Soit un niveau est
prédéfini, soit ce sera à l’administrateur de le sélectionner au moment du démarrage.
• Une distinction nette est faite entre le mode mono-utilisateur (en anglais single user) et le
mode multi-utilisateurs (en anglais multi user mode). Ce n'est qu’en mode multi-
utilisateurs que les liaisons des terminaux sont libérées pour les utilisateurs. Certains
autres processus de gestion, par exemple la gestion des impressions ou le mécanisme cron,
ne sont disponibles que dans ce mode.
• Une des prérogatives de l’administrateur du système est de pouvoir configurer les travaux
à effectuer au démarrage du système. Il s’agira le plus souvent de scripts de Shell. dans
certains cas, cela supposera également des adjonctions ou des modifications dans le fichier
/etc/inittab
S’il n’y a pas de programme de chargement du noyau, le programme de boot effectue un saut
à ‘l@ de début du noyau lui transférant ainsi l’exécution . Celui-ci va alors :
• Une fois son environnement construit, la table des processus étant créée et initialisée, le
noyau va s’exécuter en tant que processus 0
• Il va se duplique en exécutant la primitive fork(). On obtient alors un nouveau processus
de numéro 1, qui va sortir du mode d’exécution « noyau » et passer en mode « utilisateur »
11/10/09 ESAT 2
Systèmes Répartis UNIX Démarrage du système
• le processus 1 procède alors au recouvrement de son code exécutable par le code contenu
dans /etc/init, ceci grâce à l’appel système exec(). L e rôle de ce processus va être central
dans la gestion et la régulations des démons.
• le processus init va créer de la même manière (fork()) le processus de demande de pages,
d’index 2, appelé vhand sous system V.3 (pageout sous V.4) et (pagedaemon sous BSD),
puis deviendra le processus de gestion de mémoire sched sous SYSTEM V.3 et SYSTEM
V.4 (swapper sous BSD et HP-UX)
0
fork()
pid=1
NOYAU mode utilisateur
proc[ ]
exec /etc/init
init
lancement de init
=
pid=2 vhand (v3) fin de la procédure
pageout (v4) de boot
pagedaemon (BSD)
kflushd (linux)
11/10/09 ESAT 3
Systèmes Répartis UNIX Démarrage du système
Il comprend :
• un Map Installer : contient les @ du (es) noyau(x) nécessaires au boot
• des fichiers (/boot/map, /etc/lilo.conf, /boot/boot.b)
• un Boot Loader, qui est appelé par le BIOS et qui charge le noyau ou les
secteurs de boot des autres OS
1.2.1. Installation
1.2.2. Désinstallation
/sbin/lilo -u
ou
blocksize
fdsik /MBR
ou
dd if=/boot/boot.030x of=/dev/hda bs=446 count=1
2. Le rôle d’init
L’activation d’init va être centrée sur le fichier /etc/inittab, c’est en fonction de son contenu
qu’init activera ou non certains démons.
11/10/09 ESAT 4
Systèmes Répartis UNIX Démarrage du système
Le processus init exploite cette table pour créer des processus en mode multi utilisateurs.
Dans de nombreux cas, lorsqu’un processus fils meurt, init scrute la table et généralement
recréé le fils.
Il y a un processus par entrée de /etc/inittab (exception : entrées de type off ou initdefault)
Ceci va correspondre à l’envoi d’un signal au processus init pour lui notifier une demande de
changement de niveau
11/10/09 ESAT 5
Systèmes Répartis UNIX Démarrage du système
4 SIGIOT Multi-utilisateurs
a SIGSEGV Pseudo-niveau
b SIGSYS Pseudo-niveau
c SIGPIPE Pseudo-niveau
Les pseudo-niveaux a,b,c acceptés par telinit permettent de faire exécuter des commandes
particulières sans modifier le run-level.
Lorsque init reçoit une demande de changement de niveau, il envoie tout d’abord un signal
SIGTERM à tous les processus dont le niveau d’activation ne correspond pas au nouveau
niveau, après 5 secondes un signal SIGKILL leur est envoyé.
11/10/09 ESAT 6
Systèmes Répartis UNIX Démarrage du système
2) /etc/inittab existe
• entrée initdefault présente :
run-level indiqué dans le champ 2 (le plus élevé si run-level multiples)
• entrée initdefault absente :
exécution des entrées d’inittab de type sysinit.
demande de run-level sur la console système virtuelle.
1°) Lors de la première exécution lire / etc / inittab, si passage direct au niveau multi-
utilisateur aller en 4°
2°) Si pas possible de savoir, question sur la console opérateur, si réponse = multi-utilisateur
aller en 4°
3°) Si on reste au niveau mono-utilisateur alors exécution de /bin/su, attente de la fin de
l’exécution de la session, retour en 2°
4°) Scruter / etc / inittab et exécuter toutes les commandes qui correspondent au passage à ce
niveau multi-utilisateur
5°) Attendre en lisant périodiquement / etc / inittab afin de relancer ou stopper les
commandes (getty...) en fonction des modifications de son contenu. En cas de changement de
niveau aller en 3°
11/10/09 ESAT 7
Systèmes Répartis UNIX Démarrage du système
états : Le processus associé est activé lorsque le système passe dans ce niveau d'exécution.
process : C'est le processus ou shell-script qui doit être lancé. Le reste de la ligne est
composé des arguments de la commande.
Le fin de la ligne peut contenir des commentaires, précédés par ' # '.
11/10/09 ESAT 8
Systèmes Répartis UNIX Démarrage du système
DEMARRAGE
boot
chargement du
noyau
init
contrôles divers
/etc/inittab
/etc/rc.d/rcX
init 0
EXTINCTION
11/10/09 ESAT 9
Systèmes Répartis UNIX Démarrage du système
Pour ne pas surcharger le fichier / etc / inittab, l'ensemble des actions à réaliser lors du
passage dans un mode d'exécution donné, est regroupé dans un fichier-script dont le
nom est généralement de la forme rcX.d, où X est le numéro du niveau d'exécution
souhaité.
Ces fichiers ont tous l'action ' wait ' dans le fichier / etc / inittab.
XX est un nombre compris entre 00 et 99. nom est le nom de la procédure à exécuter.
Ces programmes sont en fait des fichiers liés ( ils sont créés à l'aide de la
commande ln ) aux programmes, aux noms identiques, situés dans le répertoire
/ etc / rc.d / init.d.
11/10/09 ESAT 10
Systèmes Répartis UNIX Démarrage du système
Au niveau 2, les différents processus getty sont lancés, avec l'action ' respawn '. Le
processus getty de la console est, quant à lui, lancé à chaque changement de niveau.
Premières initialisations :
11/10/09 ESAT 11
Systèmes Répartis UNIX Démarrage du système
3. ARRET DU SYSTEME
Cette commande :
• Vérifie l'identité du demandeur ( il faut que cela soit l'administrateur ) ;
• Prévient les utilisateurs connectés ;
• Arrête les processus actifs ;
• Démonte tous les systèmes de fichiers, excepté celui du disque maître ;
• Exécute la commande init 0.
Syntaxe SINIX :
/usr/sbin/shutdown [-y] [-ggrace_period] [-iinit_state]
Syntaxe AIX :
shutdown [ -c ] [ -d ] [ -F ] [ -h ] [ -i ] [ -k ] [ -m ]
[ -r ] [ -t mmddHHMM [ yy ] ] [ -v ] [ +Time [ Message ] ]
Exemple : shutdown –m +2
11/10/09 ESAT 12
Systèmes Répartis UNIX Démarrage du système
Syntaxe LINUX :
/sbin/shutdown [-t sec] [-arkhncfF] time [warning-message]
L'option « –t sec » n'est utilisé que sur certains systèmes possédant des niveaux d’exécution
définies de 7 à 9.
Exemples :
shutdown now "MODE MONO UTILISATEUR"
shutdown –r now "ARRET PUIS REBOOT IMMEDIAT"
shutdown –h +2 "ARRET DANS 2 MINUTES"
shutdown –h 10:30 "ARRET A 10H 30 MN"
L'administrateur peut utiliser les utilitaires /sbin/halt ou /sbin/reboot pour réaliser un arrêt
brutal du système.
11/10/09 ESAT 13
Systèmes Répartis UNIX Démarrage du système
- Chargement du système.
- Commande opérateur init ou telinit
argument : 0-6, s, S avec changement de run-level
argument : q, Q, a, b, c sans changement de run-level
- commande opérateur init ou telinit argument q ou Q après changement
intervenu dan la table.
- Mort d’un des fils d’init.
- Apparition du signal défaut secteur. (Onduleur)
11/10/09 ESAT 14
Systèmes Répartis UNIX Démarrage du système
image=/boot/rescue/vmlinuz
label=failsafe
root=/dev/hda5
append=" failsafe" infos supplémentaires passées au noyau
read-only
other=/dev/fd0
label=floppy
unsafe ne vérifie pas la table des partitions
n'accède pas au boot sector ?
supprimer LILO