Système de fichiers - File system

En informatique , le système de fichiers ou système de fichiers (souvent abrégé en fs ) est une méthode et une structure de données que le système d'exploitation utilise pour contrôler la manière dont les données sont stockées et récupérées. Sans système de fichiers, les données placées sur un support de stockage constitueraient un grand ensemble de données sans aucun moyen de dire où s'arrête une donnée et où commence la suivante. En séparant les données en morceaux et en donnant un nom à chaque morceau, les données sont facilement isolées et identifiées. Tirant son nom de la façon dont le système de gestion de données sur papier est nommé, chaque groupe de données est appelé un « fichier ». La structure et les règles logiques utilisées pour gérer les groupes de données et leurs noms sont appelées « système de fichiers ».

Il existe de nombreux types de systèmes de fichiers. Chacun a une structure et une logique différentes, des propriétés de vitesse, de flexibilité, de sécurité, de taille et plus encore. Certains systèmes de fichiers ont été conçus pour être utilisés pour des applications spécifiques. Par exemple, le système de fichiers ISO 9660 est conçu spécifiquement pour les disques optiques .

Les systèmes de fichiers peuvent être utilisés sur de nombreux types de périphériques de stockage différents qui utilisent différents types de supports. Depuis 2019, les disques durs sont des périphériques de stockage clés et devraient le rester dans un avenir prévisible. Les autres types de supports utilisés incluent les SSD , les bandes magnétiques et les disques optiques. Dans certains cas, comme avec tmpfs , la mémoire principale de l'ordinateur ( mémoire vive , RAM) est utilisée pour créer un système de fichiers temporaire pour une utilisation à court terme.

Certains systèmes de fichiers sont utilisés sur des périphériques de stockage de données locaux ; d'autres fournissent un accès aux fichiers via un protocole réseau (par exemple, les clients NFS , SMB ou 9P ). Certains systèmes de fichiers sont « virtuels », ce qui signifie que les « fichiers » fournis (appelés fichiers virtuels ) sont calculés sur demande (comme procfs et sysfs ) ou sont simplement un mappage dans un système de fichiers différent utilisé comme magasin de sauvegarde. Le système de fichiers gère l'accès à la fois au contenu des fichiers et aux métadonnées de ces fichiers. Il est responsable de l'aménagement de l'espace de stockage; la fiabilité, l'efficacité et le réglage en ce qui concerne le support de stockage physique sont des considérations de conception importantes.

Origine du terme

Avant l'avènement des ordinateurs, le terme système de fichiers était utilisé pour décrire une méthode de stockage et de récupération de documents papier. En 1961, le terme était appliqué au classement informatisé aux côtés du sens original. En 1964, il était d'usage général.

Architecture

Un système de fichiers se compose de deux ou trois couches. Parfois, les couches sont explicitement séparées et parfois les fonctions sont combinées.

Le système de fichiers logique est responsable de l'interaction avec l'application utilisateur. Il fournit l' interface de programme d'application (API) pour les opérations sur les fichiers — OPEN, CLOSE, READ, etc., et transmet l'opération demandée à la couche inférieure pour traitement. Le système de fichiers logique "gère[s] les entrées de la table des fichiers ouverts et les descripteurs de fichiers par processus". Cette couche fournit "l'accès aux fichiers, les opérations de répertoire, [et] la sécurité et la protection".

La deuxième couche facultative est le système de fichiers virtuel . « Cette interface permet la prise en charge de plusieurs instances simultanées de systèmes de fichiers physiques, dont chacune est appelée implémentation de système de fichiers ».

La troisième couche est le système de fichiers physique . Cette couche concerne le fonctionnement physique du périphérique de stockage (par exemple un disque). Il traite les blocs physiques en cours de lecture ou d'écriture. Il gère la mise en mémoire tampon et la gestion de la mémoire et est responsable du placement physique des blocs dans des emplacements spécifiques sur le support de stockage. Le système de fichiers physique interagit avec les pilotes de périphérique ou avec le canal pour piloter le périphérique de stockage.

Aspects des systèmes de fichiers

Gestion de l'espace

Remarque : cela s'applique uniquement aux systèmes de fichiers utilisés dans les périphériques de stockage.

Exemple d'espace libre, illustré avec des clusters NTFS de 4 096 octets : 100 000 fichiers, chacun de cinq octets par fichier, ce qui équivaut à 500 000 octets de données réelles mais nécessite 409 600 000 octets d'espace disque pour le stockage

Les systèmes de fichiers allouent de l'espace de manière granulaire, généralement plusieurs unités physiques sur le périphérique. Le système de fichiers est responsable de l'organisation des fichiers et des répertoires et du suivi des zones du média appartenant à quel fichier et de celles qui ne sont pas utilisées. Par exemple, dans Apple DOS du début des années 1980, des secteurs de 256 octets sur une disquette de 140 kilo-octets utilisaient une carte piste/secteur .

Il en résulte un espace inutilisé lorsqu'un fichier n'est pas un multiple exact de l'unité d'allocation, parfois appelé espace slack . Pour une allocation de 512 octets, l'espace inutilisé moyen est de 256 octets. Pour les clusters de 64 Ko, l'espace inutilisé moyen est de 32 Ko. La taille de l'unité d'allocation est choisie lors de la création du système de fichiers. Le choix de la taille d'allocation en fonction de la taille moyenne des fichiers attendus dans le système de fichiers peut minimiser la quantité d'espace inutilisable. Fréquemment, l'allocation par défaut peut fournir une utilisation raisonnable. Le choix d'une taille d'allocation trop petite entraîne une surcharge excessive si le système de fichiers contient principalement des fichiers très volumineux.

Les systèmes de fichiers peuvent devenir fragmentés

La fragmentation du système de fichiers se produit lorsque l'espace inutilisé ou les fichiers uniques ne sont pas contigus. Lorsqu'un système de fichiers est utilisé, les fichiers sont créés, modifiés et supprimés. Lorsqu'un fichier est créé, le système de fichiers alloue de l'espace pour les données. Certains systèmes de fichiers permettent ou nécessitent de spécifier une allocation d'espace initiale et des allocations incrémentielles ultérieures à mesure que le fichier grandit. Au fur et à mesure que les fichiers sont supprimés, l'espace qui leur a été alloué est finalement considéré comme disponible pour être utilisé par d'autres fichiers. Cela crée une alternance de zones utilisées et inutilisées de différentes tailles. C'est la fragmentation de l'espace libre. Lorsqu'un fichier est créé et qu'il n'y a pas de zone d'espace contigu disponible pour son allocation initiale, l'espace doit être attribué par fragments. Lorsqu'un fichier est modifié de telle sorte qu'il devient plus volumineux, il peut dépasser l'espace qui lui est initialement alloué, une autre allocation doit être affectée ailleurs et le fichier se fragmente.

Dans certains systèmes d'exploitation, un administrateur système peut utiliser des quotas de disque pour limiter l'allocation d'espace disque.

Noms de fichiers

