Aller au contenu

Berkeley Fast File System

Un article de Wikipédia, l'encyclopédie libre.


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

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.

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].

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

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].

Liens externes

[modifier | modifier le code]

Notes et références

[modifier | modifier le code]
  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 )