IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

BigFAT, extension FAT libre et ouverte, rétrocompatible pour une taille de fichier illimitée,
La limite théorique pour exFAT, système de fichiers propriétaire conçu par Microsoft, est de 2^64 octets

Le , par Bruno

2PARTAGES

19  0 
FAT (abréviation de File Allocation Table) est probablement le système de fichiers le plus utilisé. Malheureusement, le format FAT présente une limitation importante : un support de stockage formaté en FAT ne peut contenir que des fichiers inférieurs à 4 Go, ce qui peut être une limitation pour certains types de données, comme les films, les bases de données ou les conteneurs HD virtuels. BigFAT SEGGER est une spécification qui définit la manière de stocker des fichiers volumineux dépassant largement 1 To sur n'importe quel disque formaté en FAT.

Les systèmes FAT ordinaires considèrent les gros fichiers comme des fichiers multiples, qu'ils peuvent lire, écrire et copier. Introduit en 1977 par Microsoft pour les disquettes, FAT a été amélioré plusieurs fois, passant de la FAT12 à la FAT16, FAT32, puis à exFAT (extensible File Allocation Table). Il a également été étendu à d'autres égards, comme l'ajout de la prise en charge des noms de fichiers longs, tout en maintenant généralement une compatibilité descendante. La FAT est probablement le choix de format le plus populaire pour les supports amovibles, tels que les cartes SD, les clés USB, car elle est prise en charge par tous les systèmes d'exploitation et les périphériques intégrés.


Avec exFAT, la taille des fichiers est limitée à moins de 4 Go. BigFAT résout ce problème en définissant comment diviser un fichier de 4 Go ou plus en morceaux et comment nommer ces morceaux. Les fichiers inférieurs à 4 Go sont stockés de la même manière, de sorte que seuls les gros fichiers sont stockés sous forme de fichiers multiples. Comme dit précédemment, BigFAT est une spécification libre et ouverte permettant le stockage de fichiers de plus de 4 Go sur des disques durs formatés en FAT, tout en maintenant une compatibilité totale avec la FAT.

La spécification de BigFAT est entièrement ouverte au public. Tout le monde est invité à ajouter le support de BigFAT à son logiciel. Aucun frais de licence ni aucune autorisation d'aucune sorte ne sont nécessaires. Quiconque souhaite l'implémenter ou rendre quelque chose compatible est libre de le faire. Le convertisseur BigFAT est un programme en ligne de commande gratuit, accessible sous Windows, macOS ou Linux.

Segger Microcontroller, fondée en 1992, est une entreprise privée impliquée dans l'industrie des systèmes embarqués. Elle fournit des produits utilisés pour le développement et la fabrication de quatre catégories de systèmes embarqués : systèmes d'exploitation en temps réel (RTOS) et bibliothèques logicielles (middleware), sondes de débogage et de traçage, outils de programmation (environnement de développement intégré (IDE), compilateur, éditeur de liens) et programmateurs in-system (ligne de produits Flasher). Le siège de la société est situé à Monheim am Rhein, en Allemagne, avec des bureaux distants à Gardner, dans le Massachusetts, à Milpitas, en Californie, et à Shanghai, en Chine.

ExFAT de Microsoft

NTFS (de l’anglais New Technology File System) est le successeur du FAT. NTFS dispose de nombreuses améliorations techniques par rapport à FAT et HPFS (High Performance File System), comme un support amélioré des métadonnées, l’usage de structures de données avancées pour améliorer les performances, la fiabilité et l’utilisation de l’espace disque, ainsi que des extensions supplémentaires telles que la journalisation du système de fichiers et la liste de contrôle d’accès (ACL).

La norme exFAT a été introduite par Microsoft en 2006. Bien qu'elle soit censée être « optimisée pour les mémoires flash telles que les lecteurs flash USB et les cartes SD, l'une des principales raisons de son introduction était probablement d'ordre commercial, écrit SEGGER. Tous les brevets sur la FAT ont expiré, ce qui signifie que Microsoft ne contrôle plus la technologie et ne peut plus facturer de frais de licence pour la FAT. »

Avec exFAT cependant, la situation est différente : Microsoft possède plusieurs brevets et quiconque met en œuvre ou utilise la technologie exFAT doit obtenir l'autorisation de Microsoft, ce qui implique généralement le paiement de droits à Microsoft.

