FAT, acronyme anglais de (table d'allocation de fichiers), est un système de fichiers devenu un standard de l'industrie. Il est simple et robuste, offre de bonnes performances dans des environnements simples, mais n'atteint pas la fiabilité et l'évolutivité de certains systèmes de fichiers modernes. Il est cependant pris en charge par la plupart des systèmes d'exploitation actuels et dans de très nombreux appareils mobiles ou systèmes embarqués. Pour cette raison il est bien adapté aux échanges de fichiers entre les appareils de tout type et ce depuis les années 1980.
Conçu en 1977 pour les disquettes par Bill Gates et pour Microsoft Disk BASIC puis réutilisé dans QDOS (dont c'est le seul élément qui ne soit pas inspiré par CP/M, QDOS est l'ancêtre de MS-DOS, écrit par Tim Paterson), il a été très vite adapté aux disques durs et employé depuis MS-DOS jusqu'à la branche 9x de Windows en évoluant avec la capacité croissante des supports en trois variantes FAT12, FAT16 puis FAT32. Les systèmes Windows suivants, dérivés de la branche NT, utilisent préférablement le NTFS, mais reconnaissent toujours FAT.
FAT était employé sur les disquettes et reste toujours utilisé sur les clés USB, les cartes SD ainsi que dans les très nombreux équipements mobiles qui utilisent ces supports. La spécification DCF demande le support de FAT par les appareils photo numériques. FAT est enfin employé dans la phase de démarrage des systèmes informatiques compatibles UEFI.
Historique
FAT a été conçu au départ pour des disquettes de , mais un de ses plus gros défauts était le nombre limité de caractères dans les noms des fichiers (le fameux 8.3) : 1 à 8 caractères, un point et 0 à 3 caractères, sans distinction de la casse.
Ce défaut a été résolu dans Windows 95 grâce à une astuce préservant la compatibilité : le système VFAT, qui étend les noms de fichiers à 255 caractères Unicode au maximum. Les noms de fichiers longs sont accessibles via l'API Win32 de Windows 95, mais également depuis les versions de MS-DOS fournies avec Windows et ses successeurs (via des appels système supplémentaires)INT 21 : liste d'appels système MS-DOS..
FAT a évolué en différentes versions, toutes supportées par les dernières versions de MS-DOS et les versions actuelles de Windows, qui ont été rendues nécessaires par l'évolution des capacités de stockage des disques : FAT12 : maximum de 2, soit de taille fixe (entre et ). Utilisé entre autres sur les disquettes FAT16 : maximum d'env. 2, soit de taille fixe entre et (voire 128 ou 256 sous certaines conditions) VFAT : Une évolution de la FAT, permettant de gérer les noms longs dans Windows 95 et les versions suivantes. Il s'applique à toutes les versions de FAT (FAT12, FAT16, FAT32…) FAT32 : apparu avec Windows 95 OSR2 (Windows 95B), il supporte de 65527 à 4.177.917 de d'une taille pouvant allant de à (voire 128 ou 256 sous certaines conditions), avec reprise du système VFAT. La taille des fichiers ne peut dépasser . L'exFAT, apparu avec Windows CE 6.0, est un système de fichiers différent de la famille des FAT.
Malgré son manque de résistances aux pannes par rapport à ses concurrents, FAT reste en 2010 très utilisé, notamment sur les cartes mémoires pour appareils photo numériques et téléphones mobiles ainsi que sur les clés USB en raison de la simplicité de son implémentation permettant l'utilisation dans des systèmes embarqués ainsi que la compatibilité assurée avec Windows et beaucoup d'autres systèmes d'exploitation (les principaux systèmes actuels reconnaissent le système de fichiers FAT).
Microsoft a tenté en de déposer un brevet sur FAT, de façon à pouvoir percevoir des droits sur les licences qui auraient été accordées aux fabricants d'appareils électroniques. Mais la demande a été rejetée en . Elle a cependant été validée en , après que Microsoft eût complété son argumentation.
Interopérabilité Le système de fichiers FAT permet d'assurer l'interopérabilité entre plateformes différentes et régions différentes par une gestion adéquate de l'encodage des noms de fichiershttp://www.linuxfromscratch.org/blfs/view/cvs/introduction/locale-issues.html#locale-wrong-filename-encoding Beyond Linux® From Scratch - Version 2012-08-12 - Chapter 2. Important Information - Going Beyond BLFS - Locale Related Issues.
Aspect technique
Le système de fichiers FAT est composé de trois grandes sections : Le « secteur de » contenant le « BPB ». C'est le premier secteur de la partition. Les « tables d'allocation » ou « FATs ». C'est une carte du disque. Le « répertoire racine » ou « ». C'est une liste des fichiers présents à la racine du disque.
Le BPB Signifie Bios Parameter Block.. Il se situe dans le secteur de boot, c'est-à-dire le premier secteur de la partition (ou du disque dans le cas d'un support non partitionné, comme une disquette). Il contient les informations essentielles.
Structure
Le secteur de a le format suivant :
Position(octets) Taille(octets) Description 0 3 Saut vers un programme qui va charger le système d'exploitation 3 8 Nom du programme qui a formaté le disque (« MSWIN4.1 » par exemple). 11 2 Nombre d'octets par secteur (512, , ou ). 13 1 Nombre de secteurs par (1, 2, 4, 8, 16, 32, 64 ou 128). 14 2 Nombre de secteurs réservés en comptant le secteur de (32 par défaut pour FAT32, 1 par défaut pour FAT12/16). 16 1 Nombre de FATs sur le disque (2 par défaut) 17 2 Taille du répertoire racine en nombre d'entrées (0 par défaut pour FAT32). 19 2 Nombre total de secteurs 16 bits (0 par défaut pour FAT32). 21 1 Type de disque (0xF8 pour les disques durs, 0xF0 pour les disquettes). 22 2 Taille d'une FAT en secteurs (0 par défaut pour FAT32). 24 2 Nombre de secteurs par piste. 26 2 Nombre de têtes. 28 4 Secteurs cachés (0 par défaut si le disque n'est pas partitionné). 32 4 Nombre total de secteurs 32 bits (contient une valeur si le nombre total de secteurs 16 bits est égal à 0)
Le tableau suivant explique la suite du BPB pour les disques FAT12/16 (pour le FAT32 voir plus bas) :
Position(octets) Taille(octets) Description 36 1 Identifiant du disque (à partir de 0x00 pour les disques amovibles et à partir de 0x80 pour les disques fixes). 37 1 Réservé pour usage ultérieur. 38 1 Signature (0x29 par défaut). 39 4 Numéro de série du disque. 43 11 Nom du disque sur 11 caractères ( si pas de nom). 54 8 Type de système de fichiers (FAT, FAT12, FAT16).
Le tableau suivant explique la suite du BPB pour les disques FAT32 (pour FAT12/16 voir plus haut) :
Position(octets) Taille(octets) Description 36 4 Taille d'une FAT en secteurs (remplace l'équivalent cité au-dessus) 40 2 Attributs du disque. 42 1 Version majeure du système de fichiers (0 par défaut). 43 1 Version mineure du système de fichiers (0 par défaut). 44 4 Numéro du premier du répertoire racine. 48 2 Informations supplémentaires sur le système de fichiers (1 par défaut). 50 2 Numéro de secteur de la copie du secteur de . 52 12 Réservé pour des ajouts ultérieurs (0 par défaut). 64 1 Identifiant du disque (à partir de 0x00 pour les disques amovibles et à partir de 0x80 pour les disques fixes). 65 1 Réservé pour usage ultérieur. 66 1 Signature (0x29 par défaut). 67 4 Numéro de série du disque. 71 11 Nom du disque sur 11 caractères ( si pas de nom). 82 8 Type de système de fichiers (FAT32).
FAT
Un est un groupe de secteurs. Il sert d'unité d'allocation aux fichiers. Chaque stocke donc les données d'un fichier. Pour un fichier de par exemple, sur un disque utilisant des de (soit 16 secteurs de ), 2 sont utilisés, dont le dernier n'utilise que ( - ).
Structure
Une table d'allocation est une carte où chaque nombre représente un . Cette table est un tableau de nombres, indexé par un numéro de . Le tableau suivant donne les valeurs possibles pour ces nombres :
FAT12FAT16FAT32Description0x0000x00000x?0000000 vide0x0010x00010x?0000001 réservé0x002 - 0xFEF0x0002 - 0xFFEF0x?0000002 - 0x?FFFFFEF utilisé, pointeur vers le suivant du fichier0xFF0 - 0xFF60xFFF0 - 0xFFF60x?FFFFFF0 - 0x?FFFFFF6Valeurs réservées0xFF70xFFF70x?FFFFFF7« Mauvais »0xFF8 - 0xFFF0xFFF8 - 0xFFFF0x?FFFFFF8 - 0x?FFFFFFF utilisé, dernier d'un fichier
Exemple
Numéro 2 3 4 5 6 7 8 XLa valeur…000000040005000700010008FFFF....… correspond àVideUtiliséUtiliséUtiliséRéservéUtiliséUtilisé
Remarque : Dans cet exemple un fichier utilise, dans l'ordre, les 3, 4, 5, 7 et 8.
Structure
Le répertoire racine est une liste d'entrées. Les entrées du répertoire racine ont le format suivant :
TailleDescription0x008Nom du fichier (complété à 8 caractères avec des espaces)
Le premier octet peut avoir l'une des valeurs spéciales suivantes : 0x00Entrée disponible, marque également la fin du répertoire0x05Le nom de fichier commence en fait par le caractère ASCII 0xE5 (valeur réservée)0x2EEntrée '.' ou '..'0xE5Entrée supprimée. Les outils de recouvrement de fichiers supprimés remplacent ce caractère par un autre pour restaurer le fichier supprimé.0x083Extension (complétée à 3 caractères avec des espaces)0x0B1Attributs du fichier : BitMasqueDescription00x01Lecture seule10x02Fichier caché20x04Fichier système30x08Nom du volume40x10Sous-répertoire50x20Archive60x40 (utilisé en interne, jamais sur disque)70x80Inutilisé La valeur d'attributs 0x0F est utilisé pour désigner un nom de fichier long.0x0C1Réservé, utilisé par NT0x0D1Heure de création : par unité de (0 à 199).0x0E2Heure de création : BitsDescription15-11Heures (0-23)10-5Minutes (0-59)4-0Secondes/2 (0-29)0x102Date de création : BitsDescription15-9Année - 1980 (0 = 1980, 127 = 2107)8-5Mois (1 = Janvier, 12 = Décembre)4-0Jour (1 - 31)0x122Date du dernier accès ; voir 0x10 pour la description.0x142Index EA (utilisé par OS/2 et NT) pour FAT12 et FAT16 ; de poids fort du numéro du premier pour FAT320x162Heure de dernière modification ; voir 0x0E pour la description.0x182Date de dernière modification ; voir 0x10 pour la description.0x1A2Numéro du premier du fichier (FAT12 et FAT16) ; de poids faible de ce numéro (FAT32).0x1C4Taille du fichier
Pour un répertoire (signalé par le bit approprié du champ attributs), le contenu est une structure identique au format précédent, et commence par les deux entrées '.' (décrivant le répertoire lui-même) et '..' (décrivant le répertoire dans lequel celui-ci a été créé).
FATX Il existe une version légèrement modifiée du système de fichier FAT, nommée FATX, créée pour le disque dur de la console Xbox. FATX est également utilisé par les cartes mémoire de la Xbox.
Notes et références
Voir aussi
Articles connexes
Système de fichiers FAT12 FAT16 FAT32 (VFAT) NTFS exFAT
Lien externe
Catégorie:DOS Catégorie:Système de fichiers