|
Structure
logique des disques durs
|
Structure
logique générale d'un disque Macintosh

Structure
logique d'un disque HFS

La figure ci-dessus représente un exemple
de structure dun disque dur.
On distingue plusieurs zones à lintèrieur de
cette structure :
Bloc $0 :
Ce bloc permet lidentification du disque et de ses caratéristiques.
Blocs $1 à $3F :Table des partitions
Ces blocs définissent les différentes partitions présentes
sur le disque.
Les blocs $1 à $6 permettent de déclarer les partitions
suivantes :
Table des partitions
Premier driver
Second driver
Partition Patch
Partition HFS
Partition Free
Blocs $40 à $75 :
Ces blocs sont utilisés par le premier driver du disque.
Blocs $76 à $BF :
Ces blocs sont utilisés par le second driver du disque.
Blocs $C0 à $2BF :
Ces blocs composent la partition Patch
Blocs $2C0 à $8081C5 :
Ces blocs représentent la partition HFS du disque dur
Blocs $8081C6 à $8081CF
Ces blocs ne sont pas utilisés, cest la partition Free.
Les drivers :
Avec l'arrivée des disques durs IDE et la
possibilité de connecter de l'IDE avec du SCSI, il a été
nécessaire de rajouter dans le partitionnement un driver
IDE et une partition Patch.
Blocs $40 à $75 : driver IDE
Blocs $76 à $BF : driver SCSI
La partition Patch :
Elle comprend du code permettant d'effectuer une émulation
sur les machines IDE.
Elle permet également à certains ordinateurs d'utiliser
des tailles de volume > 4Go.
La partition HFS :
Au début de chaque volume, on trouve les deux blocs de boot
qui chargent et exécutent le fichier système. Ces
deux blocs contiennent également des informations comme le
nom du fichier système, du Finder, la taille de la pile des
événements ou la taille de la Heap système.
Juste derrière les blocs de boot se trouve le Volume Information
Block (VIB) aussi appelé Master Directory Block (MDB). Il
contient des informations vitales pour le volume comme lemplacement
des directories, la taille des ensembles de secteurs ou le nom de
volume. Notons quil existe une copie de ce VIB sur lavant
dernier bloc de ce volume, ce qui peut être très utile...
Les blocs qui composent le Volume BitMap se trouvent immédiatement
après le VIB. On y conserve une table permettant de savoir
quels ensembles de secteurs sont libres ou occupés. Chaque
ensemble de secteurs est représenté par 1 bit : si
le bit est à 0, lensemble de secteurs est libre.
La taille de ce Volume BitMap est variable en fonction de la taille
du volume. Pour un volume de 32 Mo, cette taille est de 6144 octets
(12 blocs). Sur un volume de 240 Mo, le VBM occupe 7680 octets (15
blocs). Sur un volume de 4 Go, le VBM occupe 8192 octets (16 blocs).
Après le VBM débute le Catalog Tree File. Celui-ci
contient la liste de tous les fichiers et dossiers stockés
sur le volume.
Ensuite vient lExtend Tree File. Il contient la position de
tous les fichiers enregistrés sur le volume ainsi que les
emplacements des blocs alloués suivants.
Mac
OS étendu
Structure logique d'un disque HFS+
HFS+
(Mac OS étendu) a été introduit par Apple avec
la mise à jour Mac OS 8.1 en Janvier 1998.
Larchitecture dun volume HFS+ est très similaire
a celle dun volume HFS.
Les changements principaux sont les suivants :
| |
HFS
|
HFS+
|
|
Nombre
de blocs alloués calculés
|
sur
16 bits
|
sur
32 bits
|
|
Noms
de fichiers long
|
31
car
|
255
car
|
|
Taille
maximum dun fichier
|
231
oct
|
263
oct
|
HFS divise lespace disponible dans un volume en parties égales
appellées "Allocation blocks". Il utilise un mot
de 16 bits pour identifier chaque bloc alloué ce qui représente
un maximum de 65536 blocs alloués par volume.
HFS+ utilise 32 bits pour identifier les blocs alloués, ce
qui autorise 4 294 967 296 (232) blocs alloués par volume.
Plus de blocs alloués signifient donc que l "Allocation
block size" est plus petite et donc que la place perdue à
la fin dun fichier est moins
importante.

HFS+ utilise
plusieurs structures pour gérer l'organisation des données
sur un volume. On peut distinguer les structures suivantes :
Le "Volume Header" (En-tête de volume)
Il est situé sur le bloc 2 de la partition
HFS+ et il ressemble au MDB de la partition HFS. Il contient également
les dates et heure de création et de modification du volume,
Le nombre de fichiers sur le volume et aussi des indications sur
la position des structures importantes à l'intérieur
du volume.
Une copie du "Volume Header" est également disponible
sur l'avant dernier bloc de la partition HFS+.
Le "Catalog
File" (Liste des fichiers)
C'est un fichier particulier qui décrit la hiérarchie
des fichiers et des dossiers sur le volume. Le "Catalog File"
est construit sur le modèle du "B-Tree" pour effectuer
des recherches rapides et efficaces à travers la hiérarchie
d'un très grand nombre de fichiers et de dossiers.
L' "Extents
Overflow File" (Liste des Extents)
Il est organisé de la même façon
que le "Catalog File". Un "Extent" est une quantité
de blocs alloués contigus alloués à un élément.
Il comporte deux nombres : le numéro du premier "Allocation
Block" et le nombre d' "allocation blocks". Les huit
premiers Extents sont stockés dans le "Catalog File",
les suivants sont stockés dans l' "Extents Overflow
File".
L' "Attributes
File"
C'est une structure qui contiendra dans le
futur des données additionnelles pour les fichiers et les
dossiers.
L' "Allocation File" (Liste des blocs alloués
utilisés)
C'est l'équivalent du Volume BitMap d'un volume Mac OS Standard.
La "Startup File" (fichier de démarrage)
Elle n'est pas utilisée par Mac OS
pour démarrer sur un volume HFS+. Elle a été
conçue pour contenir des informations utiles au boot de systèmes
non Mac OS.
"Alternate Volume Header" (copie du Volume Header)
C'est une copie du "Volume Header" qui est effectuée
à l'initialisation du volume. Elle est placée sur
l'avant dernier bloc de la partition HFS+.

La partition Mac OS étendu se trouve à l'intérieur
de la partition HFS. Elle comporte deux blocs de boot de la partition
et les différentes structures.
Sedit
- Partition Map 0

Visualisation
du bloc 0 d'un disque dur à l'aide de Sedit
Interprétation
du Bloc 0
00-01 $4552 Signature indiquant que cest un disque Macintosh
02-03 $0200 Taille dun bloc de données (512 octets)
04-07 $000280DA Nombre de blocs sur le disque (164058 blocs)
08-09 $0001 Type de périphérique
0A-0B $0001 ID du périphérique
0C-0F $00000000 Début des données sur le disque
10-11 $0001 Nombre de drivers sur le disque
Premier Driver :
12-15 $00000040 Début du Driver (Bloc $40)
16-17 $000A Taille du Driver (10 blocs)
18-19 $0001 Type de CPU (Macintosh)

|