du système Administration Système Module 2102 Sylvain Chevallier IUT de Vélizy Département R & T Mai 2016 1 Mise sous tension 2 Chargeur primaire (moniteur) 3 Charger et exécuter le chargeur secondaire (éventuellement charger et exécuter LILO, GRUB, NTLDR, booteasy, etc.) 4 Chargement et exécution du noyau Lancement du processus init / NTOSKRNL.EXE Sylvain Chevallier S2 2016 Administration système 3 / 24 Mise sous tension Chargeur primaire (moniteur) À la mise sous tension : mémoire vide processeur exécute un programme à une adresse prédéfinie dans une mémoire morte (ROM) ce programme est appelé Chargeur primaire ou moniteur. Programme indépendant du système d exploitation Inspection de l état matériel de la machine Identification et configuration des interfaces périphériques présentes Recherche des disques et des disques bootable Permet de préciser le disque de boot Permet à l utilisateur d interagir si besoin Modifie les valeurs dans l EEPROM Test matériel charge en mémoire le programme trouvé sur les premiers secteurs du disque bootable sélectionné (MBR). Ce programme est appelé chargeur secondaire Note : le chargeur primaire n a aucune idée de la structure d un disque Sur les PC, le chargeur primaire est le BIOS. Sylvain Chevallier S2 2016 Administration système 4 / 24 Sylvain Chevallier S2 2016 Administration système / 24
Chargeur secondaire Chargement et exécution du noyau Le chargeur secondaire a connaissance de l organisation des fichiers et répertoire, ce qui lui permet d aller chercher le fichier (noyau) : /unix sur certains systèmes de type AT&T /vmunix sur certains systèmes d origine Berkeley (SunOS...) /hp-ux sur les systèmes HP /vmlinuz sur les systèmes linux /kernel sur les systèmes BSD NTOSKRNL.EXE (ou NTKRNLMP.EXE, NTKRNLPA.EXE NTKRPAMP.EXE, KRNL386.exe) sur les systèmes Windows. Pour permettre de sélectionner parmi plusieurs systèmes d exploitation, le chargeur secondaire peut être un programme (LILO, GRUB, NTLDR, booteasy, etc.) permettant de sélectionner le fichier à utiliser (qui peut se trouver sur d autres partitions). détection et initialisation du matériel configuration logicielle des interfaces réseau création de toutes les structures mémoire nécessaires lancement des processus système swapper (0), pagedaemon (2) sous BSD sched (0) sous System V Processus Inactif du Système (0) sous Windows Exécution du processus init (1) sous UNIX smss.exe sous Windows Sylvain Chevallier S2 2016 Administration système 6 / 24 Sylvain Chevallier S2 2016 Administration système 7 / 24 Gestion des disques et des fichiers Chargeur primaire (ROM) Chargeur secondaire (Bootstrap) Chargement du noyau Prise en compte des périphériques Mode single user ou multi user Création de sched (0) pour System V exécution des scripts rc ou swapper(0) et pagedaemon (2) pour BSD Création de init (1) init lit le fichier de configuration du terminal /etc/ttys sous BSD, /etc/inittab sous system V exit fork+exec processus getty processus getty... processus getty exec login exec sh fork sh wait exec ls fork+exec fork+exec numéro de plateau 7 Sylvain Chevallier S2 2016 Administration système 8 / 24 Sylvain Chevallier S2 2016 Administration système 10 / 24 6 4 3
Géométrie du disque nombre de cylindres nombre de pistes par cylindre (=nombre de têtes) nombre de secteurs par piste de 8 tetes, 4 cylindres, 16 secteurs par piste 10 11 12 13 14 1 9 8 7 6 3 0 1 2 3 3 4 2 0 1 2 nombre_de_secteurs_du_disque = nombres_de_tete nombres_de_cylindre nombre_de_secteurs_par_cylindre taille_du_disque = nombre_de_secteurs_du_disque taille_d un_secteur 1 7 6 4 0 ) LBA (Logical Block Addressing) On peut adresser un secteur de deux manières : par son adresse physique : triplet cylindre-tête-secteur (CHS, Cylinder-Head-Sector). par son adresse logique (LBA, Logical Block Address) : un numéro compris entre 0 et le nombre total de secteurs du disque, Conversion d adresses logiques en adresses physiques dans les deux sens à condition de connaître la géométrie du disque. de 8 tetes, 4 cylindres, 16 secteurs par piste 10 11 12 13 14 1 CHS=( 1, 3, 12 ) 9 8 7 6 3 0 1 2 3 3 4 2 0 1 2 Représentation logique du disque 0 1 2 187 11...... LBA=187 LBA = (Numero_Cylindre Nombre_de_tete + Numero_Tete) Nombre_de_Secteur + Numero_Secteur 1 1 7 4 0 6 Sylvain Chevallier S2 2016 Administration système 11 / 24 Sylvain Chevallier S2 2016 Administration système 12 / 24 Description des disques d un disque Les disques connus sont généralement décrits dans un fichier (/etc/disktab ou /etc/format.dat) Champs décrivant un disque : ty=nom : type du disque se#n : taille des secteurs en octets ns#n : nombre de secteurs par piste nt#n : nombre de pistes par cylindre nc#n : nombre de cylindres rm#n : vitesse de rotation bn#n : taille des blocs de la partition n fn#n : taille des fragments de la partition n pn#n : taille de la partition n en secteurs Un disque peut être décomposé en partitions Chaque partition peut contenir : un système de fichiers (données et structures de contrôle) une zone de swap rien Secteur 0 Tete 0 Sylvain Chevallier S2 2016 Administration système 13 / 24 Sylvain Chevallier S2 2016 Administration système 1 / 24
de disques Exemples - Linux # fdisk /dev/hda Solaris 2 : format, prtvtoc HP-UX 9 : Pas de partitionnement HP-UX 10 et 11 : LVM IRIX : fx, prtvtoc SunOS : format, dkinfo FreeBSD : fdisk, disklabel Linux : fdisk MS-DOS, Windows : fdisk Command (m for help): p Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders Units = cylinders of 4032 * 12 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 27 4400+ 83 Linux native /dev/hda2 28 6448 83 Linux native /dev/hda3 6 403 70168 83 Linux native /dev/hda4 404 621 439488 a BSD/386 0 1 27 28 6 403 404 621 hda1 hda2 hda3 hda4 Sylvain Chevallier S2 2016 Administration système 16 / 24 Sylvain Chevallier S2 2016 Administration système 17 / 24 Système de fichiers Nommage des disques ID (hex) Description 01 DOS12 primaire (FAT 12-bit) 04 DOS16 primaire (FAT 16-bit) 0 DOS12 étendue 06 DOS primaire large (> 32 Mo) 0A OS/2 83 Linux (EXT2FS) A FreeBSD, NetBSD, 386BSD (UFS) Solaris 2 : /dev/[r]dsk/cc ta d0sp HP-UX : /dev/[r]dsk/cs 1dA sp SunOS : /dev/[r]sdxc FreeBSD : IDE : /dev/[r]wdxc, /dev/[r]adxc SCSI : /dev/[r]daxc Linux : IDE : /dev/hdxc SCSI : /dev/sdxc Sylvain Chevallier S2 2016 Administration système 18 / 24 Sylvain Chevallier S2 2016 Administration système 19 / 24
MBR spécificité BIOS et limite de l IDE Le premier secteur absolu sur un disque dur de PC : tête 0, piste 0, secteur 0. Il contient la table des Partitions ou un simple Boot. La table des partitions est en quelque sorte la «carte du disque». MBR Partition Partition Partition Partition primaire primaire primaire primaire 1 2 3 4 C H S Type FS Actif 1 1 1 01 (DOS) non 42 3 1 83 (Linux) non 12 43 1 A (BSD) oui 1000 10 1 06 (DOS étendu) non Limitations sur le partitionnement : 4 partitions primaires ou 3 partitions primaires plus 1 partition étendue (comportant X partitions logiques) Limitation sur la taille des disques : BIOS Int 13 : c1024 h26 s63 8,G spécification ATA : c636 h16 s2 137 Go Limitation sur les partitions bootables : < 1024 cylindres < 26 têtes < 64 secteurs 1024 26 64=16.777.216 secteurs 16.777.216 secteurs 12o=8.89.934.92 octets = 8, Go Sylvain Chevallier S2 2016 Administration système 20 / 24 Sylvain Chevallier S2 2016 Administration système 21 / 24 BIOS EIDE Partition et BIOS Les secteurs des disques ATA (IDE) comportent 12 octets. Les diques durs de grande capacité ont beaucoup de cylindres et peu de têtes, le nombre de cylindres de ces disques est donc supérieur à 1024. Western Digital IDE : 3148 cyl 16 têtes 63 sect Soit : 3148 16 63 12=1624670208 octets = 1,6 Go Redéfinition logique de la géométrie du disque 787 cyl 64 têtes 63 sect Soit : 787 64 63 12=1624670208 octets = 1,6 Go Pour que tout fonctionne correctement, ce mécanisme doit être supporté par le BIOS, l OS et le disque IDE. MBR MBR Partition Partition Partition Partition primaire primaire primaire primaire 1 2 3 4 Partition Partition Partition primaire primaire primaire 1 2 3 Partition étendue Partition Partition Partition Partition logiquelogique logique logique 1 2 3 4 Sylvain Chevallier S2 2016 Administration système 22 / 24 Sylvain Chevallier S2 2016 Administration système 23 / 24
Exemples - Linux # fdisk /dev/hda Disk /dev/hda: 82.3 GB, 82348277760 bytes 2 heads, 63 sectors/track, 10011 cylinders Units = cylinders of 1606 * 12 = 822280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 34 273073+ 83 Linux /dev/hda2 3 10011 8014022+ Extended /dev/hda 3 642 4883728+ 83 Linux /dev/hda6 643 1007 2931831 83 Linux /dev/hda7 1008 1200 10241 82 Linux swap / Solaris /dev/hda8 1201 1249 39361 83 Linux /dev/hda9 120 4896 29294496 83 Linux /dev/hda10 4897 10011 41086206 83 Linux 0 1 34 3 10011 hda2 hda1 hda hda6 hda7 hda8 hda9 hda10 3 642 1008 1200 120 4896 643 1007 1201 1249 4897 10011 Sylvain Chevallier S2 2016 Administration système 24 / 24