Article de reference

Tableau d'allocation des fichiers

{{abbr|0x|Values in C-notation for hexadecimal numbers}}[[Partition type#PID_01h|01]] e.a. (Extended Attribute) | FAT16:  {{abbr|0x|Values in C-notation for hexadecimal num...

système de fichiers développé pour les ordinateurs personnels et était le système de fichiers par défaut des systèmes d'exploitation DOS et Windows 9x . Initialement développé en 1977 pour les disquettes , il a été adapté aux disques durs et autres périphériques. L'augmentation de la capacité des disques durs au fil du temps a entraîné des modifications de sa conception, donnant naissance à de nouvelles versions : FAT12 , FAT16 , FAT32 et exFAT .

Le système de fichiers FAT a été remplacé par NTFS comme système de fichiers par défaut sur les systèmes d'exploitation Microsoft à partir de Windows XP . Néanmoins, FAT reste couramment utilisé sur les technologies de stockage à semi-conducteurs de capacité relativement faible telles que les clés USB , les cartes SD , les cartes MultiMediaCard (MMC) et les cartes eMMC en raison de sa compatibilité avec les systèmes d'exploitation et les systèmes embarqués , et de sa facilité de mise en œuvre.

les disques durs durant les ères DOS et Windows 9x . Microsoft a introduit NTFS avec la plateforme Windows NT en 1993, mais FAT est resté la norme pour les particuliers jusqu'à la sortie de Windows XP en 2001. Windows Me a été la dernière version de Windows à utiliser FAT comme système de fichiers par défaut.

Pour les disquettes, le système de fichiers FAT a été normalisé par les normes ECMA -107 et ISO / CEI 9293:1994 (remplaçant la norme ISO 9293:1987 ). Ces normes couvrent les formats FAT12 et FAT16, avec une prise en charge limitée aux noms de fichiers courts (8.3 ) ; les noms de fichiers longs avec VFAT ont fait l’objet de brevets partiels . Si le format FAT12 est utilisé sur les disquettes, les formats FAT16 et FAT32 sont généralement utilisés sur les supports de stockage de plus grande capacité.

Moderne

Le système FAT est utilisé en interne pour la partition système EFI lors de la phase de démarrage des ordinateurs compatibles EFI .

Le système de fichiers FAT est encore utilisé sur les disques destinés à être utilisés par plusieurs systèmes d'exploitation, comme dans les environnements partagés Windows et Linux . Microsoft Windows intègre également un outil permettant de convertir directement un système de fichiers FAT en NTFS sans avoir à réécrire tous les fichiers, bien que cette opération ne soit pas facilement réversible.

Le système de fichiers FAT est utilisé sur les supports amovibles tels que les disquettes , les disquettes géantes , les cartes mémoire et les clés USB . FAT est pris en charge par les appareils portables tels que les assistants numériques personnels (PDA) , les appareils photo numériques , les caméscopes , les lecteurs multimédias , les téléphones mobiles, les consoles de jeux , ainsi que par les systèmes embarqués tels que les radios portables , les lecteurs DVD et les systèmes audio de véhicules équipés de ports USB et de lecteurs de cartes SD .

Le système de fichiers DCF , adopté par la quasi-totalité des appareils photo numériques depuis 1998, définit un système de fichiers logique avec 8.3 noms de fichiers et rend obligatoire l'utilisation de FAT12, FAT16, FAT32 ou exFAT pour sa couche physique afin d'assurer la compatibilité.

Détails techniques

table d'allocation de fichiers ( FAT ). La FAT est allouée statiquement lors du formatage. Cette table est une liste chaînée d'entrées pour chaque cluster , une zone contiguë de stockage disque. Chaque entrée contient soit le numéro du cluster suivant dans le fichier, soit un marqueur indiquant la fin du fichier, l'espace disque inutilisé ou des zones réservées spécifiques du disque. Le répertoire racine du disque contient le numéro du premier cluster de chaque fichier présent dans ce répertoire. Le système d'exploitation peut alors parcourir la FAT, en recherchant le numéro de cluster de chaque partie successive du fichier disque, comme une chaîne de clusters, jusqu'à atteindre la fin du fichier. Les sous-répertoires sont implémentés comme des fichiers spéciaux contenant les entrées de répertoire de leurs fichiers respectifs.

Chaque entrée d'une liste chaînée FAT est codée sur un nombre fixe de bits : 12, 16 ou 32. La taille maximale d'un fichier ou d'un disque accessible est le produit de la plus grande valeur pouvant être stockée dans les entrées (moins quelques valeurs réservées pour indiquer l'espace non alloué ou la fin d'une liste) et de la taille du cluster du disque. Même si un seul octet est nécessaire pour étendre un fichier, un cluster entier doit lui être alloué. Par conséquent, un grand nombre de petits fichiers peuvent entraîner l'allocation de clusters contenant principalement des données « vides » afin de respecter la taille minimale requise.

Conçu initialement comme un système de fichiers 8 bits, le nombre maximal de clusters a dû augmenter avec la capacité des disques durs, ce qui a entraîné une augmentation du nombre de bits utilisés pour identifier chaque cluster. Les principales variantes successives du format FAT sont nommées d'après le nombre de bits des éléments de la table : 12 ( FAT12 ), 16 ( FAT16 ) et 32 ​​( FAT32 ).

Variantes

Il existe plusieurs variantes du système de fichiers FAT (par exemple FAT12 , FAT16 et FAT32 ). FAT16 désigne à la fois le groupe original de systèmes de fichiers FAT avec des entrées de cluster de 16 bits et les variantes ultérieures. « VFAT » est une extension optionnelle pour les noms de fichiers longs, compatible avec tous les systèmes de fichiers FAT. Les volumes utilisant des noms de fichiers longs VFAT peuvent être lus même par des systèmes d'exploitation ne prenant pas en charge cette extension.

FAT 8 bits d'origine

Marc McDonald , sur la base d'une série de discussions entre McDonald et Bill Gates . Il a été introduit avec des éléments de table de 8 bits (et des numéros de cluster de données valides jusqu'à 0xBF ) dans un précurseur du Standalone Disk BASIC-80 de Microsoft pour un successeur basé sur le 8080 du terminal de saisie de données NCR 7200 modèle VI , équipé de disquettes de 8 pouces (200 mm), en 1977 ou 1978. En 1978, Standalone Disk BASIC-80 a été porté sur le 8086 à l'aide d'un émulateur sur un DEC PDP-10 , car aucun véritable système 8086 n'était disponible à cette époque. Le système de fichiers FAT était également utilisé dans MDOS/MIDAS de Microsoft , un système d'exploitation pour les plateformes 8080/Z80 développé par McDonald depuis 1979. La version Standalone Disk BASIC prenait en charge trois FAT alors que ce nombre était une option pour MIDAS. Il semblerait que MIDAS ait également été conçu pour prendre en charge les variantes FAT 10, 12 et 16 bits. Alors que la taille des entrées de répertoire était de 16 octets dans Standalone Disk BASIC [ occupait quant à lui 32 octets par entrée.

Tim Paterson, de Seattle Computer Products (SCP), a découvert la structure FAT de Microsoft lorsqu'il a aidé Bob O'Rear à adapter le portage de l'émulateur BASIC-86 Standalone Disk sur le prototype de carte CPU 8086 à bus S-100 de SCP , lors d'un séjour d'une semaine chez Microsoft en mai 1979. Le produit final a été présenté sur le stand de Lifeboat Associates à la National Computer Conference de New York , du 4 au 7 juin 1979. Paterson y a découvert l'implémentation plus sophistiquée de la FAT dans MDOS/MIDAS et McDonald a discuté avec lui de la conception du système de fichiers.

FAT12

QDOS 0.10, Tim Paterson extended the table elements to 12 bits, reduced the number of FATs to two, redefined the semantics of some of the reserved cluster values, and modified the disk layout, so that the root directory was now located between the FAT and the data area for his implementation of FAT12. Paterson also increased the nine-character (6.3) filename length limit to eleven characters to support CP/M-style 8.3 filenames and File Control Blocks. The format used in Microsoft Standalone Disk BASIC's 8-bit file system precursor was not supported by QDOS. By August 1980, QDOS had been renamed to 86-DOS. Starting with 86-DOS 0.42, the size and layout of directory entries was changed from 16bytes to 32bytes in order to add a file date stamp and increase the theoretical file size limit beyond the previous limit of 16MB.86-DOS 1.00 became available in early 1981. Later in 1981, 86-DOS evolved into Microsoft's MS-DOS and IBMPC DOS. The capability to read previously formatted volumes with 16-byte directory entries was dropped with MS-DOS 1.20.

FAT12 used 12-bit entries for the cluster addresses; some values were reserved to mark the end of a chain of clusters, to mark unusable areas of the disk, or for other purposes, so the maximum number of clusters was limited to 4078. To conserve disk space, two 12-bit FAT entries used three consecutive 8-bit bytes on disk, requiring manipulation to unpack the 12-bit values. This was sufficient for the original floppy disk drives, and small hard disks up to 32 megabytes. The FAT16B version available with DOS3.31 supported 32-bit sector numbers, and so increased the volume size limit.

Toutes les structures de contrôle sont contenues dans la première piste afin d'éviter les déplacements de la tête de lecture/écriture. Tout secteur défectueux dans la zone des structures de contrôle rendait le disque inutilisable. L'outil de formatage DOS rejetait systématiquement ces disques. Les secteurs défectueux étaient uniquement autorisés dans la zone de données des fichiers. Les clusters contenant des secteurs défectueux étaient marqués comme inutilisables par la valeur réservée 0xFF7dans la FAT.

Alors que 86-DOS prenait en charge trois formats de disquettes (250,25 Ko, 616 Ko et 1232 Ko, avec les identifiants FAT0xFF 8 et 9 0xFE) sur les lecteurs de disquettes 8 pouces (200 mm), IBM PC DOS 1.0 , sorti avec le premier IBM Personal Computer en 1981, ne prenait en charge qu'un format de disquette 8 secteurs d'une capacité de 160 Ko (identifiant FAT 8 0xFE) pour les lecteurs de disquettes 5,25 pouces simple face. PC DOS 1.1 a ajouté la prise en charge d'un format double face de 320 Ko (identifiant FAT 9 0xFF). PC DOS 2.0 a introduit la prise en charge des formats de disquettes 9 secteurs de 180 Ko (identifiant FAT 8 0xFC) et 360 Ko (identifiant FAT 9 0xFD).

Les entrées de répertoire de 86-DOS 1.00 et PC DOS 1.0 ne comportaient qu'une seule date : la date de dernière modification. PC DOS 1.1 ajoutait l'heure de dernière modification. Les attributs de fichier de PC DOS 1.x incluaient un bit caché et un bit système, les six bits restants étant indéfinis. À cette époque, DOS ne prenait pas en charge les sous-répertoires, mais une disquette ne contenait généralement que quelques dizaines de fichiers .

Le PC XT fut le premier PC équipé d'un disque dur fourni par IBM, et PC DOS 2.0 prenait en charge ce disque dur avec le système de fichiers FAT12 ( identifiant FAT0xF8 ). L'hypothèse fixe de 8 secteurs par cluster sur les disques durs limitait en pratique la taille maximale des partitions à 16 Mo pour des secteurs de 512 octets et des clusters de 4 Ko.

Le bloc de paramètres du BIOS ( BPB ) a également été introduit avec PC DOS 2.0, et cette version a également ajouté des bits d'attributs de lecture seule, d'archive , d'étiquette de volume et de répertoire pour les sous-répertoires hiérarchiques.

MS-DOS 3.0 a introduit la prise en charge des disquettes haute densité de 1,2 Mo de 5,25 pouces (descripteur de média 0xF9), qui comportaient notamment 15 secteurs par piste, offrant ainsi plus d'espace pour les FAT.

Le système de fichiers FAT12 reste utilisé sur toutes les disquettes courantes , y compris les disquettes de 1,44 Mo et plus récentes de 2,88 Mo (octet de descripteur de média 0xF0).

FAT16 initial

PC AT , qui nécessitait PC DOS 3.0 pour accéder à son disque dur de 20 Mo. Microsoft introduisit simultanément MS-DOS 3.0. La taille des adresses de cluster fut portée à 16 bits, permettant jusqu'à 65 526 clusters par volume. Cependant, le nombre maximal de secteurs et la taille maximale des partitions restèrent inchangés (32 Mo). Bien que les adresses de cluster soient sur 16 bits, ce format ne correspondait pas à ce que l'on appelle aujourd'hui FAT16 . Un type de partition0x04 FAT16 désigne cette forme de FAT16 avec moins de 65 536 secteurs (moins de 32 Mo pour une taille de secteur de 512 octets). L'avantage du FAT16 résidait dans l'utilisation de clusters plus petits, optimisant ainsi l'utilisation du disque, notamment pour un grand nombre de fichiers de quelques centaines d'octets seulement.

Comme MS-DOS 3.0 formatait toutes les partitions de 16 à 32 Mo en FAT16, un disque dur de 20 Mo formaté sous MS-DOS 3.0 était inaccessible sous MS-DOS 2.0. MS-DOS 3.0 à MS-DOS 3.30 pouvaient encore accéder aux partitions FAT12 de moins de 15 Mo, mais exigeaient que toutes les partitions de 16 à 32 Mo soient en FAT16 ; de ce fait, ils ne pouvaient pas accéder aux partitions MS-DOS 2.0 de cette taille. MS-DOS 3.31 et les versions ultérieures permettaient à nouveau d'accéder aux partitions FAT12 de 16 à 32 Mo.

FAT sectorisé logique

AST et NEC ) ont pris en charge huit entrées de partition principale au lieu des quatre standard dans leur enregistrement de démarrage principal ( MBR ) étendu personnalisé , et ils ont adapté MS-DOS pour utiliser plus d'une seule partition principale.

D'autres fournisseurs ont contourné les limitations de taille de volume imposées par les secteurs 16 bits en augmentant la taille apparente des secteurs utilisés par le système de fichiers. Ces secteurs logiques étaient plus grands (jusqu'à 8 192 octets) que la taille physique des secteurs (toujours 512 octets) sur le disque. Le BIOS DOS ou le BIOS système combinait ensuite plusieurs secteurs physiques en secteurs logiques pour permettre au système de fichiers de fonctionner.

