C'est étonnant, le thème ne revient finalement pas si fréquemment ...
Voilà un
premier fil qui apportait quelques éléments. L'argument fondamental, lié à la façon dont les systèmes de fichiers du monde Linux sont gérés (ext2/3 dans le cas d'espèce mais on peut étendre à d'autres FS tels que ZFS, XFS, JFS; Reiser FS doit être traité un peu séparemment mais cela ne change rien à la démo) est schématiquement expliqué dans le
papier suivant. On y revient en cas de nécessité mais l'explication est assez claire.
J'ajoute la traduction du passage essentiel de l'explication:
Windows tente de placer fichiers aussi près que possible du début du disque dur et cela fragmente constamment les fichiers quand ils croissent en taille et qu'il n'y a pas d'espace disponible (NdT: de façon contigue). Linux (NdT: il faut lire en fait les systèmes de fichiers propres à Linux, ext2/3, Reiser FS, ... On rappellera que Linux a mis en place une architecture, avec le
Virtual Files System, qui permet de supporter plusieurs FS, dont FAT) distribue les fichiers sur toute la surface du disque et dès lors, de l'espace est disponible [NdT: de façon contiguë] en cas de changements de taille des fichiers. Linux ré arrange par ailleurs les fichiers à la volée quand de l'espace est disponible... La fragmentation devient dès lors un problème pour Linux quand un disque est tellement rempli qu'il n'y a plus de marge pour permettre à un fichier d'être écrit sans être éclaté. Tout le temps qu'un disque est utilisé à moins de 80%, il est peu probable que cela survienne.
Windows tries to put all files as close to the start of the hard drive as it can, thus it constantly fragments files when they grow larger and there's no free space available. Linux scatters files all over the disk so there's plenty of free space if the file's size changes. It also re-arranges files on-the-fly, since it has plenty of empty space to shuffle around. Defragging a Windows filesystem is a more intensive process and not really practical to run during normal use. Fragmentation thus only becomes an issue on Linux when a disk is so full that there just aren't any gaps a large file can be put into without splitting it up. So long as the disk is less than about 80% full, this is unlikely to happen.