Les données enregistrées sur les disquettes ou les partitions de disques sont organisées en fichiers. Les fichiers sont regroupés dans des répertoires organisés selon une structure arborescente gérée par un sous-ensemble du système d'exploitation : le Système de fichiers ou File system
Le système de fichier par lequel nous commençons cette
étude est basé sur deux tables :
- le répertoire racine
- la FAT
Le répertoire racine (root) est une table qui occupe un emplacement fixe. Il contient des noms de fichiers et de sous-répertoires, leurs attributs, les dates et les heures des dernières modifications, leur tailles et enfin les numéros des clusters où commencent chacun de ces fichiers ou sous-répertoires.
Le répertoire racine autorise un nombre maximum d'entrées : 224 pour une disquette 1.44 Mo ou 512 pour les disques durs.
Le système de fichier répertorie
les emplacements occupés par les fichiers au moyen d'une table
d'allocation des fichiers, la FAT ( File
Allocation Table)
Les emplacements sont appelés clusters ou unités
d'allocation.
Un cluster contient un nombre fixe de secteurs. Ce nombre de secteurs
par cluster est défini une fois pour toutes lors de la préparation
du disque ou de la disquette en fonction du système de fichier
choisi FAT12, FAT16, FAT 32.
( Laissons de côté pour l'instant les autres systèmes
de fichier : HPFS, NTFS, ext2 etc.)
La FAT est donc une table destinée à contenir des numéros
de cluster. Ces numéros sont encodés avec des nombres de
12, 16 ou 32 bits selon qu'il s'agit d'une FAT12, FAT16 ou FAT32.
Combien peut-on inscrire de numéros d'unités d'allocation
dans une FAT12 ?
C'est simple puisqu'il y a 12 bits on peut former 212 numéros.
C'est le cas pour les disquettes. Le nombre d'unités d'allocation
y est réduit, une FAT12 est bien suffisante.
Voici le message que nous obtenons après avoir formaté
une disquette de 1,44 Mo sous DOS :
1.457.664 octets d'espace disque au total 1.457.664 octets disponibles sur le disque |
Ici un cluster comprend 512 octets. L'unité
d'allocation ne comporte donc qu'un seul secteur.
La taille de la disquette est de 1.457.664 octets.
Le nombre de cluster vaut donc 1.457.664 octets divisé par 512
= 2.847 clusters.
Une table d'allocation où les numéros de clusters sont enregistrés
sur 12 bits est donc bien suffisante puisque avec 12 bits nous aurions
pu encoder jusqu'à 212 = 4096 numéros de cluster. ( 4096
> 2.847)
Nous savons que la FAT contient assez d'emplacements pour contenir les numéros de chaque unité d'allocation du disque. Son but est d'aider à déterminer :
Voici par exemple ce que pourrait contenir le répertoire racine et la FAT d'une disquette:
L'entrée 70 du répertoire racine contient le nom d'un fichier
"Toto.txt"
Le début de ce fichier est enregistré dans le cluster 051.
Ce fichier occupe vraisemblablement plus qu'un cluster puisque la FAT
nous apprend qu'après avoir lu le cluster 051 il faudra passer
au cluster 052.
La suite se trouve dans le cluster suivant est le n° 210, Toto.txt
est donc fragmenté.
La case n° 210 de la FAT contient le code FFF. Ce code spécial
signifie que nous sommes arrivés à la fin de notre ficher
Toto.txt
Voici la signification des codes qui se retrouvent dans la FAT :
000 | Cluster libre | |
nnn | Numéro du cluster suivant | |
FF0 à FF6 | Codes réservés | |
FF7 | Cluster défectueux (mis hors service) | |
FF8 à FFF | Fin de fichier |
A suivre ...