Ces modifications étaient transparentes pour l'implémentation du système de fichiers dans le noyau DOS. Le BIOS DOS sous-jacent traduisait ces secteurs logiques en secteurs physiques en fonction des informations de partitionnement et de la géométrie physique du disque.

L'inconvénient de cette approche résidait dans l'augmentation de la mémoire utilisée pour la mise en mémoire tampon et le déblocage des secteurs. Les anciennes versions de DOS ne pouvant pas utiliser de grands secteurs logiques, les constructeurs ont introduit de nouveaux identifiants de partition pour leurs variantes de FAT afin de les masquer aux distributions MS-DOS et PC DOS disponibles dans le commerce. Parmi les identifiants de partition connus pour les FAT à secteurs logiques, on trouve : 0x08( Commodore MS-DOS 3.x), 0x11( Leading Edge MS-DOS 3.x) 0x14, (AST MS -DOS 3.x ), ( 0x24NEC MS-DOS 3.30 ), ( AT&T MS-DOS 3.x), ( Tandy MS-DOS), ( Sperry IT MS-DOS 3.x, Unisys MS-DOS 3.3 – également utilisé par Digital Research DOS Plus 2.1). Les versions OEM comme Toshiba MS-DOS, Wyse MS-DOS 3.2 et 3.3, ainsi que Zenith MS-DOS sont également connues pour avoir utilisé le sectoring logique. 0x560xE50xF2

