File Allocation Table

File Allocation Table
Page d'aide sur l'homonymie Pour les articles homonymes, voir FAT.

FAT, acronyme anglais de file allocation table (table d'allocation de fichiers), est un système de fichiers conçu par Bill Gates et Marc McDonald pour le 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 fut ensuite utilisé sous MS-DOS puis dans la branche 9x de Windows. Les systèmes Windows actuels, dérivés de la branche NT, utilisent généralement le NTFS pour les disques durs, mais reconnaissent toujours FAT car les cartes mémoire des appareils photos numériques ou des baladeurs, de même que leurs mémoires internes, sont presque toujours au format FAT.

Sommaire

Historique

FAT a été conçu au départ pour des disquettes de 160 ko, 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)[1].

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 212, soit 4 096 clusters de taille fixe (choisie au départ entre 512 octets et 4 Kio). Utilisé entre autres sur les disquettes.
  • FAT16 : maximum de 216, soit 65 536 clusters de taille fixe (choisie au départ entre 2 Kio et 64 Kio).
  • 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 un maximum de 228 (268 millions) de clusters de taille variable de 4 Kio à 32 Kio, avec reprise du système VFAT. La taille des fichiers ne peut dépasser 4 Gio.
  • exFAT Appelé aussi communément FAT64, apparu avec Windows Vista SP1, il supporte des partitions théoriques de 64 zébioctets.

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 fichier FAT).

Microsoft a tenté en décembre 2003 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 septembre 2004. Elle a cependant été validée en janvier 2006, après que Microsoft eut complété son argumentation.

Aspect technique

Le système de fichier FAT est composé de trois grandes sections :

  1. Le « secteur de boot » ou « BPB ».
    C'est le premier secteur de la partition.
  2. Les « tables d'allocation » ou « FATs ».
    C'est une carte du disque.
  3. Le « répertoire racine » ou « Root directory ».
    C'est une liste des fichiers présents à la racine du disque.

Le BPB

Signifie Bios Parameter Block[2]. 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).

Structure