exFAT a été adopté par la SD Association (une organisation à but non lucratif qui définit des normes de cartes mémoire destinées à simplifier l'utilisation et à optimiser les performances des appareils électroniques grand public) comme système de fichiers par défaut pour les cartes SDXC de plus de 32 Go. De l’avis de SEGGER, cela n'aurait jamais dû se produire, car cela oblige quiconque veut accéder aux cartes SDXC à obtenir une licence de Microsoft, ce qui en fait un domaine appartenant à Microsoft. Toutefois, notons que la carte SD ou SDXC peut être reformatée avec le système de fichiers FAT gratuit.

exFAT a trois objectifs de conception centraux :

  • Conserver la simplicité des systèmes de fichiers basés sur la FAT : deux des points forts des systèmes de fichiers basés sur la FAT sont leur simplicité relative et leur facilité de mise en œuvre. Dans l'esprit de ses prédécesseurs, les utilisateurs devraient trouver exFAT relativement simple et facile à mettre en œuvre ;
  • Permettre des fichiers et des périphériques de stockage très volumineux : le système de fichiers exFAT utilise 64 bits pour décrire la taille des fichiers, ce qui permet aux applications qui dépendent de très gros fichiers de fonctionner. Le système de fichiers exFAT autorise également des clusters de 32 Mo, ce qui permet d'utiliser des périphériques de stockage de très grande taille ;
  • Incorporer l'extensibilité pour l'innovation future : le système de fichiers exFAT intègre l'extensibilité dans sa conception, ce qui permet au système de fichiers de suivre le rythme des innovations en matière de stockage et des changements d'utilisation.

Toutefois, exFAT présente quelques inconvénients. Lorsque l'exFAT doit être utilisé sur un ordinateur équipé d'un ancien système d'exploitation, une mise à jour doit être installée. Sinon, le format ne sera pas pris en charge. Windows Vista ne peut fonctionner avec exFAT qu'après l'installation du Service Pack 1 ou du Service Pack 2.

Avec des applications exigeantes, exFAT rencontre souvent des problèmes, quel que soit le système d'exploitation ou la plateforme. Le disque dur ou le support de stockage n'est pas toujours détecté au départ et il faut parfois plusieurs tentatives pour transférer correctement les données.

Étant donné que le système exFAT ne stocke pas de manière redondante les données de base, les supports de stockage dotés du système de fichiers exFAT doivent toujours être retirés avec précaution. Dans le cas contraire, des données peuvent être perdues et ces données ne peuvent être récupérées qu'après une récupération de données coûteuse dans certaines circonstances.

L'absence de prise en charge de la compression fait également de l'exFAT un choix inapproprié pour certaines applications. Par conséquent, si vous travaillez uniquement sous Windows et que l'échange de données entre plateformes n'est pas important pour votre travail, NTFS reste la meilleure option, d'autant plus que l'ancien système est plus rapide.

Sources : Segger, Microsoft

Et vous ?

« Microsoft possède plusieurs brevets sur exFAT et quiconque met en œuvre ou utilise cette technologie doit obtenir l'autorisation de Microsoft, ce qui implique généralement le paiement de droits à Microsoft », écrit SEGGER. Cet argument est il suffisant pour adopter BigFAT en lieu et place d'exFAT ?

Que pensez-vous du système de fichier BigFAT ?

Êtes-vous pour ou contre son adoption comme une nouvelle norme ouverte ?

Quel est votre système de fichier de préférence ?

Voir aussi :

Les développeurs Linux corrigent les failles de sécurité plus rapidement qu'Apple, Google ou même Microsoft, selon un rapport du Google Project Zero

Intel acquiert Linutronix, ce qui reflète son engagement à soutenir le noyau Linux et, plus largement, la communauté Linux

Microsoft dit que Windows requiert à minima 8 h de connexion à ses serveurs pour la réussite des mises à jour et suscite la comparaison avec Linux qui « l'emporte sur Windows » sur ce critère

Le remplacement de GNU Coreutils par Rust progresse et certains binaires sont maintenant plus rapides, selon le développeur principal du projet

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 09/09/2022 à 8:49
Avant de parler de BigFAT, de ExFAT, je vais vous parler de FAT.

FS que j'ai toujours connu., limite aussi vieux que moi. C'est un standard, facile à implémenter.
En utilisant un ordinateur pas trop vieux, vous l'utilisez tous, la partition de boot UEFI étant au format FAT32.

Par contre il résiste mal aux pannes, fragmente beaucoup (bien que cela soit contournable avec une bonne implémentation) et est limité à des fichiers de 4Go

ExFAT corrige en partie les limites de FAT, avec la gestion d'ACL, une bitmap pour l’espace occupé, le transaction-safe FAT.

Pour le BigFAT, l'idée est bonne, mais je ne pense pas que ça va percer.
2  0 
Avatar de calvaire
Expert éminent https://www.developpez.com
Le 09/09/2022 à 8:51
un support de stockage formaté en FAT ne peut contenir que des fichiers inférieurs à 4 Go
c'est plus précisément fat32 qui a cette limitation, fat16 (windows 95) avait une limitation à 2go
et FAT12 (inclus dans la 1ere version de msdos) qui avait une limitation de 16mo

Quand à bigfat ce sera comme les 50 autres fs dispo sous linux que personne n'utilise a part des niches, je veux dire jamais windows, les os d'apple ne le supporterons, et android peut être un jour mais n'ayons pas trop d'espoir.
Meme sous linux beaucoup de fs sont tres peu utilisé (voir abandonné du kernel par certain).

mes clés et disque dur usb sont très souvent en ntfs car je peut les lire un peu près partous, meme sur de vieux pc. C'est pour moi le fs le plus "universelle". Mème si on est bien d'accord c'est loin d’être le meilleur, surtout pour cette usage.
2  0 
Avatar de Steinvikel
Membre expert https://www.developpez.com
Le 09/09/2022 à 13:23
L'article est une traduction de la source, j'en remercie Bruno pour l'apporter en français.
Après avoir parcouru la source, l'esprit du billet est d'opposer toute les techno de systèmes de fichiers FAT dont les brevets ont expirés à la techno exFAT qui restera "fermée" encore de nombreuses années. Et c'est dans cette optique que l'auteur propose BigFAT.
L'auteur pointe FAT en tant que famille, mais sans souligner cette nuance... ce que l'on peut comprendre puisque adressé uniquement à des initiés du sujet.

Pour rappel, avantages de exFAT vs. FAT32 :
- la limite théorique de la taille d'un fichier exFAT est de 264 octets (16 Eio), à comparer aux 232 (4 Gio) de la FAT32
- de plus gros volumes (jusqu'à 64 Zio) alors que FAT32 était limité à des volumes dont la taille devait se situer entre 256 Mio et 8 Tio
- taille de cluster maximale de 2255 octets, bien que les implémentations actuelles la limitent à 32 Mio ; à comparer avec les 64 kio maximum en pratique de FAT32 sous Windows (mais la limite théorique est supérieure)
- performance de l’allocation d’espace libre améliorée grâce à l’introduction de bitmap d’espace libre, sorte de carte logicielle de l’espace libre comme s'il existait une carte de l’espace occupé par les fichiers, ceci permettant de trouver plus facilement un espace libre en fonction de la taille des fichiers à écrire et également plus rapide à l'effacement de ceux-ci
- possibilité de stocker plus de 216 fichiers par répertoire
- Access Control List
- utilisation du transaction-safe FAT (TFAT) file system ou système de fichiers à transactions (modifications) sécurisées de la table d’allocation des fichiers (fonctionnalité optionnelle introduite dans WinCE). En résumé, les métadonnées de la TFAT sont protégés contre les interruptions survenant lors de la modification d’un fichier en ne sauvegardant les modifications que si celles-ci arrivent à leur terme (particulièrement utile dans le cas de supports de stockage amovibles pouvant être retirés à tout moment).
- possibilité de stocker des paramètres OEM spécifiques dans les métadonnées
- utilisation de sommes de contrôle des noms de fichiers (name hashes) pour une vérification plus rapide de ceux-ci

En revanche :
- La prise en charge est limitée ou inexistante pour les supports antérieurs à 2010 en dehors des ordinateurs
- Tous les systèmes de sauvegarde qui nécessitent des commandes shell (telles que cp -aRl ou chmod -Ra+w) ont du mal à fonctionner avec des disques au format exFAT

Que pensez-vous du système de fichier BigFAT ?
Pas grand chose... la présentation dit simplement que exFAT est sous brevet, et que BigFAT permet d'apporter des améliorations à la version précédente de FAT.
Le problème étant que rien n'est mentionné quand aux hypothétiques concessions opérées, ni de rapprochement directes avec les implémentations offertes également présentes dans exFAT.

« Microsoft possède plusieurs brevets sur exFAT et quiconque met en œuvre ou utilise cette technologie doit obtenir l'autorisation de Microsoft, ce qui implique généralement le paiement de droits à Microsoft », écrit SEGGER.
Cet argument est il suffisant pour adopter BigFAT en lieu et place d'exFAT ?
Pas pour l'utilisateur final. En revanche on se rappellera d'une poursuite de Microsoft contre un éditeur de GPS pour avoir utilisé FAT32 en écriture (sous brevet à l'époque) afin d'exploiter le l'outil. Et donc pour de la conception logicielle... non plus, les critères techniques priment !

Êtes-vous pour ou contre son adoption comme une nouvelle norme ouverte ?
Pour si c'est une option par défaut pour les systèmes non dépendant d'un FS Apple ou Microsoft, et SI BigFAT apporte une réelle amélioration en terme de fiabilité pour les pertes de données et interruptions >> concernant les support mobiles de type flash ou non (ex : HDD externe)

Quel est votre système de fichier de préférence ?
J'ai conseillé à la plupart de mes petits client indépendants, auto-entrepreneurs, artisans... de s'appuyer sur une sauvegarde intégrale et continue de leur données externalisé, et de s'appuyer (pour leur extension de stockage et stockage mobile) sur du exFAT en environnement mixte et même sur du Windows only, parce qu'il n'ont plus d'alerte à gérer sur des problèmes de droits de fichier et d'erreurs de propriétaires (cas classique après migration d'un ancien PC sous NTFS).
Le seul message qu'ils rencontrent étant du genre "le système de fichiers ne gère pas toutes les méta-données, voulez-vous poursuivre ?".
Depuis lors aucun n'a plus été bloqué pour gérer ses données, tout néophyte qu'il soit.
1  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 09/09/2022 à 13:23
Personnellement, je fais de la sauvegarde longue durée sur des cartes SD que je mets en lecture seule une fois remplie.
Je veux un système de fichier simple donc elles sont formatées en Fat32 majoritairement et en exFAT quand j'ai des fichiers de plus de 4GB.
Quand je sauvegarde des vidéos, j'utilise ce format car je n'ai pas à écrire souvent sur le support et je n'ai pas besoin non plus de gérer des droits.

BigFAT n'est pas assez répandu pour que je m'y intéresse pour le moment.
1  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 09/09/2022 à 15:29
exFAT devient un standard, dispo en natif sur Windows et MacOS. dispo aussi sous Linux bien que jamais utilisé, je ne sais pas si c'est installé en natif sur les dernières distros, il faudrait vérifier.

Je ne sais pas si les implémentations hors Windows prennent en compte les ACL et la fonction transaction-safe FAT, mais un disque exFAT pourra être utilisé sur n'importe quelle machine moderne. Pour ce qui est appareils comme les téléviseurs, les box, je ne sais pas si exFAT est relativement répandu. Pas sûr.

Je ne me vois pas utiliser au quotidien un FS qui n'est pas un standard.
1  0 
Avatar de Jipété
Expert éminent sénior https://www.developpez.com
Le 09/09/2022 à 20:16
Citation Envoyé par chrtophe Voir le message
je ne sais pas si c'est installé en natif sur les dernières distros, il faudrait vérifier.
Dispo mais pas installé, faut trifouiller dans la config du noyau, dans mes Debian. C'est peut-être autre chose ailleurs...

Les paquets sont connus de synaptic mais non installés dans une distro downloadée pour créer une machine virtuelle.

Dans ma machine physique, une interrogation sur exfat dans make menuconfig remonte ça :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  │ Symbol: EXFAT_DEFAULT_IOCHARSET [=utf8]
  │ Type  : string
  │ Defined at fs/exfat/Kconfig:13
  │   Prompt: Default iocharset for exFAT
  │   Depends on: BLOCK [=y] && EXFAT_FS [=m]
  │   Location:
  │     -> File systems
  │       -> DOS/FAT/EXFAT/NT Filesystems
  │ (1)     -> exFAT filesystem support (EXFAT_FS [=m])
  │ 
  │ Symbol: EXFAT_FS [=m]
  │ Type  : tristate
  │ Defined at fs/exfat/Kconfig:3
  │   Prompt: exFAT filesystem support
  │   Depends on: BLOCK [=y]
  │   Location:
  │     -> File systems
  │ (2)   -> DOS/FAT/EXFAT/NT Filesystems
  │ Selects: NLS [=y]
Ce [y] ci-dessus doit être de mon fait.

En tout état de cause, le make menuconfig propose, à la section File systems, une ligne notée DOS/FAT/EXFAT/NT Filesystems --->, donc la chose est connue.
En allant y voir, on y trouve deux lignes :
Code : Sélectionner tout
1
2
<M> exFAT filesystem support
(utf8) Default iocharset for exFAT
Voilà ce que je peux en dire.
1  0