Bien que non standard et sous-optimales, ces variantes de FAT sont parfaitement valides selon les spécifications du système de fichiers lui-même. Par conséquent, même si les systèmes MS-DOS et PC- DOS par défaut ne pouvaient pas les gérer, la plupart de ces variantes FAT12 et FAT16 spécifiques à certains fournisseurs peuvent être montées par des implémentations de systèmes de fichiers plus flexibles dans des systèmes d'exploitation tels que DR-DOS, simplement en modifiant l'identifiant de partition pour l'un des types reconnus. De plus, si elles n'ont plus besoin d'être reconnues par leurs systèmes d'exploitation d'origine, les partitions existantes peuvent être « converties » en volumes FAT12 et FAT16 plus conformes aux versions de MS-DOS/PC DOS 4.0–6.3, qui ne prennent pas en charge les tailles de secteur différentes de 512 octets, en passant à un BPB avec une entrée de 32 bits pour le nombre de secteurs, comme introduit depuis DOS 3.31 (voir FAT16B ci-dessous), en conservant la taille du cluster et en réduisant la taille du secteur logique dans le BPB à 512 octets, tout en augmentant simultanément le nombre de secteurs logiques par cluster, de secteurs logiques réservés, de secteurs logiques totaux et de secteurs logiques par FAT du même facteur.