Le secteur de boot 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, 1 024, 2 048 ou 4 096).
13 1 Nombre de secteurs par cluster (1, 2, 4, 8, 16, 32, 64 ou 128).
14 2 Nombre de secteurs réservés en comptant le secteur de boot (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-bit (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-bit (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 ('NO NAME' 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 fichier (0 par défaut).
43 1 Version mineure du système de fichier (0 par défaut).
44 4 Numéro du premier cluster du répertoire racine.
48 2 Informations supplémentaires sur le système de fichier (1 par défaut).
50 2 Numéro de secteur de la copie du secteur de boot.
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 ('NO NAME' si pas de nom).
82 8 Type de système de fichiers (FAT32).

FAT

Cluster

Un cluster est un groupe de secteurs. Il sert d'unité d'allocation aux fichiers. Chaque cluster stocke donc les données d'un fichier. Pour un fichier de 9 000 octets par exemple, sur un disque utilisant des clusters de 8 192 octets (soit 16 secteurs de 512 octets), 2 clusters sont utilisés, dont le dernier n'utilise que 808 octets (9 000 - 8 192).

Structure

Une table d'allocation est une carte où chaque nombre représente un cluster. Cette table est un tableau de nombres, indexé par un numéro de cluster. Le tableau suivant donne les valeurs possibles pour ces nombres :

FAT12 FAT16 FAT32 Description
0x000 0x0000 0x?0000000 Cluster vide
0x001 0x0001 0x?0000001 Cluster réservé
0x002 - 0xFEF 0x0002 - 0xFFEF 0x?0000002 - 0x?FFFFFEF Cluster utilisé, pointeur vers le cluster suivant du fichier
0xFF0 - 0xFF6 0xFFF0 - 0xFFF6 0x?FFFFFF0 - 0x?FFFFFF6 Valeurs réservées
0xFF7 0xFFF7 0x?FFFFFF7 « Mauvais cluster »
0xFF8 - 0xFFF 0xFFF8 - 0xFFFF 0x?FFFFFF8 - 0x?FFFFFFF Cluster utilisé, dernier cluster d'un fichier

Exemple

Numéro Cluster 1 Cluster 2 Cluster 3 Cluster 4 Cluster 5 Cluster 6 Cluster 7 Cluster X
La valeur… 0000 0003 0004 0006 0001 0007 FFFF ....
… correspond à Vide Utilisé Utilisé Utilisé Réservé Utilisé Utilisé

Remarque : Dans cet exemple un fichier utilise, dans l'ordre, les clusters 2, 3, 4, 6 et 7.

Root Directory

Structure

Le répertoire racine est une liste d'entrée. Les entrées du répertoire racine ont le format suivant :


Offset Taille Description
0x00 8 Nom du fichier (rempli par des espaces)

Le premier octet peut avoir l'une des valeurs spéciales suivantes :

0x00 Entrée disponible, marque également la fin du répertoire
0x05 Le nom de fichier commence en fait par le caractère ASCII 0xE5 (valeur réservée)
0x2E Entrée '.' ou '..'
0xE5 Entrée supprimée. Les outils de recouvrement de fichiers supprimés remplacent ce caractère par un autre pour restaurer le fichier supprimé.
0x08 3 Extension (rempli par des espaces)
0x0B 1 Attributs du fichier :
Bit Masque Description
0 0x01 Lecture seule
1 0x02 Fichier caché
2 0x04 Fichier système
3 0x08 Nom du volume
4 0x10 Sous-répertoire
5 0x20 Archive
6 0x40 Device (utilisé en interne, jamais sur disque)
7 0x80 Inutilisé

La valeur d'attributs 0x0F est utilisé pour désigner un nom de fichier long.

0x0C 1 Réservé, utilisé par NT
0x0D 1 Heure de création : par unité de 10 ms (0 à 199).
0x0E 2 Heure de création :
Bits Description
15-11 Heures (0-23)
10-5 Minutes (0-59)
4-0 Secondes/2 (0-29)
0x10 2 Date de création :
Bits Description
15-9 Année - 1980 (0 = 1980, 127 = 2107)
8-5 Mois (1 = Janvier, 12 = Décembre)
4-0 Jour (1 - 31)
0x12 2 Date du dernier accès ; voir offset 0x10 pour la description.
0x14 2 Index EA (utilisé par OS/2 et NT) pour FAT12 et FAT16 ; 2 octets de poids fort du numéro du premier cluster pour FAT32
0x16 2 Heure de dernière modification ; voir offset 0x0E pour la description.
0x18 2 Date de dernière modification ; voir offset 0x10 pour la description.
0x1A 2 Numéro du premier cluster du fichier (FAT12 et FAT16) ; 2 octets de poids faible de ce numéro (FAT32).
0x1C 4 Taille du fichier

Quand le fichier est un répertoire (voir bits attributs), le contenu est une structure identique au format précédent, et commence par les deux entrées '.' et '..'.

Notes et références

  1. INT 21 : liste d'appels système MS-DOS.
  2. http://support.microsoft.com/kb/140418/fr

Voir aussi

Articles connexes

Lien externe



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article File Allocation Table de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • File allocation table — Pour les articles homonymes, voir FAT. FAT, acronyme anglais de file allocation table (table d allocation de fichiers), est un système de fichiers conçu par Bill Gates et Marc McDonald pour le Microsoft Disk BASIC, puis réutilisé dans QDOS dont c …   Wikipédia en Français

  • File Allocation Table — FAT (от англ. File Allocation Table «таблица размещения файлов») архитектура файловой системы, сейчас широко используемая в картах памяти фотоаппаратов и других устройств. Разработана Биллом Гейтсом и Марком МакДональдом в 1977 году[1].… …   Википедия

  • file allocation table — (FAT) area of a disk on which the location of each file is recorded …   English contemporary dictionary

  • File Allocation Table —   [Abk. FAT], Dateizuordnungstabelle …   Universal-Lexikon

  • File Allocation Table — For other uses, see Fat (disambiguation). FAT Developer Microsoft Full Name File Allocation Table FAT12 (12‑bit version) FAT16/FAT16B (16‑bit versions) FAT32 (32‑bit version with 28 bits used) Introduced …   Wikipedia

  • File Allocation Table — Das File Allocation Table (vom Englischen etwa für „Dateizuordnungstabelle“; Abkürzung FAT, englische Aussprache [fæt]) ist ein von Microsoft entwickeltes Dateisystem. Inhaltsverzeichnis 1 Hintergrund 2 Aufbau 2.1 Bootsektor …   Deutsch Wikipedia

  • file allocation table — noun the part of a floppy disk or hard disk where information is stored about the location of each piece of information on the disk (and about the location of unusable areas of the disk) • Hypernyms: ↑table, ↑tabular array * * * file allocation… …   Useful english dictionary

  • file allocation table — FAT failų išdėstymo sistema statusas T sritis informatika apibrėžtis ↑Failų išdėstymo sistema, visą informaciją apie diske esančius failus laikanti fiksuoto dydžio lentelėje. Yra trys sistemos variantai: FAT12, FAT16, FAT32. Skaičius rodo, kiek… …   Enciklopedinis kompiuterijos žodynas

  • file allocation table —    Abbreviated FAT, pronounced [fat]. A table, maintained by the operating systems, that lists all the blocks of disk space available on a disk.    The FAT includes the location of each block, as well as whether it is in use, available for use,… …   Dictionary of networking

  • file allocation table — noun A table used internally by the operating system to keep track of the structure of a disk and where files are stored on it. Syn: FAT …   Wiktionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”