Systèmes Répartis UNIX Démarrage du système Sommaire Démarrage du système .....
Systèmes Répartis UNIX Démarrage du système Sommaire Démarrage du système .......................................................................................................................................... 2 1. Chronologie du lancement .................................................................................................................................. 2 1.1. Procédure de boot ........................................................................................................................................ 2 1.2. LILO (LInux LOader) ................................................................................................................................ 4 1.2.1. Installation .............................................................................................................................................. 4 1.2.2. Désinstallation ........................................................................................................................................ 4 2. Le rôle d’init ........................................................................................................................................................ 4 2.1. Notion de run-level : .................................................................................................................................... 5 2.2. Recherche du mode initial : ........................................................................................................................ 7 2.3. Schématisation de l’algorithme suivi par init : ........................................................................................ 7 2.4. Format d'une entrée dans /etc/inittab ...................................................................................................... 8 2.5. Résumé schématique ................................................................................................................................... 9 2.6. Passage en niveau d'exécution X : ........................................................................................................... 10 2.7. Initialisation et lancement des processus getty : .................................................................................... 11 3. ARRET DU SYSTEME .................................................................................................................................... 12 3.1. Arrêt programmé : shutdown ................................................................................................................. 12 3.2. Arrêts immédiats ....................................................................................................................................... 13 Annexe 1 : Quand la table inittab est-elle scrutée par init ? ............................................................................ 14 Annexe 2 : Fichier de configuration de LILO .................................................................................................... 15 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 1.1. Procédure de boot 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 : identifier le type de processeur et de co-processeur calculer le taille mémoire initialiser les structure de données internes, les tampons et les caches mémoires repérer et activer les contrôleurs de périphériques préparer l’environnement du processus 0 monter le SDF sur lequel le noyau (/)a été lu. (Cela est nécessaire pour initialiser le catalogue de travail du processus 0) • 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) init : gestion et régulation des démons (mode utilisateur) vhand : processus de demande de pages sched : processus de gestion mémoire liste des 4 processus crées par init root 1 0 0 10:00 ? 00:00:05 init [5] root 2 1 0 10:00 ? 00:00:00 [kflushd] root 3 1 0 10:00 ? 00:00:00 [kupdate] root 4 1 0 10:00 ? 00:00:00 [kswapd] root 5 1 0 10:00 ? 00:00:00 [mdrecoveryd] 11/10/09 ESAT 3 NOYAU Table des processus 0 proc[ ] vhand (v3) pageout (v4) pagedaemon (BSD) kflushd (linux) pid=0 mode noyau NOYAU pid=1 mode utilisateur fork() init lancement de init = fin de la procédure de boot exec /etc/init pid=2 sched (sys V) swapper (BSD) kswapd (linux) fsflush (V4) kupdate (linux) pid=3 pid=4 Systèmes Répartis UNIX Démarrage du système 1.2. LILO (LInux LOader) 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 On peut installer LILO sur : • le Bloc de Boot d'une disquette Linux • le MBR du premier disque dur • le Bloc de Boot d'une partition primaire Linux du premier disque dur • le Bloc de Boot d'une partition étendue du premier disque dur On ne peut pas installer LILO sur : • le Bloc de Boot d'une disquette ou d'une partition non-Linux • une partition Linux Swap • le Bloc de Boot d'une partition logique d'une partition étendue • sur un deuxième disque dur • une partition qui se situe après le 1024ème cylindre 1.2.2. Désinstallation /sbin/lilo -u ou 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 lilo y a sauvegardé le secteur d'amorcage original en fait, le fichier fait 512 octets mais seuls les 446 premiers sont le bloc de boot, le reste correspond à la table des partitions, qu'il ne faut pas écraser !!! blocksize Le MBR scanne la table des partitions, recherche celle qui est marquée "active" et charge le Bloc de Boot de cette partition. 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) 2.1. Notion de run-level : Le processus init va associer au système un niveau d’exécution (run-level). La commande who -r ou runlevel permet de connaître le niveau actuel d'exécution d’init Le niveau d’exécution sera modifié par une des commandes : init [ -t sec ] niveau ou telinit [ -t sec ] niveau 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 Correspondance entre les niveaux d’exécution et les signaux : Niveau Signal Action Q SIGHUP Réexamen d’inittab 0 SIGINT Fait " descendre " le système. A la fin de l'opération il est possible de rebooter ou d'éteindre la machine. L'opération ne peut être réalisée qu'à partir de la console. 1 SIGQUIT Passe en mode Mono-utilisateur Met le système à l'état mono-utilisateur (à partir de la console). • Tous les systèmes de fichiers, hormis le système racine, sont démontés Tous les processus utilisateurs sont tués ( sauf ceux sur la console). 2 SIGILL Met le système en mode multi-utilisateurs. Les démons et les processus getty sont lancés. Le PC est en mode client (il se trouve protégé, personne ne peut se connecter à distance) 3 SIGTRAP Donne accès aux services réseaux. Lance les démons nécessaires aux montages distants Le PC devient serveur 4 SIGIOT Multi-utilisateurs 5 SIGEMT Mode monitor : lance l'environnement permettant de tester le système. 6 SIGFPE Arrête UNIX et le fait rebooter au niveau d'exécution initial. S, s SIGBUS Mode maintenance : comme 1 mais le terminal qui a invoqué cette commande devient la console système. 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.2. uploads/Industriel/ unxdemarrage.pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 29, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.2497MB