Berkeley Fast File System


Le Berkeley Fast File System (FFS), également connu sous le nom de BSD Fast File System ou Unix File System (UFS), est un système de fichiers développé au début des années 1980 par le Computer Systems Research Group (en) (CSRG) de l'Université de Californie à Berkeley. C'est une optimisation du système de fichiers utilisé par les System V Unix, appelé FS, qui a évolué en Unix File System, et qui est utilisé par de nombreux dérivés d'Unix aujourd'hui.

Berkeley Fast File System
Structure
Contenu des répertoires Hiérarchique

Il a été introduit avec la version 4.2BSD du système d'exploitation Unix en 1983, en tant qu'amélioration significative du système de fichiers Unix original, visant à optimiser les performances, la fiabilité et la gestion de l'espace disque[1].

Historique

modifier

Avant l'introduction du FFS, les systèmes Unix utilisaient un système de fichiers simple, conçu pour les disques de petite capacité. Avec l'augmentation de la taille des disques et des besoins en performances, ce système montrait des limitations, notamment en termes de fragmentation et de lenteur d'accès aux données. Le FFS a été conçu pour remédier à ces problèmes en introduisant des innovations telles que les groupes de cylindres et l'optimisation de l'allocation des blocs[1].

Caractéristiques techniques

modifier

Le FFS introduit plusieurs améliorations par rapport au système de fichiers Unix original :

  • Groupes de cylindres : le disque est divisé en groupes de cylindres, chacun contenant ses propres inodes, blocs de données et informations de gestion. Cela permet de localiser physiquement les fichiers et leurs métadonnées proches les uns des autres, réduisant ainsi les déplacements des têtes de lecture et améliorant les performances[1].
  • Taille de bloc augmentée : la taille des blocs a été augmentée de 512 octets à 4096 ou 8192 octets, ce qui améliore le débit de lecture/écriture pour les fichiers de grande taille[1].
  • Fragments de blocs : pour éviter le gaspillage d'espace avec de petits fichiers, le FFS introduit la notion de fragments, permettant de stocker plusieurs petits fichiers dans un seul bloc[1].
  • Allocation optimisée : l'algorithme d'allocation des blocs prend en compte la géométrie du disque pour minimiser la fragmentation et maximiser les performances[1].

Évolutions

modifier

Au fil du temps, le FFS a évolué pour inclure de nouvelles fonctionnalités :

  • UFS2 : une version améliorée introduite avec FreeBSD 5.0, supportant des fichiers et des systèmes de fichiers de plus grande taille, ainsi que des extensions pour la journalisation[2].
  • Soft Updates : une technique pour améliorer la cohérence du système de fichiers sans recourir à la journalisation traditionnelle, réduisant ainsi les risques de corruption en cas de panne[3].

Implémentations et utilisation

modifier

Le FFS a été largement adopté dans de nombreux systèmes d'exploitation de type Unix :

  • BSD : utilisé par défaut dans FreeBSD, NetBSD, OpenBSD et leurs dérivés.
  • Solaris : implémenté sous le nom de UFS avec des extensions spécifiques, notamment la journalisation.
  • HP-UX et Tru64 UNIX : adoptent des variantes du FFS adaptées à leurs besoins.
  • macOS : les premières versions utilisaient UFS comme alternative à HFS+, bien que ce ne soit plus le cas dans les versions récentes.
  • Linux : supporte la lecture (et parfois l'écriture) des systèmes de fichiers UFS pour des raisons de compatibilité, bien que ce ne soit pas le système de fichiers natif.

Héritage et influence

modifier

Le FFS a influencé la conception de nombreux systèmes de fichiers modernes. Par exemple, le système de fichiers ext2 de Linux s'inspire directement des concepts introduits par le FFS, tels que les groupes de blocs et l'allocation optimisée[4].

Voir aussi

modifier

Liens externes

modifier

Notes et références

modifier
  1. a b c d e et f (en) Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler et Robert S. Fabry, « A Fast File System for UNIX », ACM Transactions on Computer Systems, (DOI 10.1145/989.990), p. 181–197
  2. (en) « BSD Fast File System », sur Computer History Wiki (consulté le )
  3. (en) Marshall Kirk McKusick, « Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem », sur USENIX (consulté le )
  4. (en) « The Berkeley Fast File System », sur Advanced Operating Systems, University of New South Wales (consulté le )