Article de reference

Système de fichiers

En informatique , un système de fichiers ( souvent abrégé en SF ) régit l'organisation et l'accès aux fichiers . Un système de fichiers système d'exploitation qui prend en charg...

En informatique , un système de fichiers ( souvent abrégé en SF ) régit l'organisation et l'accès aux fichiers . Un système de fichiers système d'exploitation qui prend en charge les applications exécutées sur le même ordinateur . Un système de fichiers protocole qui permet l'accès aux fichiers entre ordinateurs en réseau .

Un système de fichiers fournit un service de stockage de données permettant aux applications de partager un espace de stockage de masse . Sans système de fichiers, les applications pourraient accéder au stockage de manière incompatible , ce qui entraînerait des conflits de ressources , une corruption et une perte de données .

Il existe de nombreuses conceptions et implémentations de systèmes de fichiers Un système de fichiers fichiers virtuels (par exemple ceux fournis par procfs et sysfs ), soit mappés sur un autre support de stockage.

Étymologie

Vers , avant l'avènement des ordinateurs, les termes « système de fichiers » , « système de classement » et « système d'archivage » étaient utilisés pour décrire les méthodes d'organisation, de stockage et de récupération des documents papier. Dès 1961, le terme « système de fichiers » était appliqué au classement informatisé, en plus de son sens initial. En 1964, son usage était général.

Architecture

L'architecture d'un système de fichiers local peut être décrite comme des couches d'abstraction, même si une conception particulière de système de fichiers peut ne pas séparer réellement les concepts.

La couche logique du système de fichiers offre un accès de haut niveau via une interface de programmation (API) pour les opérations sur les fichiers, notamment l'ouverture, la fermeture, la lecture et l'écriture

Un nom de fichier , ou nom_de_fichier , identifie un fichier pour les applications qui le consomment et, dans certains cas, pour les utilisateurs.

Un nom de fichier est unique afin qu'une application puisse faire référence à un seul fichier par son nom. Si le système de fichiers prend en charge les répertoires, l'unicité des noms de fichiers est généralement assurée au sein de chaque répertoire. Autrement dit, un espace de stockage peut contenir plusieurs fichiers portant le même nom, mais pas nécessairement dans le même répertoire.

La plupart des systèmes de fichiers limitent la longueur des noms de fichiers.

Certains systèmes de fichiers tiennent compte de la casse dans la dénomination des fichiers , tandis que d'autres ne la prennent pas en compte. Par exemple, les noms « fichier » MYFILEet «myfile fichier » correspondent au même fichier pour un système insensible à la casse, mais à des fichiers différents pour un système sensible à la casse.

La plupart des systèmes de fichiers modernes autorisent l'utilisation d'une large gamme de caractères Unicode dans les noms de fichiers . Certains restreignent toutefois certains caractères, notamment ceux utilisés pour indiquer des attributs spécifiques tels qu'un périphérique, son type, un préfixe de répertoire, un séparateur de chemin ou le type de fichier.

Annuaires

Outre les données (le contenu du fichier), un système de fichiers gère également les métadonnées associées , qui peuvent inclure, sans s'y limiter :

Un système de fichiers stocke les métadonnées associées séparément du contenu du fichier.

La plupart des systèmes de fichiers stockent les noms de tous les fichiers d'un répertoire dans un seul et même endroit : la table de répertoires de ce répertoire, souvent stockée comme n'importe quel autre fichier. De nombreux systèmes de fichiers ne placent qu'une partie des métadonnées d'un fichier dans la table de répertoires, le reste étant stocké dans une structure complètement distincte, telle que l' inode .

