Cette page en format PDF

Le système de fichiers

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

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.

La FAT

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
512 octets dans chaque unité d'allocation 2.847 unités d'allocation disponibles sur le disque. 12 bits dans chaque entrée

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)

Organisation de la FAT

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 :

  1. quelles sont les unités d'allocation occupées par des fichiers
  2. dans quel ordre il faut les consulter pour retrouver les fichiers dont les fragments sont dispersés parmi différents clusters.

Voici par exemple ce que pourrait contenir le répertoire racine et la FAT d'une disquette:


FAT12

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 ...