Il faut toujours citer ses sources, toi, d'où tires tu cette expérience ou ce savoir?
1) La spécification FAT de Microsoft.
http://www.microsoft.com/whdc/system/pl ... atgen.mspx
Page 46
Similarly, a FAT file system driver must not allow a directory (a file that is actually a container for other files) to be larger than 65,536 * 32 (2,097,152) bytes.
Si c'est des noms courts, ça fait une limite à 65536 fichiers. Avec des noms assez longs, ça peut faire deux ou trois fois moins. Même avec que des noms de 255 caractères, ça fait seulement 21 blocs de 32 octets par fichier, soit 3120 fichiers.
Si tu lis le reste, tu verras qu'un nom long fait 32 octets pour le nom court + 32 octets pour 13 caractères.
2) Mon expérience avec des systèmes FAT sous Windows 98 SE et GNU/Linux.
Mon bon vieux Windows 98 SE a un répertoire C:\WINDOWS\SYSTEM contenant 1692 fichiers sur une partition FAT32.
J'ai aussi un répertoire cache4 d'Opéra avec 1115 fichiers.
Pour ce qui est de la limite à 32 Go, j'ai déja formatté un lecteur de 80 Go avec le programme de formattage de Windows 98 SE (MS-DOS 7.10).
Je n'ai jamais essayé le programme de formattage sous Windows XP, par contre cet article de la base de conaissances de Microsoft décrit cette limite arbitraire et précise qu'elle ne s'applique qu'à l'outil de formattage et non pas à l'OS.
http://support.microsoft.com/kb/314463
J'ai néanmoins utilisé sous Windows XP, un disque dur externe, en USB 2.0, de 200 Go, formatté en une partition FAT32 par le programme de formattage de Windows 98 SE.
Je ne peux te donner de preuve de ma bonne foi. Si tu es scientifique, tu peux essayer toi même. On peut trouver des licences Windows 98 SE pour prèsque rien sur eBay.
Pour ce qui est de la limite à 128 Go, il y a la spécification ATA-5
http://www.t10.org/t13/project/d1321r3-ATA-ATAPI-5.pdf
Elle spécifie deux moyens d'adressage CHS et LBA.
Les deux sont limités à 28 bits en tout.
Voir page 19 et page 137.
3*8 bits + 4 bits = 28 bits.
2^28*512 octets = 128 gibioctets (137 Go).
ATA-6 supporte LBA-48, et donc les lecteurs beaucoup beaucoup plus gros.
Les limitations des DD sont aussi informellement documentées sur pcguide.com.
http://www.pcguide.com/ref/hdd/bios/size.htm
http://www.pcguide.com/ref/hdd/bios/sizeGB128-c.html
Ou ici:
http://www.allensmith.net/Storage/HDDlimit/Limits.htm
Enfin, j'ai formatté des lecteurs FAT de plus de 128 Go sans problème (quasiment 1 To pour les plus gros).
Il est néammoins possible que certaines machines dont le BIOS est limité à 128 Go, n'accepte pas, avec le fdisk de Windows 98/Me, de créer des partitions au delà de 128 Go, mais, au quel cas, la limite s'applique à tous les systèmes de fichiers, y compris NTFS.
http://support.microsoft.com/kb/327202
Quel est ton background?
Je connais bien le C++, le C, que j'ai principalement étudié dans n1124.pdf, et l'assembleur x86 16 bits et 32 bits. Je connais les bases de la micro-optimisation assembleur pour Pentium (avec les U et V pipes et les instructions pairables, prédiction de sauts et profondeur de pipelines) et pour K6-2 (avec le manuel d'optimisation d'AMD).
Pour ce qui est de FAT, j'ai lu des descriptions générales ainsi que les spécifications de Microsoft.
Je connais aussi ext2 assez bien.
J'ai lu une partie spécification ATA et ce document:
http://www.geocities.com/siliconvalley/2072/atapi.htm
Afin d'écrire un court programme assembleur qui désactive l'APM du DD IC25N080ATMR04-0 de mon ordinateur portable au démarrage de Windows 98 SE.
Je connais bien, car je les ai vécues, les limitations à 528 Mo, 2 Go, 4 Go et 8 Go des disques durs, liées à l'adressage CHS de l'ATA et du BIOS.