FAT12 (FAT pour file allocation table, table d'allocation de fichiers) est un système de fichiers développé par Microsoft vers 1980 (intégrant le travail fait par Tim Patterson sur 86-DOS, lui-même s'étant inspiré de CP/M). Il reste le système de fichiers le plus employé sur disquette.

FAT12
Développeur Microsoft
Nom anglais File Allocation Table (12 bits)
Introduction 1977
(Microsoft BASIC)
Identificateur de partition 1
Structure
Contenu des répertoires tableaux hiérarchiques
Allocation de fichiers liste chaînée dans la FAT
Mauvais blocs marqués 0xff7 dans la FAT
Limitations
Taille maximale de fichier 16 Mio (limitation par la taille du Volume)
Nombre maximal de fichiers 4 068 pour clusters de 8 KiB
Taille maximale du nom de fichiers 8.3 (8 caractères pour le nom + 3 caractères pour l'extension)
Taille maximale de volume 16 Mio
Caractères autorisés dans les noms de fichiers tous les caractères sur 8 bits (étendu à tout Unicode en VFAT) sauf
/ \ : * ? " < > |
Fonctionnalités
Dates enregistrées modification (+ création et accès en VFAT)
Plage de dates à
Forks non supporté
Attributs verrouillé, archivé, caché, système
Permissions non supporté
Compression intégrée non supporté
Chiffrement intégré non supporté

Ce système de fichier a été initialement conçu pour être utilisé sur des disquettes à une époque où leur capacité n'atteignait pas 1 Mio. Le 12 fait référence au nombre de bits employés pour coder les numéros d'unités d'allocation sur le disque.

Le système se nommait au départ simplement FAT. On lui a adjoint le suffixe 12 lors de la sortie du FAT16, pour les différencier car les utilitaires de bas niveau en FAT12 (comme Norton Utilities de l'époque) ne fonctionnaient plus avec FAT16. Cependant, dans les versions récentes des systèmes d'exploitation Microsoft Windows, les disques formatés en FAT12 ou en FAT16 sont tous deux désignés FAT.

Caractéristiques techniques

modifier

Il n'y a pas de différence entre un en-tête FAT12 et FAT16. Le seul moyen de différencier ces deux systèmes de fichiers est de calculer le nombre de clusters. Donc un système ou un programme utilisant l'un de ces deux types de FAT doit savoir utiliser l'autre type de manière transparente.

Dans ce système de fichiers, le nombre total de secteurs d'un disque est stocké sur 16 bits et limite la taille totale du système de fichiers à moins de 32 Mio pour des secteurs de 512 octets, mais par compatibilité avec les OS précédant PC DOS 2.0, la taille des unités d'allocation dépasse rarement 4 kio et le système de fichiers est limité à 16 Mio.

L'autre limite vient du nombre de bits employés pour coder les numéros des unités d'allocation (appelées clusters en anglais), 12 bits permettent 4096 combinaisons. Malheureusement plusieurs documents de Microsoft se contredisent sur la valeur maximale du nombre de clusters. Certains disent 4 084[1] unités d'allocation, ce nombre descend à 4078 dans un autre ouvrage Microsoft[2] citant les numéros 0xff0 à 0xff6 (soit 4 080 à 4 086) comme inutilisables. En tout état de cause, un programme qui formate un disque a tout intérêt à rester loin de cette limite car chaque programme[1],[3] peut s'appuyer sur l'un ou l'autre de ces documents (dont aucun n'est normatif).

Ces deux limitations ne le rendent utilisable que pour des systèmes de fichiers qui semblent aujourd'hui de petite taille. La taille maximale est proportionnelle à la taille des clusters :

  • avec 4 084 clusters de 512 octets, on ne peut utiliser que des disques de moins de 2 Mio (4 084 × 512 = 2 091 008) ;
  • avec des clusters de 1 Kio, on arrive à 4 Mio ;
  • avec des clusters de 2 Kio, on arrive à 8 Mio ;
  • avec des clusters de 4 Kio, on arrive à 16 Mio.

La limite atteinte par FAT12 avant le passage à FAT16 fut 16 Mio.

Une autre limitation technique est que le nombre d'entrées dans le répertoire racine est fixé au moment du formatage. La FAT16 et FAT32 ont la même limitation. Si on doit mettre beaucoup de fichiers sur un média formaté en FAT, il est recommandé de créer et d'utiliser un répertoire à la racine plutôt que de les mettre les fichiers directement à la racine. De plus l'emploi des noms longs (voir VFAT) crée des entrées supplémentaires dans les répertoires. Il est donc préférable de ne pas utiliser des noms longs dans le répertoire racine.

Ce système de fichiers est toujours utilisé par les versions les plus récentes de Microsoft Windows, mais seulement pour les disquettes (qui font 1,44 Mo) et les anciennes clefs USB (moins de 16 Mio).

Notes et références

modifier
  1. a et b (en) FAT: General Overview of On-Disk Format
  2. Microsoft MS-DOS Programmer's Reference : version 5.0, Microsoft press, , 464 p. (ISBN 1-55615-329-5)
  3. Sur linux, le driver du noyau, mkdosfs et les mtools ont chacun une limite différente

Voir aussi

modifier

Articles connexes

modifier