- FAT16
-
FAT16 Développeur Microsoft Nom anglais File Allocation Table
(16 bits)Introduction novembre 1987
(Compaq DOS 3.31)Identificateur de partition 4 (<32 Mio en CHS)
6 (>32 Mio en CHS)
14 = 0xe (en LBA)Structure Contenu des répertoires tableaux hiérarchiques Allocation de fichiers liste chaînée dans la FAT Mauvais blocs marqués 0xfff7 dans la FAT Limitations Taille maximale de fichier 4 Gio (mais limité par la taille du disque) Nombre maximal de fichiers 65518 Taille maximale du nom de fichiers 8.3 (comme FAT12)
(étendu à 255 en VFAT)Taille maximale de volume 2 Gio (voire 4 Gio) 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 1er janvier 1980 à
31 décembre 2107Forks non supporté Attributs verrouillé, archivé, caché, système Permissions non supporté Compression intégrée non supporté Chiffrement intégré non supporté modifier FAT16 (FAT pour File allocation table, soit « table d'allocation de fichiers » en français) est un système de fichiers.
Ce système de fichiers succéda à FAT12 et précéda FAT32 ; il fut utilisé pour le MS-DOS et la première version de Windows 95. À partir de Windows 95 OSR2, l'utilisateur a le choix entre FAT16 et FAT32.
À l'apparition de Windows 95, on a greffé un système VFAT permettant de gérer les noms longs (Long File Names ou LFN).
Sommaire
Caractéristiques techniques
Comme son nom l'indique, il utilise des adresses d'unités d'allocation sur le disque codées sur 16 bits, ce qui fait 216 possibilités, cependant la limite avec FAT16 se situe à 65 524[1] unités d'allocation voire encore moins car selon un ouvrage Microsoft assez ancien[2] les numéros d'unité d'allocation 0xfff0 à 0xfff6 (soit 65 520 à 65 526) ne doivent pas être utilisés, menant le nombre maximal à 65 518 (certains encore citent 65 517 mais il pourrait s'agir d'une confusion entre numéro de cluster et nombre de clusters). En tout état de cause, un programme qui formate un disque a tout intérêt à rester loin de cette limite car beaucoup de code erroné a été écrit[1].
En plus d'une taille maximale, les systèmes de fichier FAT16 ont une taille minimale, car il n'y a pas de différence entre une entê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. Malheureusement plusieurs documents de Microsoft se contredisent sur la limite du nombre de clusters. Certains disent 4 084 (moins de 212 = 4 096) unités d'allocation (appelées clusters en anglais). Ce nombre descend à 4 078 selon un ouvrage Microsoft les numéros d'unité d'allocation 0xff0 à 0xff6 (soit 4 080 à 4 086) ne doivent pas être utilisés.
Contrairement à FAT12 qui ne permettait pas d'avoir des partitions d'une taille supérieure à 16 mégaoctets, FAT16 permet d'avoir des partitions, selon la taille des clusters, occupant jusqu'à 2 Gio, et exceptionnellement 4 Gio :
- clusters de 512 octets : partitions de 2 à 32 Mio ;
- clusters de 1 Kio : partitions de 4 à 64 Mio ;
- clusters de 2 Kio : partitions de 8 à 128 Mio ;
- clusters de 4 Kio : partitions de 16 à 256 Mio ;
- clusters de 8 Kio : partitions de 32 à 512 Mio ;
- clusters de 16 Kio : partitions de 64 à 1 024 Mio, c'est-à-dire 1 Gio ;
- clusters de 32 Kio : partitions de 128 à 2 048 Mio, c'est-à-dire 2 Gio ;
- clusters de 64 Kio : partitions de 256 à 4 096 Mio, c'est-à-dire 4 Gio : ces partitions sont créées et gérées uniquement par Windows NT 4.0 ou postérieur.
Un cluster est la taille minimale allouable. Même si un fichier n'a pas exactement une taille qui est un multiple de la taille d'un cluster, il occupera un nombre entier de cluster. Ainsi l'espace inutilisé au-delà de la fin du fichier est perdu. Il est donc important de choisir un compromis entre la place gagnée en réduisant la table d'allocation dont la taille est proportionnelle au nombre de clusters, et la place perdue à la fin de chaque fichier et répertoire, qui dépend en moyenne du nombre de fichiers et répertoire et de la taille d'un cluster.
Il existe deux versions de FAT16 en adresses CHS (dont les identifiants de partition sont 4 et 6) car à l'époque où FAT16 a été introduit, le système d'exploitation DOS des ordinateurs personnels n'utilisait jamais les instructions 32 bits des processeurs x86 (gardant ainsi le système d'exploitation compatible avec les processeurs les plus anciens comme le 8086), cependant un disque FAT16 de plus de 32 Mio contient un nombre de secteurs qui dépasse 65 535 (216-1 le plus grand nombre représentable avec 16 bits) secteurs ce qui exige donc de faire les calculs en 32 bits (tout en n'utilisant que des instructions 16 bits), le premier DOS à supporter cela fut le Compaq DOS 3.31.
Les autres limitations de FAT16 sont les suivantes :
- Taille maximale d'un fichier : 4 Gio - 1 octet (soit exactement 4 294 967 295 octets) ;
- Nombre maximal de fichiers par partition : 65 524 ;
- La racine du disque est de plus limitée à 512 entrées ; une entrée est un fichier ou un dossier.
La limite de 512 fichiers à la racines est revue à la baisse lors de l'utilisation de noms longs de fichier. Un nom long est en fait morcelé sur plusieurs entrées de la racine. Un nom long est tout nom autorisé qui n'est pas un nom court. Un nom court a de un à huit caractères, éventuellement suivi d'un point et de un à trois caractères. Sur une clef de stockage USB, notamment les lecteur de MP3, il est recommandé de ne pas mettre tous les fichiers à la racine, au risque d'être limité avant d'avoir utilisé tout l'espace libre pour les fichiers.
Notes et références
- (en)FAT: General Overview of On-Disk Format
- (en) Microsoft MS-DOS Programmer's Reference : version 5.0, 1991 (ISBN 1-55615-329-5)
Voir aussi
Articles connexes
- File Allocation Table : détaille les structures du système de fichier
- VFAT : détaille le stockage des noms de fichiers longs
- FAT12
- FAT32
Liens externes
Wikimedia Foundation. 2010.