Un nom de fichier (ou nom de fichier ) est utilisé pour identifier un emplacement de stockage dans le système de fichiers. La plupart des systèmes de fichiers ont des restrictions sur la longueur des noms de fichiers. Dans certains systèmes de fichiers, les noms de fichiers ne sont pas sensibles à la casse (c'est-à-dire les noms MYFILEet myfilefont référence au même fichier dans un répertoire) ; dans d'autres, les noms de fichiers sont sensibles à la casse (c'est-à-dire les noms MYFILE, MyFile, et myfilefont référence à trois fichiers distincts qui se trouvent dans le même répertoire).

La plupart des systèmes de fichiers modernes permettent aux noms de fichiers de contenir une large gamme de caractères du jeu de caractères Unicode . Cependant, ils peuvent avoir des restrictions sur l'utilisation de certains caractères spéciaux, les interdisant dans les noms de fichiers ; ces caractères peuvent être utilisés pour indiquer un périphérique, un type de périphérique, un préfixe de répertoire, un séparateur de chemin de fichier ou un type de fichier.

Annuaires

Les systèmes de fichiers ont généralement des répertoires (également appelés dossiers ) qui permettent à l'utilisateur de regrouper des fichiers dans des collections distinctes. Cela peut être implémenté en associant le nom du fichier à un index dans une table des matières ou un inode dans un système de fichiers de type Unix . Les structures de répertoires peuvent être plates (c'est-à-dire linéaires) ou autoriser des hiérarchies dans lesquelles les répertoires peuvent contenir des sous-répertoires. Le premier système de fichiers à prendre en charge des hiérarchies arbitraires de répertoires a été utilisé dans le système d' exploitation Multics . Les systèmes de fichiers natifs des systèmes de type Unix prennent également en charge des hiérarchies de répertoires arbitraires, comme le font, par exemple, le système de fichiers hiérarchique d' Apple et son successeur HFS+ dans Mac OS classique , le système de fichiers FAT dans MS-DOS 2.0 et les versions ultérieures de MS-DOS et dans Microsoft Windows , le système de fichiers NTFS dans la famille de systèmes d'exploitation Windows NT , et les niveaux ODS-2 (On-Disk Structure-2) et supérieurs du système de fichiers Files-11 dans OpenVMS .

Métadonnées

D'autres informations de comptabilité sont généralement associées à chaque fichier dans un système de fichiers. La longueur des données contenues dans un fichier peut être stockée sous forme de nombre de blocs alloués pour le fichier ou sous forme de nombre d' octets . L' heure à laquelle le fichier a été modifié pour la dernière fois peut être stockée comme horodatage du fichier. Les systèmes de fichiers peuvent stocker l'heure de création du fichier, l'heure du dernier accès, l'heure à laquelle les métadonnées du fichier ont été modifiées ou l'heure à laquelle le fichier a été sauvegardé pour la dernière fois. D' autres informations peuvent inclure le fichier de type de périphérique (par exemple bloc , caractère , prise , sous - répertoire , etc.), son propriétaire ID utilisateur et ID de groupe , ses droits d'accès et d' autres attributs de fichier (par exemple si le fichier est en lecture seule, exécutable , etc. .).

Un système de fichiers stocke toutes les métadonnées associées au fichier, y compris le nom du fichier, la longueur du contenu d'un fichier et l'emplacement du fichier dans la hiérarchie des dossiers, séparément du contenu du fichier.

La plupart des systèmes de fichiers stockent les noms de tous les fichiers dans un répertoire à un seul endroit (le tableau des répertoires de ce répertoire) qui est souvent stocké comme n'importe quel autre fichier. De nombreux systèmes de fichiers ne placent que certaines des métadonnées d'un fichier dans la table de répertoires, et le reste des métadonnées de ce fichier dans une structure complètement séparée, 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 incluent des informations sur les régions inutilisées ( bitmap d'espace libre , carte de disponibilité des blocs) et des informations sur les secteurs défectueux . Souvent, ces informations sur un groupe d'allocation sont stockées à l'intérieur du groupe d'allocation lui-même.

Des attributs supplémentaires peuvent être associés sur des systèmes de fichiers, tels que NTFS , XFS , ext2 , ext3 , certaines versions d' UFS et HFS+ , à l'aide d' attributs de fichier étendus . Certains systèmes de fichiers fournissent des attributs définis par l'utilisateur tels que l'auteur du document, le codage des caractères d'un document 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 séparées peuvent être appelées flux ou fourches . Apple utilise depuis longtemps un système de fichiers en fourche sur Macintosh et Microsoft prend en charge les flux en NTFS. Certains systèmes de fichiers conservent plusieurs révisions antérieures d'un fichier sous un seul nom de fichier ; le nom de fichier par lui-même récupère la version la plus récente, tandis que la version enregistrée précédente est accessible en utilisant une convention de nommage spéciale telle que "nom de fichier;4" ou "nom de fichier(-4)" pour accéder à la version il y a quatre sauvegardes.

Voir la comparaison des systèmes de fichiers#Metadata pour plus de détails sur les systèmes de fichiers prenant en charge quels types de métadonnées.

Système de fichiers en tant qu'interface utilisateur abstraite

Dans certains cas, un système de fichiers peut ne pas utiliser de périphérique de stockage mais peut être utilisé pour organiser et représenter l'accès à toutes les données, qu'elles soient stockées ou générées dynamiquement (par exemple procfs ).

Utilitaires

Les systèmes de fichiers incluent des utilitaires pour initialiser, modifier les paramètres et supprimer une instance du système de fichiers. Certains incluent la possibilité d'étendre ou de tronquer l'espace alloué au système de fichiers.

Les utilitaires de répertoire peuvent être utilisés pour créer, renommer et supprimer des entrées de répertoire , également appelées dentries (singulier : dentry ), et pour modifier les métadonnées associées à un répertoire. Les utilitaires de répertoire peuvent également inclure des capacités pour créer des liens supplémentaires vers un répertoire ( liens durs sous Unix ), pour renommer les liens parents (".." dans les systèmes d'exploitation de type Unix) et pour créer des liens bidirectionnels vers des fichiers.

Les utilitaires de fichiers créent, répertorient, copient, déplacent et suppriment des fichiers et modifient les métadonnées. Ils peuvent être en mesure de tronquer les données, de tronquer ou d'étendre l'allocation d'espace, d'ajouter, de déplacer et de modifier des fichiers sur place. Selon la structure sous-jacente du système de fichiers, ils peuvent fournir un mécanisme pour ajouter ou tronquer le début d'un fichier, insérer des entrées au milieu d'un fichier ou supprimer des entrées d'un fichier. Les utilitaires pour libérer de l'espace pour les fichiers supprimés, si le système de fichiers fournit une fonction de restauration, appartiennent également à cette catégorie.

Certains systèmes de fichiers reportent 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 pour exécuter ces fonctions à des moments d'activité minimale. Les utilitaires de défragmentation du système de fichiers en sont un exemple .

Certaines des caractéristiques les plus importantes des utilitaires de système de fichiers sont les activités de supervision qui peuvent impliquer le contournement de la propriété ou l'accès direct au périphérique sous-jacent. Il s'agit notamment de la sauvegarde et de la restauration hautes performances, de la réplication des données et de la réorganisation de diverses structures de données et tables d'allocation au sein du système de fichiers.

Restreindre et autoriser l'accès

Il existe plusieurs mécanismes utilisés par les systèmes de fichiers pour contrôler l'accès aux données. Habituellement, l'intention est d'empêcher la lecture ou la modification de fichiers par un utilisateur ou un groupe d'utilisateurs. Une autre raison est de s'assurer que les données sont modifiées de manière contrôlée afin que l'accès puisse être limité à un programme spécifique. Les exemples incluent les mots de passe stockés dans les métadonnées du fichier ou ailleurs et les autorisations de fichier sous la forme de bits d'autorisation, de listes de contrôle d'accès ou de capacités . La nécessité pour les utilitaires du système de fichiers d'accéder aux données au niveau du support pour réorganiser les structures et fournir une sauvegarde efficace signifie généralement que ceux-ci ne sont efficaces que pour les utilisateurs polis, mais pas contre les intrus.

Des méthodes de cryptage des données de fichiers sont parfois incluses dans le système de fichiers. Ceci est très efficace car il n'est pas nécessaire que les utilitaires du système de fichiers connaissent la graine de chiffrement pour gérer efficacement les données. Les risques liés au cryptage incluent le fait qu'un attaquant peut copier les données et utiliser la force brute pour décrypter les données. De plus, perdre la graine signifie perdre les données.

Maintenir l'intégrité

L'une des responsabilités importantes d'un système de fichiers est de s'assurer que les structures du système de fichiers dans le stockage secondaire restent cohérentes, quelles que soient les actions des programmes accédant au système de fichiers. Cela inclut les actions entreprises si un programme modifiant le système de fichiers se termine de manière anormale ou omet d'informer le système de fichiers qu'il a terminé ses activités. Cela peut inclure la mise à jour des métadonnées, l'entrée de répertoire et la gestion de toutes les données qui ont été mises en mémoire tampon mais pas encore mises à jour sur le support de stockage physique.

Les autres défaillances auxquelles le système de fichiers doit faire face incluent les défaillances de support ou la perte de connexion aux systèmes distants.

En cas de panne du système d'exploitation ou de panne d'alimentation « logicielle », des routines spéciales du système de fichiers doivent être appelées de la même manière que lorsqu'un programme individuel échoue.

Le système de fichiers doit également être capable de corriger les structures endommagées. Ceux-ci peuvent se produire à la suite d'une panne du système d'exploitation pour laquelle le système d'exploitation n'a pas pu notifier le système de fichiers, une panne de courant ou une réinitialisation.

Le système de fichiers doit également enregistrer les événements pour permettre l'analyse des problèmes systémiques ainsi que des problèmes avec des fichiers ou des répertoires spécifiques.

Données d'utilisateur

L'objectif le plus important d'un système de fichiers est de gérer les données utilisateur. Cela inclut le stockage, la récupération et la mise à jour des données.

Certains systèmes de fichiers acceptent les données à stocker sous forme de flux d'octets qui sont collectés et stockés de manière efficace pour le support. Lorsqu'un programme récupère les données, il spécifie la taille d'une mémoire tampon et le système de fichiers transfère les données du support vers la mémoire tampon. Une routine de bibliothèque d'exécution peut parfois permettre au programme utilisateur de définir un enregistrement basé sur un appel de bibliothèque spécifiant une longueur. Lorsque le programme utilisateur lit les données, la bibliothèque récupère les données via le système de fichiers et renvoie un enregistrement .

Certains systèmes de fichiers permettent de spécifier une longueur d'enregistrement fixe qui est utilisée pour toutes les écritures et lectures. Cela facilite la localisation du n ième enregistrement ainsi que la mise à jour des enregistrements.

Une identification pour chaque enregistrement, également appelée clé, rend le système de fichiers plus sophistiqué. Le programme utilisateur peut lire, écrire et mettre à jour des enregistrements indépendamment de leur emplacement. Cela nécessite une gestion compliquée des blocs de supports séparant généralement les blocs clés et les blocs de données. Des algorithmes très efficaces peuvent être développés avec des structures pyramidales pour localiser les enregistrements.

Utiliser un système de fichiers

Les utilitaires, les bibliothèques d'exécution spécifiques au langage et les programmes utilisateur utilisent les API du système de fichiers pour effectuer des requêtes auprès du système de fichiers. Ceux-ci incluent 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.

Plusieurs systèmes de fichiers dans un seul système

Fréquemment, les systèmes de vente au détail sont configurés avec un seul système de fichiers occupant l'intégralité du périphérique de stockage .

Une autre approche consiste à partitionner le disque afin que plusieurs systèmes de fichiers avec des attributs différents puissent être utilisés. Un système de fichiers, à utiliser comme cache de navigateur ou stockage de courrier électronique, peut être configuré avec une petite taille d'allocation. Cela maintient l'activité de création et de suppression de fichiers typiques de l'activité du navigateur dans une zone étroite du disque où elle n'interférera pas avec les autres allocations de fichiers. Une autre partition peut être créée pour le stockage de fichiers audio ou vidéo avec une taille de bloc relativement importante. Un autre encore peut normalement être défini en lecture seule et seulement périodiquement être défini en écriture.

Une troisième approche, qui est principalement utilisée dans les systèmes cloud, consiste à utiliser des « images disque » pour héberger des systèmes de fichiers supplémentaires, avec les mêmes attributs ou non, dans un autre système de fichiers (hôte) en tant que fichier. Un exemple courant est la virtualisation : un utilisateur peut exécuter une distribution Linux expérimentale (en utilisant le système de fichiers ext4 ) dans une machine virtuelle sous son environnement Windows de production (en 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.

Le fait d'avoir plusieurs systèmes de fichiers sur un seul système présente l'avantage supplémentaire qu'en cas de corruption d'une seule partition, les systèmes de fichiers restants seront souvent toujours intacts. Cela inclut la destruction par un virus de la partition système ou même d'un système qui ne démarre pas. Les utilitaires de système de fichiers qui nécessitent un accès dédié peuvent être efficacement exécutés au coup par coup. De plus, la défragmentation peut être plus efficace. Plusieurs utilitaires de maintenance du 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. En ce qui concerne les fichiers image, on peut facilement "spin off" des images différentielles qui ne contiennent que de "nouvelles" données écrites dans l'image principale (originale). Les images différentielles peuvent être utilisées pour des raisons de sécurité (en tant que système « jetable » - peuvent être rapidement restaurées si elles sont détruites ou contaminées par un virus, car l'ancienne image peut être supprimée et une nouvelle image peut être créée en quelques secondes, même sans procédures automatisées) et un déploiement rapide de la machine virtuelle (puisque les images différentielles peuvent être rapidement générées à l'aide d'un script par lots).

Limites de conception

Tous les systèmes de fichiers ont une certaine limite fonctionnelle qui définit la capacité de données stockable maximale au sein de ce système . Ces limites fonctionnelles sont le fruit d'un effort de supposition du concepteur en fonction de la taille actuelle des systèmes de stockage et de la taille probable des systèmes de stockage à l'avenir. Le stockage sur disque a continué d'augmenter à des taux presque exponentiels (voir la loi de Moore ), donc après quelques années, les systèmes de fichiers ont continué à atteindre des limites de conception qui obligent les utilisateurs d'ordinateurs à passer à plusieurs reprises à un système plus récent avec une capacité toujours plus grande.

La complexité du système de fichiers varie généralement proportionnellement à la capacité de stockage disponible. Les systèmes de fichiers de début des années 1980 les ordinateurs personnels avec 50 Ko à 512 Ko de stockage ne serait pas un choix raisonnable pour les systèmes de stockage modernes avec des centaines de giga - octets de capacité. De même, les systèmes de fichiers modernes ne seraient pas un choix raisonnable pour ces premiers systèmes, car la complexité des structures de systèmes de fichiers modernes consommerait rapidement, voire dépasserait la capacité très limitée des premiers systèmes de stockage.

Types de systèmes de fichiers

Les types de systèmes de fichiers peuvent être classés en systèmes de fichiers disque/bande, systèmes de fichiers réseau et systèmes de fichiers à usage spécial.

Systèmes de fichiers sur disque

Un système de fichiers sur disque tire parti de la capacité des supports de stockage sur disque à adresser des données de manière aléatoire dans un court laps de temps. Des considérations supplémentaires incluent la vitesse d'accès aux données après celles initialement demandées et l'anticipation que les données suivantes peuvent également être demandées. Cela permet à plusieurs utilisateurs (ou processus) d'accéder à diverses données sur le disque sans tenir compte de l'emplacement séquentiel des données. Les exemples incluent FAT ( FAT12 , FAT16 , FAT32 ), exFAT , NTFS , HFS et HFS + , HPFS , PASA , UFS , ext2 , ext3 , ext4 , XFS , Btrfs , fichiers-11 , Veritas File System , VMFS , ZFS , ReiserFS et ScoutFS . Certains systèmes de fichiers sur disque sont des systèmes de fichiers de journalisation ou des systèmes de fichiers de version .

Disques optiques

ISO 9660 et Universal Disk Format (UDF) sont deux formats courants qui ciblent les disques compacts , les DVD et les disques Blu-ray . Mount Rainier est une extension à UDF prise en charge depuis la série 2.6 du noyau Linux et depuis Windows Vista qui facilite la réécriture sur DVD.

Systèmes de fichiers Flash

Un système de fichiers flash prend en compte les capacités spéciales, les performances et les restrictions des périphériques de mémoire flash . Souvent, un système de fichiers sur disque peut utiliser un périphérique de mémoire flash comme support de stockage sous-jacent, mais il est préférable d'utiliser un système de fichiers spécialement conçu pour un périphérique flash.

Systèmes de fichiers sur bande

Un système de fichiers sur bande est un système de fichiers et un format de bande conçus pour stocker des fichiers sur bande. Les bandes magnétiques sont des supports de stockage séquentiels avec des temps d'accès aux données aléatoires nettement plus longs que les disques, ce qui pose des défis pour la création et la gestion efficace d'un système de fichiers à usage général.

Dans un système de fichiers sur disque, il existe généralement un répertoire de fichiers maître et une carte des régions de données utilisées et libres. Tout ajout, modification ou suppression de fichier nécessite la mise à jour du répertoire et des cartes utilisées/gratuites. L'accès aléatoire aux régions de données est mesuré en millisecondes, ce système fonctionne donc bien pour les disques.

La bande nécessite un mouvement linéaire pour enrouler et dérouler des bobines de support potentiellement très longues. Ce mouvement de bande peut prendre plusieurs secondes à plusieurs minutes pour déplacer la tête de lecture/écriture d'une extrémité de la bande à l'autre.

Par conséquent, un répertoire de fichiers maître et une carte d'utilisation peuvent être extrêmement lents et inefficaces avec la bande. L'écriture implique généralement la lecture de la carte d'utilisation des blocs pour trouver des blocs libres pour l'écriture, la mise à jour de la carte d'utilisation et du répertoire pour ajouter les données, puis l'avancement de la bande pour écrire les données au bon endroit. Chaque écriture de fichier supplémentaire nécessite la mise à jour de la carte et du répertoire et l'écriture des données, ce qui peut prendre plusieurs secondes pour chaque fichier.

Au lieu de cela, les systèmes de fichiers sur bande permettent généralement de répartir le répertoire de fichiers sur la bande avec les données, ce que l'on appelle le streaming , de sorte que les mouvements de bande répétés et fastidieux ne sont pas nécessaires pour écrire de nouvelles données.

Cependant, un effet secondaire de cette conception est que la lecture du répertoire de fichiers d'une bande nécessite généralement l'analyse de la bande entière pour lire toutes les entrées de répertoire dispersées. La plupart des logiciels d'archivage de données qui fonctionnent avec le stockage sur bande stockent une copie locale du catalogue de bandes sur un système de fichiers sur disque, de sorte que l'ajout de fichiers sur une bande peut être effectué rapidement sans avoir à réanalyser le support de bande. La copie du catalogue de bandes locales est généralement supprimée si elle n'est pas utilisée pendant une période de temps spécifiée, auquel cas la bande doit être réanalysée si elle doit être utilisée à l'avenir.

IBM a développé un système de fichiers pour bande appelé Linear Tape File System . L'implémentation IBM de ce système de fichiers a été publiée en tant que produit open source IBM Linear Tape File System — Single Drive Edition (LTFS-SDE) . Le système de fichiers sur bande linéaire utilise une partition distincte sur la bande pour enregistrer les métadonnées d'index, évitant ainsi les problèmes associés à la dispersion des entrées de répertoire sur l'ensemble de la bande.

Formatage de bande

L'écriture de données sur une bande, l'effacement ou le formatage d'une bande est souvent un processus qui prend beaucoup de temps et peut prendre plusieurs heures sur des bandes volumineuses. Avec de nombreuses technologies de bande de données, il n'est pas nécessaire de formater la bande avant d'écraser de nouvelles données sur la bande. Cela est dû à la nature intrinsèquement destructrice de l'écrasement des données sur des supports séquentiels.

En raison du temps que peut prendre le formatage d'une bande, les bandes sont généralement préformatées afin que l'utilisateur de la bande n'ait pas besoin de passer du temps à préparer chaque nouvelle bande à utiliser. Tout ce qui est généralement nécessaire est d'écrire une étiquette de support d'identification sur la bande avant utilisation, et même cela peut être automatiquement écrit par le logiciel lorsqu'une nouvelle bande est utilisée pour la première fois.

Systèmes de fichiers de base de données

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

IBM DB2 for i (anciennement DB2/400 et DB2 for i5/OS) est un système de fichiers de base de données faisant partie du système d'exploitation basé sur les objets IBM i (anciennement OS/400 et i5/OS), incorporant un seul niveau stocker et s'exécuter sur IBM Power Systems (anciennement AS/400 et iSeries), conçu par Frank G. Soltis, ancien scientifique en chef d'IBM pour IBM i. Vers 1978 à 1988, Frank G. Soltis et son équipe d'IBM Rochester ont conçu et appliqué avec succès des technologies telles que le système de fichiers de base de données, là où d'autres, comme Microsoft, n'ont pas réussi par la suite. Ces technologies sont officieusement connues sous le nom de « Fortress Rochester » et étaient dans quelques aspects de base étendus des premières technologies Mainframe, mais à bien des égards plus avancées d'un point de vue technologique.

Certains 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 :

  • De nombreux systèmes de gestion de contenu Web utilisent un SGBD relationnel pour stocker et récupérer des fichiers. Par exemple, les fichiers XHTML sont stockés sous forme de champs XML ou texte, tandis que les fichiers image sont stockés sous forme de champs blob ; Les instructions SQL SELECT (avec XPath en option ) récupèrent les fichiers et permettent l'utilisation d'une logique sophistiquée et d'associations d'informations plus riches que les « systèmes de fichiers habituels ». De nombreux CMS ont également la possibilité de stocker uniquement les métadonnées dans la base de données, le système de fichiers standard étant utilisé pour stocker le contenu des fichiers.
  • Les systèmes de fichiers très volumineux, incarnés par des applications comme Apache Hadoop et Google File System , utilisent certains concepts de système de fichiers de base de données .

Systèmes de fichiers transactionnels

Certains programmes doivent soit apporter plusieurs modifications au système de fichiers, soit, si une ou plusieurs des modifications échouent pour une raison quelconque, n'effectuer aucune des modifications. Par exemple, un programme qui installe ou met à jour un logiciel peut écrire des exécutables, des bibliothèques et/ou des fichiers de configuration. Si une partie de l'écriture échoue et que le logiciel reste partiellement installé ou mis à jour, le logiciel peut être cassé ou inutilisable. Une mise à jour incomplète d'un utilitaire système clé, tel que le shell de commande , peut laisser l'ensemble du système dans un état inutilisable.

Le traitement des transactions introduit la garantie d' atomicité , garantissant que les opérations à l'intérieur d'une transaction sont toutes validées ou que la transaction peut être abandonnée et que le système rejette tous ses résultats partiels. Cela signifie qu'en cas de panne ou de panne de courant, après la récupération, l'état stocké sera cohérent. Soit le logiciel sera complètement installé, soit l'installation ayant échoué sera complètement annulée, mais une installation partielle inutilisable ne sera pas laissée sur le système. Les transactions fournissent également la garantie d' isolement , ce qui signifie que les opérations au sein d'une transaction sont cachées aux autres threads du système jusqu'à ce que la transaction soit validée, et que les opérations interférentes sur le système seront correctement sérialisées avec la transaction.

Windows, à partir de Vista, a ajouté la prise en charge des transactions à NTFS , dans une fonctionnalité appelée Transactional NTFS , 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 ciblant les systèmes embarqués, tels que TFFS.

Assurer la cohérence entre plusieurs opérations de système de fichiers est difficile, voire impossible, sans transactions de système de fichiers. Le verrouillage de fichier peut être utilisé comme mécanisme de contrôle d'accès concurrentiel pour des fichiers individuels, mais il ne protège généralement pas la structure du répertoire ou les métadonnées du fichier. Par exemple, le verrouillage de fichiers ne peut pas empêcher les conditions de concurrence TOCTTOU sur les liens symboliques. Le verrouillage de fichier ne peut pas non plus annuler automatiquement une opération ayant échoué, telle qu'une mise à niveau logicielle ; cela requiert de l'atomicité.

La journalisation des systèmes de fichiers est une technique utilisée pour introduire la cohérence au niveau des transactions dans les structures des systèmes de fichiers. Les transactions de journal ne sont pas exposées aux programmes dans le cadre de l'API du système d'exploitation ; ils ne sont utilisés qu'en interne pour assurer la cohérence à la granularité d'un seul 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 rend difficile la récupération d'ensembles de données fiables et cohérents. La plupart des logiciels de sauvegarde notent simplement quels fichiers ont changé depuis un certain temps, quel que soit l'état transactionnel partagé entre plusieurs fichiers dans l'ensemble de données global. Pour contourner ce problème, certains systèmes de base de données produisent simplement un fichier d'état archivé contenant toutes les données jusqu'à ce point, et le logiciel de sauvegarde ne fait que les sauvegarder et n'interagit pas du tout directement avec les bases de données transactionnelles actives. La récupération nécessite une recréation séparée de la base de données à partir du fichier d'état une fois que le fichier a été restauré par le logiciel de sauvegarde.

Systèmes de fichiers réseau

Un système de fichiers réseau est un système de fichiers qui agit en tant que client pour un protocole d'accès aux fichiers à distance, fournissant un accès aux fichiers sur un serveur. Les programmes utilisant des interfaces locales peuvent créer, gérer et accéder de manière transparente à des répertoires et fichiers hiérarchiques sur des ordinateurs distants connectés au réseau. Les exemples de systèmes de fichiers réseau incluent les clients pour les protocoles NFS , AFS , SMB et les clients de type système de fichiers pour FTP et WebDAV .

Systèmes de fichiers de disques partagés

Un système de fichiers sur disque partagé est un système dans lequel un certain nombre de machines (généralement des serveurs) ont toutes accès au même sous-système de disque externe (généralement un SAN). Le système de fichiers arbitre l'accès à ce sous-système, empêchant les collisions d'écriture. Les exemples incluent GFS2 de Red Hat , GPFS , maintenant 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

Un système de fichiers spécial présente les éléments non-fichiers d'un système d'exploitation sous forme de fichiers afin qu'ils puissent être traités à l'aide des API du système de fichiers. Cela se fait le plus souvent dans les systèmes d'exploitation de type Unix, mais les périphériques reçoivent également des noms de fichiers dans certains systèmes d'exploitation non-Unix.

Systèmes de fichiers de périphérique

Un système de fichiers de périphérique représente les périphériques d'E/S et les pseudo-périphériques sous forme de fichiers, appelés fichiers de périphérique . Les exemples dans les systèmes de type Unix incluent devfs et, dans les systèmes Linux 2.6, udev . Dans les systèmes non similaires à Unix, tels que TOPS-10 et d'autres systèmes d'exploitation influencés par celui-ci, où le nom de fichier complet ou le chemin d' accès d'un fichier peut inclure un préfixe de périphérique, les périphériques autres que ceux contenant des systèmes de fichiers sont référencés par un préfixe de périphérique en spécifiant l'appareil, sans que rien ne le suive.

Autres systèmes de fichiers spéciaux

  • Dans le noyau Linux, configfs et sysfs fournissent des fichiers qui peuvent être utilisés pour interroger le noyau pour obtenir des informations et configurer des entités dans le noyau.
  • procfs mappe les processus et, sous Linux, les autres structures du système d'exploitation dans un espace fichier.

Système de fichiers minimal / stockage de cassettes audio

Dans les années 1970, les disques et les bandes numériques étaient trop chers pour certains des premiers utilisateurs de micro-ordinateurs . Un système de stockage de données de base peu coûteux a été conçu qui utilisait une cassette audio commune .

Lorsque le système avait besoin d'écrire des données, l'utilisateur était invité à appuyer sur "RECORD" sur le magnétophone, puis à appuyer sur "RETURN" sur le clavier pour informer le système que le magnétophone était en train d'enregistrer. Le système a écrit un son pour assurer la synchronisation temporelle, puis des sons modulés qui ont codé un préfixe, les données, une somme de contrôle et un suffixe. Lorsque le système avait besoin de lire des données, l'utilisateur était invité à appuyer sur "PLAY" sur le magnétophone. Le système écoutait les sons sur la bande en attendant qu'une rafale de son puisse être reconnue comme la synchronisation. Le système interpréterait alors les sons suivants comme des données. Lorsque la lecture des données est terminée, le système informe l'utilisateur d'appuyer sur "STOP" sur le magnétophone. C'était primitif, mais ça a (surtout) fonctionné. Les données étaient stockées de manière séquentielle, généralement dans un format sans nom, bien que certains systèmes (tels que la série d'ordinateurs Commodore PET ) permettaient de nommer les fichiers. Plusieurs ensembles de données pourraient être écrits et localisés en faisant avancer rapidement la bande et en observant au compteur de bande pour trouver le début approximatif de la prochaine région de données sur la bande. L'utilisateur devra peut-être écouter les sons pour trouver le bon endroit pour commencer à jouer la prochaine région de données. Certaines implémentations incluaient même des sons audibles entrecoupés de données.

Systèmes de fichiers plats

Dans un système de fichiers plat, il n'y a pas de sous-répertoires ; les entrées de répertoire pour tous les fichiers sont stockées dans un seul répertoire.

Lorsque le support de disquette était disponible pour la première fois, ce type de système de fichiers était adéquat en raison de la quantité relativement faible d'espace de données disponible. Les machines CP/M comportaient un système de fichiers plat, dans lequel les fichiers pouvaient être affectés à l'une des 16 zones utilisateur et les opérations de fichiers génériques réduites pour fonctionner sur une seule au lieu de fonctionner par défaut sur toutes. Ces zones utilisateurs n'étaient que des attributs spéciaux associés aux fichiers ; c'est-à-dire qu'il n'était pas nécessaire de définir un quota spécifique pour chacune de ces zones et les fichiers pouvaient être ajoutés aux groupes tant qu'il y avait encore de l'espace de stockage libre sur le disque. Le premier Apple Macintosh comportait également un système de fichiers plat, le Macintosh File System . C'était inhabituel dans la mesure où le programme de gestion de fichiers ( Macintosh Finder ) créait l'illusion d'un système de classement partiellement hiérarchique au-dessus d'EMFS. Cette structure exigeait que chaque fichier ait un nom unique, même s'il semblait se trouver dans un dossier séparé. IBM DOS/360 et OS/360 stockent les entrées pour tous les fichiers d'un pack de disques ( volume ) dans un répertoire du pack appelé Table des matières des volumes (VTOC).

Bien que simples, les systèmes de fichiers plats deviennent gênants à mesure que le nombre de fichiers augmente et rend difficile l'organisation des données en groupes de fichiers connexes.

Un ajout récent à la famille des systèmes de fichiers plats est le S3 d' Amazon , un service de stockage à distance, qui est intentionnellement simpliste pour permettre aux utilisateurs de personnaliser la façon dont leurs données sont stockées. Les seules constructions sont les buckets (imaginez un lecteur de disque de taille illimitée) et les objets (similaires, mais pas identiques au concept standard d'un fichier). La gestion avancée des fichiers est autorisée en pouvant utiliser presque n'importe quel caractère (y compris « / ») dans le nom de l'objet et la possibilité de sélectionner des sous-ensembles du contenu du compartiment en fonction de préfixes identiques.

Systèmes de fichiers et systèmes d'exploitation

De nombreux systèmes d'exploitation prennent en charge plusieurs systèmes de fichiers. Parfois, le système d'exploitation et le système de fichiers sont si étroitement liés qu'il est difficile de séparer les fonctions du système de fichiers.

Il doit y avoir une interface fournie par le logiciel du système d'exploitation entre l'utilisateur et le système de fichiers. Cette interface peut être textuelle (telle que fournie par une interface de ligne de commande , telle que le shell Unix ou OpenVMS DCL ) ou graphique (telle que fournie par une interface utilisateur graphique , telle que les navigateurs de fichiers ). Si graphique, la métaphore du dossier , contenant des documents, d'autres fichiers et des dossiers imbriqués est souvent utilisée (voir aussi : répertoire et dossier).

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, ce qui fait que tous les fichiers de tous les appareils semblent exister dans une seule hiérarchie. Cela signifie que dans ces systèmes, il existe un répertoire racine et que chaque fichier existant sur le système se trouve quelque part en dessous. Les systèmes de type Unix peuvent utiliser un disque RAM ou une ressource partagée en réseau comme répertoire racine.

Les systèmes de type Unix attribuent un nom de périphérique à chaque périphérique, mais ce n'est pas ainsi que les fichiers de ce périphérique sont accessibles. Au lieu de cela, pour accéder aux fichiers sur un autre périphérique, le système d'exploitation doit d'abord être informé de l'emplacement dans l'arborescence de répertoires où ces fichiers doivent apparaître. Ce processus est appelé montage d' un système de fichiers. Par exemple, pour accéder aux fichiers d'un CD-ROM , il faut dire au système d'exploitation "Prendre le système de fichiers de ce CD-ROM et le faire apparaître sous tel ou tel répertoire". Le répertoire donné au système d'exploitation est appelé le 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 le Filesystem Hierarchy Standard ) et est spécifiquement destiné à être utilisé comme 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. Généralement, 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 incluent souvent des logiciels et des outils qui facilitent le processus de montage et lui fournissent de nouvelles fonctionnalités. Certaines de ces stratégies ont été appelées « montage automatique » en raison de leur objectif.

  • Dans de nombreuses situations, les systèmes de fichiers autres que la racine doivent être disponibles dès que le système d'exploitation a démarré . Tous les systèmes de type Unix offrent donc une 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 dans Solaris ), qui indique également les options et les points de montage.
  • Dans certaines situations, il n'est pas nécessaire de monter certains systèmes de fichiers au démarrage , bien que leur utilisation puisse être souhaitée par la suite. Il existe des utilitaires pour les systèmes de type Unix qui permettent le montage de systèmes de fichiers prédéfinis à la demande.
  • Les supports amovibles permettent de transférer des programmes et des données entre des machines sans connexion physique. Les exemples courants incluent les lecteurs flash USB , les CD-ROM et les DVD . Des utilitaires ont donc été développés pour détecter la présence et la disponibilité d'un support puis monter ce support sans aucune intervention de l'utilisateur.
  • Les systèmes progressifs de type Unix ont également introduit un concept appelé surmontage ; voir, par exemple, le projet Linux supermount-ng . Par exemple, une disquette qui a été surmontée peut être physiquement retirée du système. Dans des circonstances normales, le disque doit avoir été synchronisé puis démonté avant son retrait. Si la synchronisation a eu lieu, un disque différent peut être inséré dans le lecteur. Le système remarque automatiquement que le disque a changé et met à jour le contenu du point de montage pour refléter le nouveau support.
  • Un automounter montera automatiquement un système de fichiers lorsqu'une référence est faite au répertoire au-dessus duquel il doit être monté. Ceci est généralement utilisé 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 de supports, comme cela serait approprié pour les supports amovibles.

Linux

Linux prend en charge de nombreux systèmes de fichiers, mais les choix 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 le flash brut sans couche de traduction flash (FTL) ou dispositif de technologie de mémoire (MTD), il existe , entre autres , UBIFS , JFFS2 et YAFFS . SquashFS est un système de fichiers compressé en lecture seule courant.

Solaris

Solaris dans les versions antérieures utilisait par défaut (non journalisé ou sans journalisation) UFS pour les systèmes de fichiers amorçables et supplémentaires. Solaris par défaut, pris en charge et étendu UFS.

Prise en charge d' autres systèmes de fichiers et des améliorations importantes ont été ajoutées au fil du temps, y compris Veritas Software Corp. (journaling) VxFS , Sun Microsystems (clusters) QFS , Sun Microsystems (journaling) UFS et Sun Microsystems (open source, piscinable, 128 compressible bits, et correction d'erreurs) ZFS .

Des extensions de noyau ont été ajoutées à Solaris pour permettre le démarrage de Veritas VxFS . L' exploitation forestière ou la journalisation a été ajouté à UFS dans Sun Solaris 7 . Les versions de Solaris 10 , Solaris Express, OpenSolaris et d'autres variantes open source du système d'exploitation Solaris ont pris en charge ultérieurement ZFS amorçable .

Logical Volume Management permet d'étendre un système de fichiers sur plusieurs périphériques dans le but d'ajouter de la redondance, de la capacité et/ou du débit. Les environnements hérités de Solaris peuvent utiliser Solaris Volume Manager (anciennement connu sous le nom de Solstice DiskSuite ). Plusieurs systèmes d'exploitation (y compris Solaris) peuvent utiliser Veritas Volume Manager . Les systèmes d'exploitation modernes basés sur Solaris éclipsent le besoin de gestion des volumes en tirant parti des 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 un système de fichiers hérité du Mac OS classique appelé HFS Plus (HFS+). Apple utilise également le terme "Mac OS étendu" pour HFS+. HFS Plus est un système de fichiers riche en métadonnées et préservant la casse mais (généralement) insensible à la casse . En raison des racines Unix de macOS, des autorisations Unix ont été ajoutées à HFS Plus. Les versions ultérieures de HFS Plus ont ajouté la journalisation pour empêcher la corruption de la structure du système de fichiers et ont introduit un certain nombre d'optimisations aux algorithmes d'allocation dans une tentative de défragmentation automatique des 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. Sur Mac OS, le filetype peut provenir du code de type , stocké dans les métadonnées de fichier ou l' extension de nom de fichier .

HFS Plus a trois types de liens : les liens physiques de style Unix , les liens symboliques de style 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 code du gestionnaire de fichiers dans l' espace utilisateur .

macOS 10.13 High Sierra, qui a été annoncé le 5 juin 2017 lors de l'événement 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, depuis Mac OS X Leopard , macOS ne peut plus être installé sur un volume UFS, et un système pré-Leopard installé sur un volume UFS ne peut plus être mis à niveau vers Leopard. À partir de Mac OS X Lion, le support UFS a été complètement abandonné.

Les nouvelles versions de macOS sont capables de lire et d'écrire dans les anciens systèmes de fichiers FAT (16 et 32) communs à Windows. Ils sont également capables de lire les nouveaux systèmes de fichiers NTFS pour Windows. Pour écrire sur les systèmes de fichiers NTFS sur les versions macOS antérieures à Mac OS X , un logiciel tiers Snow Leopard est nécessaire. Mac OS X 10.6 (Snow Leopard) et versions ultérieures permettent d'écrire sur des systèmes de fichiers NTFS, mais uniquement après une modification des paramètres système non négligeable (un logiciel tiers existe qui automatise cela).

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 à casse mixte dans différentes pages de codes , les noms de fichiers longs (255 caractères), l'utilisation plus efficace de l'espace disque, une architecture qui maintient les éléments liés proches les uns des autres sur le volume du disque, moins de fragmentation des données, l' espace basé sur l'étendue allocation, une arborescence B+ pour les répertoires et le répertoire racine situé au milieu du disque, pour un accès moyen plus rapide. Un système de fichiers journalisé (JFS) a été livré en 1999.

PC-BSD

PC-BSD est une version de bureau de FreeBSD, qui hérite du support ZFS de FreeBSD , de la même manière que FreeNAS . Le nouveau programme d'installation graphique de PC-BSD peut gérer / ( root ) sur les installations de pool ZFS et RAID-Z et le chiffrement de disque en utilisant Geli dès le début d'une manière simple et pratique ( GUI ). La version actuelle de PC-BSD 9.0+ 'Isotope Edition' dispose de la version 5 du système de fichiers ZFS et de la version 28 du pool de stockage ZFS.

Plan 9

Plan 9 de Bell Labs de tout de en tant que fichier et accède à tous les objets sous forme de fichier sera accessible (il n'y a pas ioctl ou mmap ): mise en réseau, les graphiques, le débogage, l' authentification, les capacités, le cryptage et d' autres services sont accessibles via I /O opérations sur les descripteurs de fichiers . Le protocole 9P supprime la différence entre les fichiers locaux et distants. Les systèmes de fichiers de Plan 9 sont organisés à l'aide d'espaces de noms privés par processus, permettant à chaque processus d'avoir une vue différente des nombreux systèmes de fichiers qui fournissent des ressources dans un système distribué.

Le système d'exploitation Inferno partage ces concepts avec Plan 9.

Microsoft Windows

Liste des répertoires dans un shell de commande Windows

Windows utilise les systèmes de fichiers FAT , NTFS , exFAT , Live File System et ReFS (le dernier d'entre eux 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 cela).

Windows utilise une abstraction de lettre de lecteur au niveau de l'utilisateur pour distinguer un disque ou une partition d'un autre. Par exemple, le chemin C:\WINDOWS représente un répertoire WINDOWS sur la partition représentée par la lettre C. Le lecteur C: est le plus souvent utilisé pour la partition principale du disque dur , sur laquelle Windows est généralement installé et à partir duquel il démarre. Cette "tradition" est devenue si fermement ancrée que des bogues existent dans de nombreuses applications qui supposent que le lecteur sur lequel le système d'exploitation est installé est C. L'utilisation de lettres de lecteur et la tradition d'utiliser "C" comme lettre de lecteur pour la partition principale du disque dur, peut être attribuée à MS-DOS , où les lettres A et B étaient réservées pour un maximum de deux lecteurs de disquettes. Ceci à son tour dérivé du CP/M dans les années 1970, et finalement du CP/CMS d' IBM de 1967.

GROS

La famille des systèmes de fichiers FAT est prise en charge par presque tous les systèmes d'exploitation pour ordinateurs personnels, y compris toutes les versions de Windows et MS-DOS / PC DOS , OS/2 et DR-DOS . (DOS PC est une version OEM de MS-DOS, MS-DOS a été basé sur SCP 's 86-DOS . DR-DOS a été basé sur la recherche numérique est concurrente DOS , un successeur du CP / M-86 ). Le Les systèmes de fichiers FAT sont donc bien adaptés comme format d'échange universel entre les ordinateurs et les appareils de tout type et de tout âge.

Le système de fichiers FAT remonte à un précurseur FAT 8 bits (incompatible) dans Standalone Disk BASIC et au projet MDOS/MIDAS de courte durée .

Au fil des ans, le système de fichiers a été étendu de FAT12 à FAT16 et FAT32 . Diverses fonctionnalités ont été ajoutées au système de fichiers, notamment des sous - répertoires , la prise en charge des pages de codes , des attributs étendus et des noms de fichiers longs . Des tiers tels que Digital Research ont intégré une prise en charge facultative du suivi des suppressions et des schémas de sécurité multi-utilisateurs basés sur des volumes/répertoires/fichiers pour prendre en charge les mots de passe et les autorisations de fichiers et de répertoires tels que les droits d'accès en lecture/écriture/exécution/suppression. 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 avaient des restrictions sur la taille maximale des disques ou partitions au format FAT .

FAT32 corrige les limitations de FAT12 et FAT16, à l'exception de la limite de taille de fichier de près de 4 Go, mais elle reste limitée par rapport à NTFS.

FAT12, FAT16 et FAT32 ont également une limite de huit caractères pour le nom de fichier et de trois caractères pour l'extension (comme .exe ). Ceci est communément appelé la limite de nom de fichier 8.3 . VFAT , une extension facultative de FAT12, FAT16 et FAT32, introduite dans Windows 95 et Windows NT 3.5 , permettait de stocker les noms de fichiers longs ( LFN ) dans le système de fichiers FAT de manière rétrocompatible.

NTFS

NTFS , introduit avec le système d' exploitation Windows NT en 1993, autorisait le contrôle des autorisations basé sur les ACL . Les autres fonctionnalités également prises en charge par NTFS incluent les liens physiques, les flux de fichiers multiples, l'indexation des attributs, le suivi des quotas, les fichiers épars, le chiffrement, la compression et les points d'analyse (répertoires fonctionnant comme points de montage pour d'autres systèmes de fichiers, liens symboliques, jonctions, liens de stockage distant) .

exFAT

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. Le système de fichiers est pris en charge avec les systèmes Windows plus récents, tels que Windows XP, Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8 et Windows 10.

exFAT est pris en charge dans macOS à partir de la version 10.6.5 (Snow Leopard). La prise en charge dans d'autres systèmes d'exploitation est rare car la mise en œuvre de la prise en charge d'exFAT nécessite une licence. exFAT est le seul système de fichiers entièrement pris en charge sur macOS et Windows pouvant contenir des fichiers de plus de 4 Go.

OpenVMS

MVS

Avant l'introduction de VSAM , les systèmes OS/360 implémentaient un système de fichiers hybride. Le système a été conçu pour prendre en charge facilement les packs de disques amovibles , de sorte que les informations relatives à tous les fichiers sur un disque ( volume dans la terminologie IBM) sont stockées sur ce disque dans un fichier système plat appelé Volume Table of Contents (VTOC). Le VTOC stocke toutes les métadonnées du fichier. Plus tard, une structure de répertoires hiérarchique a été imposée avec l'introduction du catalogue système , qui peut éventuellement cataloguer des fichiers (ensembles de données) sur des volumes résidents et amovibles. Le catalogue ne contient que des informations pour associer un ensemble de données à un volume spécifique. Si l'utilisateur demande l'accès à un ensemble de données sur un volume hors ligne et qu'il dispose des privilèges appropriés, le système tentera de monter le volume requis. Les ensembles de données catalogués et non catalogués sont toujours accessibles à l'aide des informations du VTOC, en contournant le catalogue, si l'ID de volume requis est fourni à la demande OPEN. Plus tard encore, le VTOC a été indexé pour accélérer l'accès.

Système de moniteur conversationnel

Le composant IBM Conversational Monitor System (CMS) de VM/370 utilise un système de fichiers plat distinct pour chaque disque virtuel ( minidisk ). Les données de fichiers et les informations de contrôle sont dispersées et mélangées. L'ancre est un enregistrement appelé Master File Directory (MFD), toujours situé dans le quatrième bloc du disque. À l'origine, CMS utilisait des blocs de 800 octets de longueur fixe, mais les versions ultérieures utilisaient des blocs de plus grande taille jusqu'à 4K. L'accès à un enregistrement de données nécessite deux niveaux d' indirection , où l'entrée de répertoire du fichier (appelée entrée de table d'état de fichier (FST)) pointe vers des blocs contenant une liste d'adresses des enregistrements individuels.

Système de fichiers AS/400

Les données sur l'AS/400 et ses successeurs se composent d'objets système mappés dans l'espace d'adressage virtuel du système dans un magasin à un seul niveau . De nombreux types d' objets sont définis, y compris les répertoires et les fichiers trouvés 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

  • Le système de fichiers Prospero est un système de fichiers basé sur le modèle de système virtuel. Le système a été créé par le Dr B. Clifford Neuman de l'Institut des sciences de l'information de l'Université de Californie du Sud.
  • 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 fournit des « fichiers de ligne » où les longueurs d'enregistrement 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 longueur identique ou différente, et supprimés n'importe où dans le fichier sans qu'il soit nécessaire de lire et de réécrire l'intégralité du fichier ; (ii) l'utilisation de fichiers de clés de programme peut être partagée ou autorisée avec des commandes et des programmes en plus des utilisateurs et des groupes ; et (iii) il existe un mécanisme de verrouillage de fichier complet qui protège à la fois les données du fichier et ses métadonnées.

Limites

Conversion du type d'un système de fichiers

Il peut être avantageux ou nécessaire d'avoir des fichiers dans un système de fichiers différent de celui qui existe actuellement. Les raisons incluent la nécessité d'augmenter les besoins en espace au-delà des limites du système de fichiers actuel. La profondeur du chemin peut devoir être augmentée au-delà des restrictions du système de fichiers. Il peut y avoir des considérations de performance ou de fiabilité. Fournir l'accès à un autre système d'exploitation qui ne prend pas en charge le système de fichiers existant est 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 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 en arrière), et ext3 et ext4 peuvent être convertis en btrfs , et reconvertis jusqu'à ce que les informations d'annulation soient supprimées. Ces conversions sont possibles en utilisant le même format pour les données de fichier elles-mêmes et en déplaçant les métadonnées dans un espace vide, dans certains cas en utilisant la prise en charge des fichiers épars .

Migration vers un autre système de fichiers

La migration a l'inconvénient de nécessiter de l'espace supplémentaire bien qu'elle puisse être plus rapide. Le meilleur des cas est s'il y a de l'espace inutilisé sur le support qui contiendra le système de fichiers final.

Par exemple, pour migrer un système de fichiers FAT32 vers un système de fichiers ext2. Créez d'abord un nouveau système de fichiers ext2, puis copiez les données dans le système de fichiers, puis supprimez le système de fichiers FAT32.

Une alternative, lorsqu'il n'y a pas suffisamment d'espace pour conserver le système de fichiers d'origine jusqu'à ce que le nouveau soit créé, consiste à utiliser une zone de travail (comme un support amovible). Cela prend plus de temps, mais une sauvegarde des données est un bel effet secondaire.

Chemins de fichiers longs et noms de fichiers longs

Dans les systèmes de fichiers hiérarchiques, les fichiers sont accessibles au moyen d'un chemin qui est une liste de branchements de répertoires contenant le fichier. Différents systèmes de fichiers ont des limites différentes sur la profondeur du chemin. Les systèmes de fichiers ont également une limite sur la longueur d'un nom de fichier individuel.

La copie de fichiers avec des noms longs ou situés dans des chemins de profondeur significative d'un système de fichiers à un autre peut entraîner des résultats indésirables. Cela dépend de la façon dont l'utilitaire qui effectue la copie gère l'écart.

Voir également

Remarques

Les références

Sources

Lectures complémentaires

Livres

En ligne

Liens externes