La plupart des systèmes de fichiers stockent également des métadonnées non associées à un fichier particulier. Ces métadonnées comprennent des informations sur les zones inutilisées ( carte d'espace libre , carte de disponibilité des blocs) et sur les secteurs défectueux . Souvent, ces informations relatives à un groupe d'allocation sont stockées au sein même du groupe d'allocation.

Des attributs supplémentaires peuvent être associés aux systèmes de fichiers, tels que NTFS , XFS , ext2 , ext3 , certaines versions d' UFS et HFS+ , grâce aux attributs de fichier étendus . Certains systèmes de fichiers permettent à l'utilisateur de définir des attributs, comme l'auteur du document, l'encodage des caractères ou la taille d'une image.

Certains systèmes de fichiers permettent d'associer différentes collections de données à un même nom de fichier. Ces collections distinctes sont appelées flux ou forks . Apple utilise depuis longtemps un système de fichiers forké sur Macintosh, et Microsoft prend en charge les flux dans NTFS. Certains systèmes de fichiers conservent plusieurs versions antérieures d'un fichier sous un seul nom ; le nom du fichier seul permet de récupérer la version la plus récente, tandis que les versions enregistrées antérieurement sont accessibles grâce à une convention de nommage spéciale, telle que « nom_du_fichier;4 » ou « nom_du_fichier(-4) » pour accéder à la version enregistrée quatre versions auparavant.

Organisation de l'espace de rangement

Un système de fichiers local permet de suivre quelles zones de stockage appartiennent à quel fichier et lesquelles ne sont pas utilisées.

Lorsqu'un système de fichiers crée un fichier, il lui alloue de l'espace pour les données. Certains systèmes de fichiers permettent, voire exigent, de spécifier une allocation d'espace initiale, puis des allocations incrémentales à mesure que la taille du fichier augmente.

Pour supprimer un fichier, le système de fichiers enregistre que l'espace occupé par ce fichier est libre (disponible pour être utilisé par un autre fichier).

Un exemple d'espace disque inutilisé, illustré par des clusters NTFS de 4 096 octets : 100 000 fichiers de cinq octets chacun, soit 500 000 octets de données, mais nécessitant 409 600 000 octets d'espace disque pour le stockage.

Un système de fichiers local gère l'espace de stockage afin d'assurer un certain niveau de fiabilité et d'efficacité. Généralement, il alloue l'espace du périphérique de stockage de manière granulaire, généralement par unités physiques ( octets ). Par exemple, sous Apple DOS au début des années 1980, les secteurs de 256 octets sur une disquette de 140 kilo-octets utilisaient une table de correspondance piste/secteur .

La granularité de l'allocation entraîne la présence d'espace inutilisé, parfois appelé espace de réserve , pour chaque fichier, sauf pour ceux dont la taille est un multiple de la taille de l'allocation. Pour une allocation de 512 octets, l'espace inutilisé moyen est de 256 octets. Pour des clusters de 64 Ko, l'espace inutilisé moyen est de 32 Ko.

En général, la taille de l'unité d'allocation est définie lors de la configuration du stockage. Choisir une taille relativement petite par rapport à la taille des fichiers stockés entraîne une surcharge d'accès excessive. Choisir une taille relativement grande entraîne un espace inutilisé excessif. Choisir une taille d'allocation basée sur la taille moyenne des fichiers susceptibles d'être présents sur le stockage tend à minimiser l'espace inutilisable.

Fragmentation

Les systèmes de fichiers peuvent devenir fragmentés

Lorsqu'un système de fichiers crée, modifie et supprime des fichiers, la représentation du stockage sous-jacent peut se fragmenter . Les fichiers et l'espace inutilisé entre eux occupent des blocs d'allocation non contigus.

Un fichier devient fragmenté si l'espace nécessaire au stockage de son contenu ne peut être alloué en blocs contigus. L'espace libre devient fragmenté lorsque des fichiers sont supprimés.

La fragmentation est invisible pour l'utilisateur final et le système continue de fonctionner correctement. Cependant, elle peut dégrader les performances de certains périphériques de stockage qui fonctionnent mieux avec des blocs contigus, comme les disques durs . D'autres périphériques, tels que les disques SSD, ne sont pas affectés par la fragmentation.

Contrôle d'accès

Les utilitaires de répertoire permettent de créer, renommer et supprimer des entrées de répertoire (également appelées dentries , au singulier : dentry ) , ainsi que de modifier les métadonnées associées à un répertoire. Ils peuvent également permettre de créer des liens supplémentaires vers un répertoire ( liens physiques sous Unix ), de renommer les liens parents (« .." » dans les systèmes d’exploitation de type Unix )

Les utilitaires de fichiers permettent de créer, lister, copier, déplacer et supprimer des fichiers, ainsi que de modifier leurs métadonnées. Ils peuvent tronquer des données, ajuster l'espace disque alloué, ajouter des données, déplacer et modifier des fichiers directement. Selon la structure du système de fichiers, ils peuvent offrir la possibilité d'ajouter du contenu au début d'un fichier, de le tronquer, d'insérer des entrées au milieu d'un fichier ou de supprimer des entrées. Les utilitaires permettant de libérer de l'espace pour les fichiers supprimés, si le système de fichiers propose une fonction de récupération, appartiennent également à cette catégorie.

Certains systèmes de fichiers diffèrent des opérations telles que la réorganisation de l'espace libre, l'effacement sécurisé de l'espace libre et la reconstruction des structures hiérarchiques en fournissant des utilitaires qui exécutent ces fonctions lors des périodes de faible activité. Les utilitaires de défragmentation des systèmes de fichiers en sont un exemple .

Parmi les fonctionnalités les plus importantes des utilitaires de système de fichiers figurent les fonctions de supervision, qui peuvent impliquer de contourner les contrôles de propriété ou l'accès direct au périphérique sous-jacent. Celles-ci incluent la sauvegarde et la restauration hautes performances, la réplication des données et la réorganisation de diverses structures de données et tables d'allocation au sein du système de fichiers.

API du système de fichiers

Les utilitaires, les bibliothèques et les programmes utilisent les API du système de fichiers pour interagir avec ce dernier. Ces interactions comprennent le transfert de données, le positionnement, la mise à jour des métadonnées, la gestion des répertoires, la gestion des spécifications d'accès et la suppression de fichiers.

Plusieurs systèmes de fichiers au sein d'un seul système

Les systèmes de vente au détail sont souvent configurés avec un seul système de fichiers occupant la totalité du périphérique de stockage .

Une autre approche consiste à partitionner le disque afin d'utiliser plusieurs systèmes de fichiers aux attributs différents. Un système de fichiers, destiné au cache du navigateur ou au stockage des courriels, peut être configuré avec une petite taille d'allocation. Ainsi, l'activité de création et de suppression de fichiers, typique de l'utilisation d'un navigateur, reste concentrée dans une zone restreinte du disque, sans interférer avec les autres allocations de fichiers. Une autre partition peut être créée pour le stockage des fichiers audio ou vidéo avec une taille de bloc relativement importante. Une autre encore peut être normalement configurée en lecture seule et n'être rendue accessible en écriture que périodiquement. Certains systèmes de fichiers, tels que ZFS et APFS , prennent en charge plusieurs systèmes de fichiers partageant un pool commun de blocs libres, permettant ainsi l'utilisation de plusieurs systèmes de fichiers aux attributs différents sans avoir à réserver un espace fixe pour chacun.

Une troisième approche, principalement utilisée dans les systèmes cloud, consiste à utiliser des « images disque » pour héberger des systèmes de fichiers supplémentaires, avec ou sans attributs identiques, au sein d'un autre système de fichiers (hôte), comme un fichier. Un exemple courant est la virtualisation : un utilisateur peut exécuter une distribution Linux expérimentale (utilisant le système de fichiers ext4 ) dans une machine virtuelle sous son environnement Windows de production (utilisant NTFS ). Le système de fichiers ext4 réside dans une image disque, qui est traitée comme un fichier (ou plusieurs fichiers, selon l' hyperviseur et les paramètres) dans le système de fichiers hôte NTFS.

Disposer de plusieurs systèmes de fichiers sur un même système présente l'avantage supplémentaire qu'en cas de corruption de l'un d'eux, les autres restent généralement intacts. Ceci inclut la destruction du système de fichiers système par un virus , voire un système qui ne démarre plus. Les utilitaires de système de fichiers nécessitant un accès dédié peuvent être exécutés efficacement par étapes. De plus, la défragmentation peut s'avérer plus efficace. Plusieurs utilitaires de maintenance système, tels que les analyses antivirus et les sauvegardes, peuvent également être traités par segments. Par exemple, il n'est pas nécessaire de sauvegarder le système de fichiers contenant les vidéos avec tous les autres fichiers si aucun n'a été ajouté depuis la dernière sauvegarde. Concernant les fichiers image, il est facile de créer des images différentielles contenant uniquement les nouvelles données écrites dans l'image maître (originale). Les images différentielles peuvent être utilisées à la fois pour des raisons de sécurité (en tant que système « jetable » – elles peuvent être rapidement restaurées en cas de destruction ou de contamination par un virus, car l'ancienne image peut être supprimée et une nouvelle créée en quelques secondes, même sans procédure automatisée) et pour un déploiement rapide de machines virtuelles (puisque les images différentielles peuvent être créées rapidement par lots à l'aide d'un script).

Types

Supports de stockage

Systèmes de fichiers disque

Un système de fichiers disque exploite la capacité des supports de stockage disque à adresser les données de manière aléatoire et rapide. Il prend également en compte la vitesse d'accès aux données suivantes et la possibilité d'accéder à d'autres données ultérieurement. Ceci permet à plusieurs utilisateurs (ou processus) d'accéder à différentes données sur le disque, indépendamment de leur emplacement séquentiel. Parmi les exemples, citons FAT ( FAT12 , FAT16 , FAT32 ), exFAT , NTFS , ReFS , HFS et HFS + , HPFS , APFS , UFS , ext2 , ext3 , ext4 , XFS , btrfs , Files-11 , Veritas File System , VMFS , ZFS , ReiserFS , NSS et ScoutFS. Certains systèmes de fichiers disque sont des systèmes de fichiers journalisés ou des systèmes de fichiers versionnés .

disques optiques

Les formats ISO 9660 et UDF ( Universal Disk Format ) sont deux formats courants destinés aux CD , DVD et Blu-ray . Mount Rainier est une extension du format UDF, prise en charge depuis la version 2.6 du noyau Linux et depuis Windows Vista, qui facilite la gravure sur DVD.

Systèmes de fichiers Flash

Système de fichiers minimal / stockage de cassettes audio

Dans les années 1970, les disques et les lecteurs de bandes numériques étaient trop chers pour certains des premiers utilisateurs de micro-ordinateurs . Un système de stockage de données basique et peu coûteux a alors été mis au point, utilisant des cassettes audio courantes .

Lorsque le système devait enregistrer des données, l'utilisateur était invité à appuyer sur « RECORD » sur le magnétophone, puis sur « RETURN » pour signaler au système que l'enregistrement était en cours. Le système enregistrait un son pour la synchronisation, puis modulait des sons codant un préfixe, les données, une somme de contrôle et un suffixe. Pour lire des données, l'utilisateur devait appuyer sur « PLAY » sur le magnétophone. Le système écoutait les sons sur la bande et attendait une brève salve correspondant à la synchronisation. Il interprétait ensuite les sons suivants comme des données. Une fois la lecture terminée, le système invitait l'utilisateur à appuyer sur « STOP » sur le magnétophone. C'était un système rudimentaire, mais il fonctionnait (la plupart du temps). Les données étaient stockées séquentiellement, généralement sans nom, bien que certains systèmes (comme les ordinateurs Commodore PET ) permettaient de nommer les fichiers. Plusieurs ensembles de données pouvaient être enregistrés et localisés en faisant défiler rapidement la bande et en observant le compteur de bande pour repérer le début approximatif de la zone de données suivante. L'utilisateur pouvait avoir besoin d'écouter les sons pour trouver le bon endroit pour commencer la lecture de la zone de données suivante. Certaines implémentations intégraient même des sons audibles intercalés avec les données.

Systèmes de fichiers de base de données

Un autre concept de gestion de fichiers est celui d’un système de fichiers basé sur une base de données. Au lieu d’une gestion hiérarchique structurée, ou en plus de celle-ci, les fichiers sont identifiés par leurs caractéristiques, comme le type de fichier, le sujet, l’auteur ou d’autres métadonnées riches similaires .

IBM DB2 pour i (anciennement DB2/400 et DB2 pour i5/OS) est un système de fichiers de base de données faisant partie du système d'exploitation orienté objet IBM i (anciennement OS/400 et i5/OS). Il intègre un stockage à un seul niveau et fonctionne sur les systèmes IBM Power (anciennement AS/400 et iSeries). Conçu par Frank G. Soltis, ancien directeur scientifique d'IBM pour IBM i, ce système de fichiers a été développé entre 1978 et 1988. L'équipe d'IBM Rochester a ainsi conçu et mis en œuvre avec succès des technologies telles que ce système de fichiers de base de données, là où d'autres, comme Microsoft, ont échoué par la suite. Ces technologies, connues sous le nom de « Fortress Rochester » , reprenaient certains aspects fondamentaux des premières technologies mainframe, tout en étant plus avancées sur de nombreux points .

Voici quelques autres projets qui ne sont pas des systèmes de fichiers de base de données « purs », mais qui utilisent certains aspects d'un système de fichiers de base de données :

  • Many Web content management systems use a relational DBMS to store and retrieve files. For example, XHTML files are stored as XML or text fields, while image files are stored as blob fields; SQL SELECT (with optional XPath) statements retrieve the files, and allow the use of a sophisticated logic and more rich information associations than "usual file systems." Many CMSs also have the option of storing only metadata within the database, with the standard filesystem used to store the content of files.
  • Very large file systems, embodied by applications like Apache Hadoop and Google File System, use some database file system concepts.

Transactional file systems

Some programs need to either make multiple file system changes, or, if one or more of the changes fail for any reason, make none of the changes. For example, a program which is installing or updating software may write executables, libraries, and/or configuration files. If some of the writing fails and the software is left partially installed or updated, the software may be broken or unusable. An incomplete update of a key system utility, such as the command shell, may leave the entire system in an unusable state.

Transaction processing introduces the atomicity guarantee, ensuring that operations inside of a transaction are either all committed or the transaction can be aborted and the system discards all of its partial results. This means that if there is a crash or power failure, after recovery, the stored state will be consistent. Either the software will be completely installed or the failed installation will be completely rolled back, but an unusable partial install will not be left on the system. Transactions also provide the isolation guaranteeserialized with the transaction.

Windows, à partir de Vista, a ajouté la prise en charge des transactions à NTFS , dans une fonctionnalité appelée NTFS transactionnel , mais son utilisation est désormais déconseillée. Il existe un certain nombre de prototypes de recherche de systèmes de fichiers transactionnels pour les systèmes UNIX, notamment le système de fichiers Valor, Amino, LFS, et un système de fichiers transactionnel ext3 sur le noyau TxOS, ainsi que des systèmes de fichiers transactionnels destinés aux systèmes embarqués, tels que TFFS.

Garantir la cohérence entre plusieurs opérations sur le système de fichiers est difficile, voire impossible, sans transactions. Le verrouillage de fichiers peut servir de mécanisme de contrôle de concurrence pour des fichiers individuels, mais il ne protège généralement pas la structure des répertoires ni les métadonnées des fichiers. Par exemple, il ne peut empêcher les conditions de concurrence TOCTTOU sur les liens symboliques. De plus, il ne peut pas annuler automatiquement une opération ayant échoué, comme une mise à jour logicielle ; l’atomicité est indispensable à cette opération.

La journalisation des systèmes de fichiers est une technique utilisée pour garantir la cohérence au niveau transactionnel des structures de fichiers. Les transactions de journalisation ne sont pas accessibles aux programmes via l'API du système d'exploitation ; elles sont utilisées uniquement en interne pour assurer la cohérence à la granularité d'un appel système.

Les systèmes de sauvegarde de données ne prennent généralement pas en charge la sauvegarde directe des données stockées de manière transactionnelle, ce qui complique la restauration de jeux de données fiables et cohérents. La plupart des logiciels de sauvegarde se contentent d'enregistrer les fichiers modifiés depuis un certain temps, sans tenir compte de l'état transactionnel partagé par plusieurs fichiers au sein du jeu de données. Pour contourner ce problème, certains systèmes de bases de données créent un fichier d'état archivé contenant toutes les données jusqu'à ce point. Le logiciel de sauvegarde ne sauvegarde alors que ce fichier et n'interagit pas directement avec les bases de données transactionnelles actives. La restauration nécessite donc de recréer la base de données à partir du fichier d'état après sa restauration par le logiciel de sauvegarde.

Systèmes de fichiers réseau

Un système de fichiers à disque partagé est un système dans lequel plusieurs machines (généralement des serveurs) ont accès au même sous-système de disque externe (généralement un réseau de stockage ). Le système de fichiers arbitre l'accès à ce sous-système, empêchant ainsi les conflits d'écriture. Parmi les exemples, citons GFS2 de Red Hat , GPFS (désormais connu sous le nom de Spectrum Scale) d'IBM, SFS de DataPlow, CXFS de SGI , StorNext de Quantum Corporation et ScoutFS de Versity.

Systèmes de fichiers spéciaux

  • devfs , udev et TOPS -10 exposent les périphériques d'E/S ou les pseudo-périphériques comme des fichiers spéciaux
  • configfs et sysfs exposent des fichiers spéciaux qui peuvent être utilisés pour interroger et configurer les informations du noyau Linux
  • procfs expose les informations de processus sous forme de fichiers spéciaux

Prise en charge de la hiérarchie des répertoires

Systèmes de fichiers plats

Exemple de structure de répertoire dans un système de fichiers hiérarchique

En informatique , un système de fichiers hiérarchique est un système de fichiers qui utilise des répertoires pour organiser les fichiers dans une structure arborescente.

Dans un système de fichiers hiérarchique, les répertoires contiennent des informations sur les fichiers et sur d'autres répertoires, appelés sous-répertoires , qui peuvent eux-mêmes pointer vers d'autres sous-répertoires, et ainsi de suite. Cette organisation se présente sous la forme d'une structure arborescente , ou hiérarchie , généralement représentée avec la racine au sommet. Le répertoire racine constitue la base de la hiérarchie et est généralement stocké à un emplacement fixe sur le disque.

Un système de fichiers hiérarchique contraste avec un système de fichiers plat , où les informations sur tous les fichiers sont stockées dans un seul répertoire, et où il n'y a pas de sous-répertoires.

Presque tous les systèmes de fichiers actuels sont hiérarchiques. Un système de fichiers est en réalité un cas particulier de système hiérarchique. Par exemple, NTFS , HPFS et ext4 implémentent tous un système hiérarchique avec des fonctionnalités différentes pour la mise en mémoire tampon , l'allocation de fichiers et la récupération de fichiers .

Mises en œuvre

Un système d'exploitation (SE) prend généralement en charge un ou plusieurs systèmes de fichiers. Parfois, un SE et son système de fichiers sont si étroitement liés qu'il est difficile de les décrire indépendamment.

Un système d'exploitation offre généralement à l'utilisateur un accès au système de fichiers. Il propose souvent une interface en ligne de commande , comme un shell Unix , l'invite de commandes et PowerShell sous Windows , ou encore OpenVMS DCL . Un système d'exploitation fournit également souvent un explorateur de fichiers doté d'une interface graphique , tel que le Finder sous macOS, l'Explorateur de fichiers sous Windows, GNOME Files sous GNOME ou Dolphin sous KDE Plasma .

Systèmes d'exploitation Unix et de type Unix

Les systèmes d'exploitation de type Unix créent un système de fichiers virtuel, donnant l'impression que tous les fichiers présents sur tous les périphériques de stockage connectés existent au sein d'une hiérarchie unique. Cela signifie que, dans ces systèmes, il existe un répertoire racine unique , et chaque fichier du système se trouve sous ce répertoire. Les systèmes de type Unix peuvent utiliser un disque RAM ou une ressource réseau partagée comme répertoire racine.

Les systèmes de type Unix attribuent un nom à chaque périphérique, mais ce n'est pas ainsi que l'on accède aux fichiers sur ce périphérique. Pour accéder aux fichiers d'un autre périphérique, il faut d'abord indiquer au système d'exploitation où ces fichiers doivent apparaître dans l'arborescence des répertoires. Ce processus est appelé montage d'un système de fichiers. Par exemple, pour accéder aux fichiers d'un CD-ROM , il faut indiquer au système d'exploitation : « Montez le système de fichiers de ce CD-ROM dans tel ou tel répertoire. » Le répertoire indiqué au système d'exploitation est appelé point de montage ; il peut s'agir, par exemple, de /media . Le répertoire /media existe sur de nombreux systèmes Unix (comme spécifié dans la norme FHS ) et est spécifiquement conçu pour servir de point de montage pour les supports amovibles tels que les CD, les DVD, les clés USB ou les disquettes. Il peut être vide ou contenir des sous-répertoires pour le montage de périphériques individuels. En général, seul l' administrateur (c'est-à-dire l'utilisateur root ) peut autoriser le montage de systèmes de fichiers.

Les systèmes d'exploitation de type Unix intègrent souvent des logiciels et des outils qui facilitent le montage et lui confèrent de nouvelles fonctionnalités. Certaines de ces stratégies sont appelées « montage automatique » en référence à leur fonction.

  • Dans de nombreuses situations, il est nécessaire que les systèmes de fichiers autres que la racine soient accessibles dès le démarrage du système d'exploitation . C'est pourquoi tous les systèmes de type Unix offrent la possibilité de monter des systèmes de fichiers au démarrage. Les administrateurs système définissent ces systèmes de fichiers dans le fichier de configuration fstab ( vfstab sous Solaris ), qui indique également les options et les points de montage.
  • Dans certains cas, il n'est pas nécessaire de monter certains systèmes de fichiers au démarrage , même si leur utilisation peut s'avérer utile ultérieurement. Il existe des utilitaires pour les systèmes de type Unix qui permettent de monter des systèmes de fichiers prédéfinis à la demande.
  • Les supports amovibles permettent le transfert de programmes et de données entre machines sans connexion physique. Les clés USB , les CD-ROM et les DVD en sont des exemples courants . Des utilitaires ont donc été développés pour détecter la présence et la disponibilité d'un support, puis le monter automatiquement.
  • Les systèmes de type Unix avancés ont également introduit le concept de supermontage ; voir, par exemple, le projet Linux supermount-ng . Par exemple, une disquette supermontée peut être retirée physiquement du système. Normalement, la disquette doit avoir été synchronisée puis démontée avant son retrait. Si la synchronisation a eu lieu, une autre disquette peut être insérée dans le lecteur. Le système détecte automatiquement le changement de disque et met à jour le contenu du point de montage pour refléter le nouveau support.
  • Un module de montage automatique monte automatiquement un système de fichiers lorsqu'on spécifie le répertoire sur lequel il doit être monté. Cette méthode est généralement utilisée pour les systèmes de fichiers sur les serveurs réseau, plutôt que de s'appuyer sur des événements tels que l'insertion d'un support, comme ce serait le cas pour les supports amovibles.

Linux

Linux prend en charge de nombreux systèmes de fichiers, mais les choix les plus courants pour le disque système sur un périphérique bloc incluent la famille ext* ( ext2 , ext3 et ext4 ), XFS , JFS et btrfs . Pour la mémoire flash brute sans couche de traduction (FTL) ni périphérique de technologie de mémoire (MTD), on trouve notamment UBIFS , JFFS2 et YAFFS . SquashFS est un système de fichiers compressé en lecture seule couramment utilisé.

Solaris

Dans les versions antérieures de Solaris, le système de fichiers UFS (non journalisé) était utilisé par défaut pour le système de fichiers amorçable et les systèmes de fichiers supplémentaires. Solaris a pris en charge et étendu le système de fichiers UFS par défaut.

La prise en charge d'autres systèmes de fichiers et des améliorations significatives ont été ajoutées au fil du temps, notamment Veritas Software Corp. (journalisation) VxFS , Sun Microsystems (clustering) QFS , Sun Microsystems (journalisation) UFS et Sun Microsystems (open source, poolable, compressible 128 bits et correcteur d'erreurs) ZFS .

Des extensions du noyau ont été ajoutées à Solaris pour permettre le démarrage sur Veritas VxFS . La journalisation a été intégrée à UFS dans Solaris 7 de Sun. Les versions ultérieures de Solaris 10 , Solaris Express, OpenSolaris et d'autres variantes open source du système d'exploitation Solaris ont pris en charge le démarrage sur ZFS .

La gestion logique des volumes permet de répartir un système de fichiers sur plusieurs périphériques afin d'accroître la redondance, la capacité et/ou le débit. Les environnements Solaris existants peuvent utiliser Solaris Volume Manager (anciennement Solstice DiskSuite ). Plusieurs systèmes d'exploitation (dont Solaris) peuvent utiliser Veritas Volume Manager . Les systèmes d'exploitation modernes basés sur Solaris s'affranchissent de la gestion des volumes grâce à l'utilisation de pools de stockage virtuels dans ZFS .

macOS

macOS (anciennement Mac OS X) utilise le système de fichiers Apple (APFS), qui a remplacé en 2017 le système de fichiers hérité du Mac OS classique, appelé HFS Plus (HFS+). Apple utilise également le terme « Mac OS étendu » pour désigner HFS+. HFS Plus est un système de fichiers riche en métadonnées et préservant la casse, mais (généralement) insensible à celle-ci . Du fait des origines Unix de macOS, les permissions Unix ont été ajoutées à HFS Plus. Les versions ultérieures de HFS Plus ont intégré la journalisation pour prévenir la corruption de la structure du système de fichiers et ont introduit plusieurs optimisations des algorithmes d'allocation afin de défragmenter automatiquement les fichiers sans nécessiter de défragmenteur externe.

Les noms de fichiers peuvent comporter jusqu'à 255 caractères. HFS Plus utilise Unicode pour stocker les noms de fichiers. Sous macOS, le type de fichier peut provenir du code de type , stocké dans les métadonnées du fichier, ou de l' extension du nom de fichier .

HFS Plus propose trois types de liens : les liens physiques (de type Unix) , les liens symboliques (de type Unix) et les alias . Les alias sont conçus pour conserver un lien vers leur fichier d'origine même s'ils sont déplacés ou renommés ; ils ne sont pas interprétés par le système de fichiers lui-même, mais par le gestionnaire de fichiers côté utilisateur .

macOS 10.13 High Sierra, annoncé le 5 juin 2017 lors de la conférence WWDC d'Apple, utilise le système de fichiers Apple sur les disques SSD .

macOS prenait également en charge le système de fichiers UFS , dérivé du système de fichiers rapide BSD Unix via NeXTSTEP . Cependant, à partir de Mac OS X Leopard , il n'était plus possible d'installer macOS sur un volume UFS, ni de mettre à niveau vers Leopard un système antérieur à Leopard installé sur un volume UFS. La prise en charge d'UFS a été complètement abandonnée avec Mac OS X Lion .

Les versions récentes de macOS peuvent lire et écrire sur les anciens systèmes de fichiers FAT (16 et 32 ​​bits) courants sous Windows. Elles peuvent également lire les systèmes de fichiers NTFS plus récents utilisés sous Windows. Pour écrire sur des systèmes de fichiers NTFS sur les versions de macOS antérieures à Mac OS X Snow Leopard, un logiciel tiers est nécessaire. Mac OS X 10.6 (Snow Leopard) et les versions ultérieures permettent l'écriture sur les systèmes de fichiers NTFS, mais uniquement après une modification complexe d'un paramètre système (des logiciels tiers permettent d'automatiser cette opération).

Enfin, macOS prend en charge la lecture et l'écriture du système de fichiers exFAT depuis Mac OS X Snow Leopard, à partir de la version 10.6.5.

OS/2

OS/2 1.2 a introduit le système de fichiers haute performance (HPFS). HPFS prend en charge les noms de fichiers en casse mixte dans différentes pages de codes , les noms de fichiers longs (255 caractères), une utilisation plus efficace de l'espace disque, une architecture qui regroupe les éléments liés sur le volume, une fragmentation des données réduite, une allocation d'espace basée sur les extents , une structure arborescente B+ pour les répertoires et un répertoire racine situé au milieu du disque, pour un accès moyen plus rapide. Un système de fichiers journalisé (JFS) a été intégré en 1999.

PC-BSD

PC-BSD is a desktop version of FreeBSD, which inherits FreeBSD's ZFS support, similarly to FreeNAS. The new graphical installer of PC-BSD can handle / (root) on ZFS and RAID-Z pool installs and disk encryption using Geli right from the start in an easy convenient (GUI) way. The current PC-BSD 9.0+ 'Isotope Edition' has ZFS filesystem version 5 and ZFS storage pool version 28.

Plan 9

Plan 9 from Bell Labs treats everything as a file and accesses all objects as a file would be accessed (i.e., there is no ioctl or mmap): networking, graphics, debugging, authentication, capabilities, encryption, and other services are accessed via I/O operations on file descriptors. The 9P protocol removes the difference between local and remote files. File systems in Plan9 are organized with the help of private, per-process namespaces, allowing each process to have a different view of the many file systems that provide resources in a distributed system.

The Inferno operating system shares these concepts with Plan9.

Microsoft Windows

Directory listing in a Windows command shell

Windows utilise les systèmes de fichiers FAT , NTFS , exFAT , Live File System et ReFS (ce dernier n'est pris en charge et utilisable que dans Windows Server 2012 , Windows Server 2016 , Windows 8 , Windows 8.1 et Windows 10 ; Windows ne peut pas démarrer à partir de celui-ci).

Windows utilise une abstraction de lettre de lecteur au niveau utilisateur pour distinguer un disque ou une partition d'un autre. Par exemple, le chemin C:\WINDOWS représente le répertoire WINDOWS sur la partition désignée par la lettre C. Le lecteur C: est généralement utilisé pour la partition principale du disque dur , sur laquelle Windows est généralement installé et à partir de laquelle il démarre. Cette habitude est tellement ancrée que de nombreuses applications présentent des bogues, supposant que le lecteur sur lequel le système d'exploitation est installé est C. L'utilisation des lettres de lecteur, et la tradition d'utiliser « C » comme lettre de lecteur pour la partition principale du disque dur, remontent à MS-DOS , où les lettres A et B étaient réservées à un maximum de deux lecteurs de disquettes. Cette pratique est elle-même issue de CP/M dans les années 1970, et finalement de CP/CMS d'IBM de 1967.

GRAISSE

-DOS est une version OEM de MS-DOS, lui-même basé sur 86-DOS de SCP . DR-DOS était basé sur Concurrent DOS de Digital Research , successeur de CP/M-86 .) Les systèmes de fichiers FAT constituent donc un format d'échange universel idéal entre ordinateurs et périphériques de tous types et de toutes époques.

Le système de fichiers FAT trouve ses origines dans un précurseur FAT 8 bits (incompatible) dans Standalone Disk BASIC et le projet éphémère MDOS/MIDAS .

Au fil des ans, le système de fichiers a évolué de FAT12 à FAT16 puis FAT32 . Diverses fonctionnalités y ont été ajoutées, notamment les sous-répertoires , la prise en charge des pages de codes , les attributs étendus et les noms de fichiers longs . Des éditeurs tiers, tels que Digital Research, ont intégré la prise en charge optionnelle du suivi des suppressions et des schémas de sécurité multi-utilisateurs basés sur les volumes, les répertoires et les fichiers, permettant la gestion des mots de passe et des permissions (lecture, écriture, exécution, suppression, etc.) pour les fichiers et les répertoires. La plupart de ces extensions ne sont pas prises en charge par Windows.

Les systèmes de fichiers FAT12 et FAT16 avaient une limite sur le nombre d'entrées dans le répertoire racine du système de fichiers et des restrictions sur la taille maximale des disques ou partitions formatés en FAT .

FAT32 corrige les limitations de FAT12 et FAT16, à l'exception de la limite de taille des fichiers d'environ 4 Go, mais il reste limité par rapport à NTFS.

Les systèmes de fichiers FAT12, FAT16 et FAT32 imposent une limite de huit caractères pour le nom de fichier et de trois caractères pour l'extension (par exemple, .exe ). Cette limite est communément appelée « limite 8.3 » . VFAT , une extension optionnelle de FAT12, FAT16 et FAT32 introduite dans Windows 95 et Windows NT 3.5 , permettait de stocker des noms de fichiers longs ( LFN ) dans le système de fichiers FAT, tout en assurant la rétrocompatibilité.

NTFS

exFAT présente certains avantages par rapport à NTFS en ce qui concerne la surcharge du système de fichiers .

exFAT n'est pas rétrocompatible avec les systèmes de fichiers FAT tels que FAT12, FAT16 ou FAT32. Ce système de fichiers est pris en charge par les systèmes Windows récents, tels que Windows XP, Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8, Windows 8.1, Windows 10 et Windows 11.

Le système de fichiers exFAT est pris en charge par macOS à partir de la version 10.6.5 (Snow Leopard). Sa prise en charge par d'autres systèmes d'exploitation est limitée, car son implémentation nécessite une licence. exFAT est le seul système de fichiers entièrement pris en charge par macOS et Windows capable de gérer des fichiers de plus de 4 Go.

OpenVMS

Files-11 est le système de fichiers utilisé dans les systèmes d'exploitation RSX-11 , IAS et OpenVMS de Digital Equipment Corporation . Il prend en charge les entrées/sorties orientées enregistrement , l'accès réseau distant et le versionnage des fichiers . La couche ODS-1 d'origine est un système de fichiers plat ; la version ODS-2 est un système de fichiers hiérarchique , compatible avec les listes de contrôle d'accès .

Files-11 est similaire, mais nettement plus avancé, aux systèmes de fichiers utilisés dans les précédents systèmes d'exploitation de Digital Equipment Corporation tels que TOPS-20 et RSTS/E .

MVS

Le système de surveillance conversationnelle (CMS) d'IBM, composant de VM/370, utilise un système de fichiers plat distinct pour chaque disque virtuel ( minidisque ). Les données et les informations de contrôle des fichiers sont dispersées et imbriquées. Le point d'ancrage est un enregistrement appelé répertoire de fichiers maître (MFD), toujours situé dans le quatrième bloc du disque. Initialement, le CMS utilisait des blocs de 800 octets de longueur fixe, mais les versions ultérieures ont utilisé des blocs plus grands, jusqu'à 4 Ko. L'accès à un enregistrement de données nécessite deux niveaux d' indirection : l'entrée du répertoire du fichier (appelée entrée de la table d'état des fichiers ou FST) pointe vers des blocs contenant une liste d'adresses des enregistrements individuels.

Système de fichiers AS/400

Sur l'AS/400 et ses successeurs, les données sont constituées d'objets système mappés dans l'espace d'adressage virtuel du système, au sein d'un stockage à un seul niveau . De nombreux types d' objets sont définis, notamment les répertoires et les fichiers présents dans d'autres systèmes de fichiers. Les objets fichiers, ainsi que d'autres types d'objets, constituent la base de la prise en charge par l'AS/400 d'une base de données relationnelle intégrée .

Autres systèmes de fichiers

  • Système de fichiers RSRE FLEX - écrit en ALGOL 68
  • Le système de fichiers du Michigan Terminal System (MTS) est intéressant car : (i) il propose des « fichiers de lignes » où la longueur des enregistrements et les numéros de ligne sont associés, en tant que métadonnées, à chaque enregistrement du fichier ; des lignes peuvent être ajoutées, remplacées, mises à jour avec des enregistrements de même longueur ou de longueur différente, et supprimées n’importe où dans le fichier sans qu’il soit nécessaire de lire et de réécrire l’intégralité du fichier ; (ii) grâce à des clés de programme, les fichiers peuvent être partagés ou autorisés à être utilisés par des commandes et des programmes, en plus des utilisateurs et des groupes ; et (iii) il existe un mécanisme de verrouillage de fichiers complet qui protège à la fois les données du fichier et ses métadonnées.
  • TempleOS utilise RedSea, un système de fichiers créé par Terry A. Davis.

Limites

Limitations de conception

Les systèmes de fichiers limitent la capacité de stockage des données Cela nécessite de nouveaux systèmes de fichiers dont la capacité ne cesse d'augmenter.

Avec une capacité accrue, les besoins en fonctionnalités et, par conséquent, la complexité augmentent également. La complexité d'un système de fichiers est généralement proportionnelle à la capacité de stockage disponible. Abstraction faite des problèmes de capacité, les systèmes de fichiers des ordinateurs personnels du début des années 1980 , dotés de 50 à 512 Ko de stockage, ne seraient pas adaptés aux systèmes de stockage modernes offrant des centaines de gigaoctets de capacité. De même, les systèmes de fichiers modernes ne seraient pas adaptés à ces anciens systèmes, car la complexité de leurs structures saturerait rapidement la capacité limitée de ces derniers.

Conversion du type d'un système de fichiers

Il peut être avantageux, voire nécessaire, de stocker les fichiers dans un système de fichiers différent de celui utilisé actuellement. Cela peut notamment s'expliquer par un besoin d'espace disque supérieur aux limites du système de fichiers actuel, par la nécessité d'augmenter la profondeur des chemins d'accès, ou encore par des considérations de performance ou de fiabilité. Enfin, permettre l'accès à un autre système d'exploitation incompatible avec le système de fichiers existant constitue une autre raison.

Conversion sur place

Dans certains cas, la conversion peut être effectuée sur place, bien que la migration du système de fichiers soit plus prudente, car elle implique la création d'une copie des données et est donc recommandée. Sous Windows, les systèmes de fichiers FAT et FAT32 peuvent être convertis en NTFS via l'utilitaire convert.exe, mais pas l'inverse. Sous Linux, ext2 peut être converti en ext3 (et reconverti), et ext3 peut être converti en ext4 (mais pas reconverti). ext3 et ext4 peuvent être convertis en btrfs , puis reconvertis jusqu'à la suppression des informations d'annulation. Ces conversions sont possibles grâce à l'utilisation du même format pour les données du fichier et au déplacement des métadonnées dans l'espace libre, parfois grâce à la prise en charge des fichiers épars .

Migration vers un autre système de fichiers

La migration présente l'inconvénient de nécessiter davantage d'espace, même si elle peut être plus rapide. Le cas idéal est celui où il reste de l'espace libre sur le support qui accueillera le système de fichiers final.

Par exemple, pour migrer un système de fichiers FAT32 vers un système de fichiers ext2, un nouveau système de fichiers ext2 est créé. Ensuite, les données du système de fichiers FAT32 sont copiées vers le système ext2, et l'ancien système de fichiers est supprimé.

Une autre solution, lorsqu'il n'y a pas assez d'espace pour conserver le système de fichiers d'origine jusqu'à la création du nouveau, consiste à utiliser un support de travail (comme un support amovible). Cette méthode est plus longue, mais elle a l'avantage de permettre la création d'une sauvegarde.

Chemins de fichiers longs et noms de fichiers longs

Dans les systèmes de fichiers hiérarchiques , on accède aux fichiers via un chemin d' accès, qui est une liste arborescente de répertoires contenant le fichier. La profondeur de ce chemin varie selon les systèmes de fichiers. De même, la longueur du nom d'un fichier est limitée.

La copie de fichiers aux noms longs ou situés dans des répertoires profonds d'un système de fichiers à un autre peut entraîner des résultats indésirables. Cela dépend de la manière dont l'utilitaire de copie gère cette différence.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index