Parallèlement, sous MS-DOS/PC- DOS, l'augmentation de la capacité maximale des disques a été possible grâce à l'extension du nombre de partitions FAT au-delà des quatre initiales et au remplacement des « périphériques de blocs installables » par des partitions FAT natives DOS. Pour permettre l'utilisation d'un plus grand nombre de partitions FAT de manière compatible, un nouveau type de partition a été introduit dans PC- DOS 3.2 (1986) : la partition étendue (EBR) , qui contient une partition supplémentaire appelée lecteur logique . Depuis PC- DOS 3.3 (avril 1987), une autre partition étendue, optionnelle, contient le lecteur logique suivant , et ainsi de suite. Le MBR d'un disque dur peut définir jusqu'à quatre partitions primaires, ou une partition étendue en plus de trois partitions primaires au maximum.

FAT16 final

Compaq Personal Computer DOS 3.31 (une version OEM modifiée de MS-DOS 3.3 fournie par Compaq avec ses machines) a introduit ce que l'on appelle aujourd'hui le format FAT16 , avec l'extension du nombre de secteurs de disque de 16 bits à 32 bits dans le BPB. Bien que les modifications sur disque fussent mineures, l'intégralité du pilote de disque DOS a dû être convertie pour utiliser des numéros de secteur 32 bits, une tâche compliquée par le fait qu'il était écrit en langage assembleur 16 bits . Le résultat fut initialement appelé DOS 3.31 Large File System . L'outil de Microsoft0x06de BigFAT [ tandis que certaines versions plus anciennes FDISKle décrivaient comme BIGDOS . Techniquement, il est connu sous le nom de FAT16B .

Les anciennes versions de DOS n'étant pas conçues pour gérer plus de 65 535 secteurs, il a été nécessaire d'introduire un nouveau type de partition pour ce format afin de le masquer aux versions de DOS antérieures à la 3.31. La version originale de FAT16 (avec moins de 65 536 secteurs) utilisait un type de partition spécifique0x04 . Pour gérer les disques de plus grande capacité, un nouveau type 0x06a été introduit pour indiquer 65 536 secteurs ou plus. De plus, le pilote de disque a été étendu pour prendre en charge également plus de 65 535 secteurs. La seule autre différence entre le FAT16 original et le format FAT16B plus récent réside dans l'utilisation d'un format BPB plus récent avec une entrée de secteur sur 32 bits. Par conséquent, les systèmes d'exploitation récents compatibles avec le format FAT16B peuvent également gérer le format FAT16 original sans aucune modification.

Si des partitions destinées aux versions de DOS antérieures à la version 3.31 doivent être créées à l'aide d'outils modernes, les seuls critères théoriques à respecter sont un nombre de secteurs inférieur à 65 536 et l'utilisation de l'ancien identifiant de partition ( 0x04). En pratique, cependant, les partitions de type 0x01et 0x04primaires ne doivent pas être physiquement situées en dehors des 32 premiers Mo du disque, en raison d'autres limitations de MS-DOS 2.x, qui ne pourraient pas les gérer autrement.

En 1988, l'amélioration FAT16B s'est généralisée grâce à DR-DOS 3.31, PC -DOS 4.0, OS/2 1.1 et MS-DOS 4.0. La taille maximale des partitions était alors déterminée par le nombre de secteurs par cluster (valeur signée sur 8 bits ), initialement fixé à 64 (puissance de deux). Avec une taille de secteur standard de 512 octets sur disque dur, la taille maximale d'un cluster était de 32 Ko, ce qui fixait la limite « définitive » de la taille des partitions FAT16 à 2 Go pour des secteurs de 512 octets. Sur les supports magnéto-optiques , dont les secteurs peuvent faire 1 ou 2 Ko au lieu de 0,5 Ko, cette limite était proportionnellement plus élevée.

Bien plus tard, Windows NT a porté la taille maximale des clusters à 64 Ko en considérant le nombre de secteurs par cluster comme non signé. Cependant, le format résultant était incompatible avec toutes les autres implémentations FAT de l'époque et engendrait une fragmentation interne accrue . Windows 98 , SE et ME prenaient également en charge la lecture et l'écriture de cette variante, mais leurs utilitaires de disque ne fonctionnaient pas avec elle et certains services FCB n'étaient pas disponibles pour ces volumes. Ceci contribue à une situation de compatibilité complexe.

Avant 1995, les versions de DOS accédaient au disque uniquement via l'adressage CHS . Avec l'introduction de l'accès disque LBA dans Windows 95 (MS-DOS 7.0), les partitions pouvaient désormais être physiquement situées au-delà des 8 premiers Go environ du disque, et donc hors de portée du système d'adressage CHS traditionnel. Les partitions partiellement ou totalement situées au-delà de la barrière CHS devaient par conséquent être masquées aux systèmes d'exploitation non compatibles LBA en utilisant le nouveau type de partition dans la table de partitions. Les partitions FAT16 utilisant ce type sont également appelées FAT16X . La seule différence, par rapport aux partitions FAT16 précédentes, réside dans le fait que certaines entrées géométriques liées au CHS dans l'enregistrement BPB, à savoir le nombre de secteurs par piste et le nombre de têtes, peuvent être nulles ou erronées et ne doivent pas être utilisées.0x0E

Le nombre d'entrées du répertoire racine disponibles pour FAT12 et FAT16 est déterminé lors du formatage du volume et stocké dans un champ de 16 bits. Pour un nombre donné RDEet une taille de secteur donnée SS, le nombre RDSde secteurs du répertoire racine est RDS = ceil((RDE × 32) / SS), et RDEest généralement choisi pour remplir ces secteurs, c'est RDE × 32 = RDS × SS-à-dire . Les supports FAT12 et FAT16 utilisent généralement 512 entrées du répertoire racine sur les supports autres que les disquettes. Certains outils tiers, comme mkdosfs, permettent à l'utilisateur de définir ce paramètre.

FAT32

en mode réel de DOS de gérer le format, Microsoft a conçu une nouvelle version du système de fichiers, le FAT32 , qui prenait en charge un plus grand nombre de clusters possibles, mais pouvait réutiliser la majeure partie du code existant, de sorte que l' empreinte mémoire conventionnelle n'était augmentée que de moins de 5 Ko sous DOS. Les valeurs des clusters sont représentées par des nombres de 32 bits , dont 28 bits sont utilisés pour stocker le numéro du cluster.

Tailles maximales

Le secteur de démarrage FAT32 utilise un champ 32 bits pour le numéro de secteur, limitant la taille maximale d'un volume FAT32 à 2 téraoctets avec une taille de secteur de 512 octets . La taille maximale d'un volume FAT32 est de 16 To avec une taille de secteur de 4 096 octets. L'outil de formatage de disque intégré à l' interface Windows de Windows NT ne prend en charge que les volumes jusqu'à 32 Go, mais Windows permet la lecture et l'écriture sur des volumes FAT32 préexistants de plus grande taille. Ces volumes peuvent être créés via l' invite de commandes , PowerShell ou des outils tiers, ou en formatant le volume sur un système non-Windows ou sur un système Windows 9x compatible FAT32, puis en le transférant vers le système Windows NT. En août 2024, Microsoft a publié une mise à jour des versions préliminaires de Windows 11 permettant la création de partitions FAT32 jusqu'à 2 To.

La taille maximale autorisée pour un fichier sur un volume FAT32 est de 4 Go moins 1 octet, soit 4 294 967 295 ( 2³² − 1) octets. Cette limite découle de la longueur de fichier de 4 octets définie dans la table des répertoires et s'applique également aux partitions FAT16 de grande taille, rendues possibles par une taille de secteur suffisante.

Comme FAT12 et FAT16, FAT32 n'intègre pas de prise en charge directe des noms de fichiers longs, mais les volumes FAT32 peuvent éventuellement contenir des noms de fichiers longs VFAT en plus des noms de fichiers courts, exactement de la même manière que les noms de fichiers longs VFAT ont été implémentés en option pour les volumes FAT12 et FAT16.

Développement

Le système de fichiers FAT32 a été introduit avec Windows 95 OSR2 (MS-DOS 7.1) en 1996, mais un reformatage était nécessaire pour l'utiliser. DriveSpace 3 (la version fournie avec Windows 95 OSR2 et Windows 98 ) ne l'a jamais pris en charge. Windows 98 a introduit un utilitaire permettant de convertir les disques durs existants de FAT16 à FAT32 sans perte de données.

Dans la gamme Windows NT, la prise en charge native du système de fichiers FAT32 est apparue avec Windows 2000. Un pilote FAT32 gratuit pour Windows NT 4.0 était disponible auprès de Winternals , une société rachetée ultérieurement par Microsoft. Il n'est plus possible de se procurer ce pilote auprès des sources officielles. Depuis 1998, le pilote DRFAT32 de Caldera, chargeable dynamiquement , permettait d'activer la prise en charge du système de fichiers FAT32 sous DR-DOS. La première version de DR-DOS à prendre en charge nativement FAT32 et l'accès LBA était OEM DR-DOS 7.04 en 1999. La même année, IMS a introduit la prise en charge native de FAT32 avec REAL/32 7.90, et IBM 4690 OS a ajouté la prise en charge de FAT32 avec la version 2. Ahead Software a fourni un autre pilote FAT32.EXE chargeable dynamiquement pour DR-DOS 7.03 avec Nero Burning ROM en 2004. IBM a introduit la prise en charge native de FAT32 avec OEM PC DOS 7.1 en 1999.

Deux types de partitions sont réservés aux partitions FAT32 : FAT32 0x0Bet 0x0CFAT32X. Ce dernier type est également appelé FAT32X afin d’indiquer l’utilisation de l’accès disque LBA au lieu de CHS. Sur ces partitions, les entrées géométriques liées à CHS, à savoir les adresses de secteur CHS dans le MBR ainsi que le nombre de secteurs par piste et le nombre de têtes dans l’enregistrement EBPB, peuvent être nulles ou erronées et ne doivent pas être utilisées.

Extensions

attributs étendus

OS/2 dépend fortement des attributs étendus (AE) et les stocke dans un fichier caché nommé « » à la racine du volume FAT12 ou FAT16 . Ce fichier est indexé par deux octets préalablement réservés dans l' entrée de répertoire du fichier (ou du répertoire) à l'offset . Dans le format FAT32 , ces octets contiennent les 16 bits de poids fort du numéro de cluster de début du fichier ou du répertoire, ce qui rend impossible le stockage des AE OS/2 sur FAT32 par cette méthode.EADATA.SF0x14

Cependant, le pilote tiers FAT32.IFS (version 0.70 et supérieures) développé par Henk Kelder et Netlabs pour OS/2, eComStation et ArcaOS stocke les attributs étendus dans des fichiers supplémentaires. Ces fichiers voient leur nom complété par la chaîne « ». Le pilote utilise également l'octet situé à un certain décalage dans les entrées de répertoire pour stocker un octet de marque spécial indiquant la présence d'attributs étendus, ce qui contribue à accélérer les opérations. (Cette extension est incompatible avec la méthode FAT32+ pour stocker des fichiers de plus de 4 Go moins 1 sur des volumes FAT32.) EA.SF0x0C

Les attributs étendus sont accessibles via le bureau Workplace Shell , via des scripts REXX et de nombreux utilitaires système GUI et en ligne de commande (tels que 4OS2 ).

Pour assurer la compatibilité avec son sous-système OS/2 , Windows NT prend en charge la gestion des attributs étendus (EA) sur les systèmes de fichiers HPFS , NTFS , FAT12 et FAT16. Il stocke les EA sur FAT12, FAT16 et HPFS selon le même schéma que OS/2, mais ne prend pas en charge les autres types d' attributs de domaine (ADS) stockés sur les volumes NTFS. Toute tentative de copie d'un fichier contenant un ADS autre qu'un EA depuis un volume NTFS vers un volume FAT ou HPFS génère un message d'avertissement indiquant les noms des ADS qui seront perdus. La méthode FAT32.IFS de stockage des EA sur les volumes FAT32 n'est pas prise en charge.

Windows 2000 et versions ultérieures se comportent exactement comme Windows NT, à ceci près qu'ils ignorent les EA lors de la copie vers FAT32 sans aucun avertissement (mais affichent l'avertissement pour d'autres ADS, comme « Macintosh Finder Info » et « Macintosh Resource Fork »).

Cygwin utilise également des fichiers " ".EADATA.SF

Noms de fichiers longs

d'expérience utilisateur des concepteurs de Windows 95 était la possibilité d'utiliser des noms de fichiers longs (LFN, jusqu'à 255 unités de code UCS-2 ) , en plus des noms de fichiers classiques 8.3 (SFN). Pour assurer la compatibilité ascendante et descendante , les LFN ont été implémentés comme une extension optionnelle de la structure du système de fichiers FAT existant, grâce à une solution de contournement dans l'organisation des entrées de répertoire.

Cette méthode transparente de stockage de noms de fichiers longs dans les systèmes de fichiers FAT existants sans altérer leurs structures de données est généralement connue sous le nom de VFAT (pour « Virtual FAT ») d'après le pilote de périphérique virtuel de Windows 95.

Les systèmes d'exploitation non compatibles VFAT peuvent toujours accéder aux fichiers sous leur alias de nom de fichier court sans restriction ; cependant, les noms de fichiers longs associés peuvent être perdus lorsque des fichiers avec des noms de fichiers longs sont copiés sous des systèmes d'exploitation non compatibles VFAT.

Sous Windows NT, la prise en charge des noms de fichiers longs VFAT a commencé avec la version 3.5 .

Linux fournit un pilote de système de fichiers VFAT pour gérer les volumes FAT avec des noms de fichiers longs au format VFAT. Pendant un certain temps, un pilote UVFAT était disponible pour assurer la prise en charge combinée des permissions de type UMSDOS et des noms de fichiers longs VFAT.

Avant l'introduction de VFAT, OS/2 a ajouté la prise en charge des noms de fichiers longs à la FAT grâce aux attributs étendus (EA). Par conséquent, les noms de fichiers longs VFAT sont invisibles pour OS/2, et les noms de fichiers longs EA sont invisibles pour Windows ; de ce fait, les utilisateurs expérimentés des deux systèmes d'exploitation doivent renommer manuellement les fichiers.

Human68K prenait en charge jusqu'à 18,3 noms de fichiers et ( Shift JIS ) caractères Kanji dans une variante propriétaire du système de fichiers FAT.

Afin de prendre en charge les applications Java , le système d'exploitation IBM 4690 version 2, basé sur FlexOS , a introduit sa propre architecture de système de fichiers virtuel (VFS) pour stocker les noms de fichiers longs dans le système de fichiers FAT de manière rétrocompatible. Si cette option est activée, les noms de fichiers virtuels (VFN) sont accessibles via des lettres de lecteur logiques distinctes, tandis que les noms de fichiers réels (RFN) restent accessibles via les lettres de lecteur d'origine.

Fourches et flux de données alternatifs

les flux de données alternatifs (ADS), mais certains systèmes d'exploitation qui en dépendent fortement ont développé diverses méthodes pour les gérer sur les volumes FAT. Ces méthodes consistent soit à stocker les informations supplémentaires dans des fichiers et répertoires additionnels ( Mac OS et macOS classiques ), soit à attribuer une nouvelle sémantique à des champs auparavant inutilisés des structures de données FAT sur disque ( OS/2 et Windows NT ).

Sous macOS utilisant PC Exchange, les dates, attributs et noms de fichiers longs sont stockés dans un fichier caché nommé «FINDER.DAT », et les forks de ressources (un format ADS courant sous macOS) dans un sous-répertoire nommé «RESOURCE.FRK », dans chaque répertoire où ils sont utilisés. À partir de PC Exchange 2.1, les noms de fichiers longs sous macOS sont stockés au format FAT standard et les noms de fichiers FAT de plus de 31 caractères sont convertis en noms de fichiers uniques de 31 caractères, lisibles par les applications macOS.

macOS stocke les forks de ressources et les métadonnées (attributs de fichiers, autres ADS) au format AppleDouble dans un fichier caché dont le nom est construit à partir du nom de fichier du propriétaire préfixé par " ._", et le Finder stocke certaines métadonnées de dossiers et de fichiers dans un fichier caché appelé " .DS_Store" (mais notez que le Finder utilise .DS_Storemême sur le système de fichiers natif de macOS, HFS+ ).

Autorisations et noms de fichiers UMSDOS

UMSDOS , une variante de FAT dont les attributs de fichiers Unix (tels que les noms de fichiers longs et les permissions d'accès) étaient stockés dans un fichier séparé appelé «--linux-.--- ». UMSDOS est tombé en désuétude après la sortie de VFAT et n'est plus activé par défaut dans Linux à partir de la version 2.5.7. Pendant un certain temps, Linux a également proposé une prise en charge combinée des permissions de type UMSDOS et des noms de fichiers longs VFAT via UVFAT .

FAT+

En 2007, le projet de norme FAT+ proposait une méthode pour stocker des fichiers volumineux, jusqu'à 256 Go moins 1 octet (soit 274 877 906 943 octets, ou 2³⁸ − 1), sur des volumes FAT32 légèrement modifiés et par ailleurs rétrocompatibles . Cependant, cette approche présente le risque que les outils de disque ou les implémentations FAT32 ne prenant pas en charge cette extension tronquent ou suppriment les fichiers dépassant la limite de taille standard de FAT32. La prise en charge de FAT32+ et FAT16+ est limitée à certaines versions de DR-DOS et n'est pas disponible dans les systèmes d'exploitation courants . (Cette extension est incompatible avec l' /EASoption de la méthode FAT32.IFS permettant de stocker les attributs étendus OS/2 sur des volumes FAT32.)

Dérivés

Turbo FAT

système de fichiers NetWare ( NWFS ), Novell a implémenté une variante fortement modifiée du système de fichiers FAT pour le système d'exploitation NetWare . Pour les fichiers volumineux, il utilisait une fonctionnalité de performance appelée Turbo FAT .

FATX

FATX est une famille de systèmes de fichiers conçus pour les disques durs et les cartes mémoire de la console de jeux vidéo Xbox de Microsoft , introduits en 2001.

Bien que ressemblant aux mêmes idées de conception de base que FAT16 et FAT32 , les structures sur disque FATX16 et FATX32 sont simplifiées, mais fondamentalement incompatibles avec les systèmes de fichiers FAT16 et FAT32 normaux, ce qui rend impossible le montage de tels volumes par les pilotes de systèmes de fichiers FAT normaux.

Le secteur BPB classiques . Les clusters ont généralement une taille de 16 Ko et il n'existe qu'une seule copie de la FAT sur la Xbox. Les entrées de répertoire ont une taille de 64 octets au lieu des 32 octets habituels . Les noms de fichiers peuvent comporter jusqu'à 42 caractères (avec le jeu de caractères OEM) et atteindre une taille maximale de 4 Go moins 1 octet. Les horodatages sur disque contiennent les dates et heures de création, de modification et d'accès, mais diffèrent de ceux de la FAT : dans la FAT, l' époque est 1980 ; dans FATX, elle est 2000. Sur Xbox 360 , l'époque est 1980.

exFAT

Windows Embedded CE 6.0 en novembre 2006 et intégré à la famille Windows NT avec Vista Service Pack 1 et Windows XP Service Pack 3 (ou via l'installation séparée de la mise à jour KB955704 de Windows XP). Il s'inspire de l'architecture des tables d'allocation de fichiers (FAT), mais est incompatible avec celle-ci et protégé par des brevets.

exFAT est conçu pour les clés USB et les cartes mémoire telles que les SDXC et Memory Stick XC , où le format FAT32 est généralement utilisé. Les fabricants préformatent souvent les cartes SDXC avec ce format. Son principal avantage réside dans sa capacité à dépasser la limite de 4 Go pour la taille des fichiers : les références de taille de fichier sont stockées sur huit octets au lieu de quatre, ce qui porte la limite à 2⁶⁴ − 1 octets.

Les utilitaires de formatage en ligne de commande et via l'interface graphique de Microsoft le proposent comme alternative à NTFS (et, pour les partitions plus petites, à FAT16B et FAT32 ). Le type de partition MBR est identique à celui utilisé pour IFS , HPFS et NTFS. Les informations de géométrie logique, situées dans le VBR , sont stockées dans un format qui ne ressemble à aucun type BPB.0x07

Début 2010, le système de fichiers a été rétro-ingénierisé par le SANS Institute . Le 28 août 2019, Microsoft a publié la spécification technique d'exFAT afin qu'il puisse être utilisé dans le noyau Linux et d'autres systèmes d'exploitation.

Brevets

Au milieu des années 1990, Microsoft a déposé et obtenu une série de brevets pour des éléments clés du système de fichiers FAT. Ces quatre brevets concernent les extensions de noms de fichiers longs pour FAT, apparues pour la première fois dans Windows 95 : brevet américain 5 579 517 , brevet américain 5 745 902 et brevet américain 6 286 013 (tous expirés depuis 2013)

Le 3 décembre 2003, Microsoft a annoncé qu'elle proposerait des licences d'utilisation de sa spécification FAT et de la « propriété intellectuelle associée », moyennant une redevance d'OS/2 (expiré en 2011).

Défis et poursuites judiciaires

La Public Patent Foundation (PUBPAT) a soumis des preuves à l' Office américain des brevets et des marques (USPTO) en 2004, contestant la validité du brevet américain n° 5 579 517 , notamment des antériorités de Xerox et d'IBM . L'USPTO a ouvert une enquête et a conclu au rejet de toutes les revendications du brevet . L'année suivante, l'USPTO a annoncé, à l'issue d'un réexamen, avoir confirmé le rejet du brevet n° 517 et avoir également invalidé le brevet américain n° 5 758 352 au motif que ses cessionnaires étaient incorrects.

Toutefois, en 2006, l’USPTO a statué que les caractéristiques de l’implémentation par Microsoft du système FAT étaient « nouvelles et non évidentes », infirmant ainsi les deux décisions précédentes et maintenant la validité des brevets.

En février 2009, Microsoft a intenté une action en contrefaçon de brevet contre TomTom, l'accusant d'enfreindre des brevets relatifs aux noms de fichiers longs VFAT . Certains produits TomTom étant basés sur Linux , il s'agissait de la première tentative de Microsoft pour faire valoir ses brevets contre cette plateforme. L'affaire s'est réglée à l'amiable le mois suivant : Microsoft aurait accès à quatre brevets de TomTom, TomTom s'engagerait à ne plus prendre en charge les noms de fichiers longs VFAT dans ses produits et, en contrepartie, Microsoft renoncerait à toute action en justice contre TomTom pendant les cinq ans que durerait l'accord.

En octobre 2010, Microsoft a intenté une action en contrefaçon de brevets contre Motorola , alléguant que plusieurs brevets (dont deux brevets VFAT) n'avaient pas fait l'objet d'une licence d'utilisation dans le système d'exploitation Android . Microsoft a également déposé une plainte auprès de l' ITC . Des développeurs de logiciels libres ont conçu des méthodes visant à contourner les brevets de Microsoft.

En 2013, le brevet EP0618540 « espace de noms commun pour les noms de fichiers longs et courts » (expiré depuis 2014 ) a été invalidé en Allemagne. Après le retrait du recours, ce jugement est devenu définitif le 28 octobre 2015.