2. Un peu de technique et de terminologie
Contenu de cette section
Les secteurs des disques ATA (IDE) comportent 512 octets. On peut
adresser un secteur de deux manières~: par son adresse
logique (LBA, Logical Block Address), qui est un numéro
compris entre 0 et le nombre total de secteurs du disque, ou par son
adresse physique qui est un triplet cylindre-tête-secteur
(CHS, Cylinder-Head-Sector). Pour convertir des adresses
logiques en adresses physiques, il est nécessaire de
connaître la géométrie du disque,
c'est-à-dire le nombre de têtes par cylindre, le nombre
de secteurs par tête et le nombre de cylindres qu'il comporte.
Ces informations permettent aussi de calculer la taille du disque.
Les anciens contrôleurs et les vieux BIOS ne permettent d'utiliser
que l'adresse physique pour adresser un secteur. Tous les
contrôleurs et tous les BIOS permettent d'utiliser l'adresse
physique pour repérer un secteur. Linux manipule le plus souvent
possible des adresses logiques, sauf au plus bas niveau, où il
effectue une conversion de ces adresses en adresses physiques pour
dialoguer avec le contrôleur. Linux n'utilise pas le BIOS pour
tout cela, sauf pour déterminer la géométrie du
disque.
La table des partitions contient les adresses de début et de
fin des partitions sous forme logique ET physique. fdisk sous
DOS et fdisk sous Linux s'attendent bien sûr à
ce que les deux formes soient cohérentes entre elles pour
chaque partition. fdisk sous DOS demande au BIOS la
géométrie du disque, et fdisk sous Linux la
demande au noyau.
C'est ici que les choses se corsent. MS-DOS et l'interface BIOS
utilisent un champ de dix bits pour stocker les numéros de
cylindre, ne permettant d'utiliser que des numéros compris
entre 0 et 1023, ce qui est tout à fait insuffisant pour les
disques modernes qui comportent habituellement 63 secteurs par
tête, 16 têtes par cylindre, et un très grand
nombre de cylindres (N.D.T. plus de 2~000 pour un disque
de 1~Go). La solution pour pouvoir exploiter ces
disques, en dépit de cette limitation est une bidouille~: un
BIOS EIDE ment au sujet de la géométrie du disque en
divisant par deux (ou par quatre) le nombre de cylindres et en
doublant (respectivement, en quadruplant) le nombre de
têtes. Quand une requête comportant une adresse physique
lui arrive, le BIOS considérera que cette requête utilise
la géométrie bidon et la convertira pour dialoguer avec
le contrôleur du disque. Ce mécanisme est appelé
une conversion d'adresse.
Chapitre suivant,
Chapitre Précédent
Table des matières de ce chapitre,
Table des matières générale
Début du document,
Début de ce chapitre
|