Désolé de vous contredire Homer_gi... l'algorithme d'allocation est codé séparément pour les différents système de fichiers. Il suffit de se plonger dans le code pour le voir (fonction fat_alloc_clusters spécifique pour la FAT par exemple). Linux peut donc gérer plus ou moins bien la fragmentation de différents systèmes de fichiers....
Mais je suis d'accord sur un point : c'est bien le système d'exploitation qui fait l'allocation.
Cependant, certains systèmes de fichiers ont des caractéristiques qui facilitent une meilleure gestion. Ainsi, avec les systèmes de fichiers usuels sous UNIX (FFS BSD, ext2, reiserfs...), le système de fichier est divisé en groupes de blocks et chaque répertoire est associé à une zone afin 1/ de localiser des fichiers qui sont susceptibles d'être lu ensemble, et 2/ de répartir les espaces libres sur les disques pour favoriser des allocation de fichier pas trop loin lorsqu'un fichier doit être agrandi.
En théorie, rien n'interdit d'implémenter un système de fichier FAT qui considérerait un volume FAT comme divisé en groupe de blocks. Mais comme le principe n'est pas normalisé, cela ne fonctionnerait pas de façon optimal en cas d'échanges entre 2 systèmes : l'implémentation "optimisée" se trouverait pénalisée par le placement de répertoire systèmatiquement dans les premières zones. De plus, je ne pense pas que les développeurs soit forcément motivés pour porter sur le système de fichier FAT, les optimisations Linux... vu l'usage de ce système de fichier, il est préférable de le maintenir simple et fiable.


