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 périphériques de stockage , notamment les disques durs (HDD), les disques SSD , les bandes magnétiques et les disques optiques .
Une partie de la mémoire vive de l'ordinateur peut être configurée comme un disque RAM servant de périphérique de stockage pour un système de fichiers. Les systèmes de fichiers tels que tmpfs peuvent stocker des fichiers en mémoire virtuelle .
procfs et sysfs ), soit mappés sur un autre support de stockage.
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 des blocs de données , assure la mise en mémoire tampon et d'autres fonctions de gestion de la mémoire , et contrôle le placement des blocs à des emplacements spécifiques sur le support de stockage. Cette couche utilise des pilotes de périphériques ou des E/S de canal pour piloter le périphérique de stockage.
Attributs
Noms de fichiers
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
Les structures de répertoires peuvent être plates (c'est-à-dire linéaires) ou permettre des hiérarchies en autorisant un répertoire à contenir des répertoires, appelés sous-répertoires.
Le premier système de fichiers à prendre en charge des hiérarchies de répertoires arbitraires 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, tout comme le système de fichiers hiérarchique d' Apple et son successeur HFS+ dans le 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 l'ODS-2 (On-Disk Structure-2) et les niveaux supérieurs du système de fichiers Files-11 dans OpenVMS .
- nom
- la taille, qui peut être stockée sous forme de nombre de blocs alloués ou sous forme de nombre d'octets
- date de création, dernière consultation, dernière modification
- utilisateur propriétaire et groupe
- autorisations d'accès
- attributs du fichier, tels que son type (lecture seule, exécutable , etc.).
- type de périphérique (par exemple bloc , caractère , socket , sous-répertoire , etc.)
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.
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

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
Des méthodes de chiffrement des données sont parfois intégrées au système de fichiers. Cette approche est très efficace car elle dispense les utilitaires du système de fichiers de connaître la clé de chiffrement pour gérer les données. Toutefois, le chiffrement présente des risques : un attaquant peut copier les données et les déchiffrer par force brute. De plus, la perte de la clé de chiffrement entraîne la perte des données.
quota de stockage

Certains systèmes d'exploitation permettent à un administrateur système d'activer des quotas de disque afin de limiter l'utilisation de l'espace de stockage par un utilisateur.
Intégrité des données
Un système de fichiers garantit généralement la cohérence des données stockées aussi bien en fonctionnement normal que dans des situations exceptionnelles telles que :
- Le programme accédant au fichier omet d'informer le système de fichiers qu'il a terminé l'accès au fichier (pour fermer un fichier).
- L'accès au programme se termine anormalement (plantage).
- échec des médias
- perte de connexion aux systèmes distants
- défaillance du système d'exploitation
- réinitialisation du système ( redémarrage logiciel )
- panne de courant ( redémarrage forcé )
La reprise après des situations exceptionnelles peut inclure la mise à jour des métadonnées, des entrées de répertoire et le traitement des données mises en mémoire tampon mais non écrites sur le support de stockage.
Enregistrement
Un système de fichiers peut enregistrer des événements pour permettre l'analyse de problèmes tels que :
- Problèmes de fichiers ou systémiques et performances
- accès néfaste
Accès aux données
Accès au flux d'octets
De nombreux systèmes de fichiers accèdent aux données sous forme de flux d' octets . Généralement, pour lire des données, un programme fournit une mémoire tampon ; le système de fichiers récupère alors les données sur le support et les écrit dans cette mémoire tampon. L'écriture consiste pour le programme à fournir une mémoire tampon d'octets que le système de fichiers lit puis stocke sur le support.
Accès aux dossiers
Certains systèmes de fichiers, ou couches superposées à un système de fichiers, permettent à un programme de définir un enregistrement afin qu'il puisse lire et écrire des données sous forme de structure, et non sous forme de séquence désorganisée d'octets.
Si une définition d'enregistrement de longueur fixe est utilisée, la localisation du n -ième enregistrement peut être calculée mathématiquement, ce qui est relativement rapide par rapport à l'analyse des données pour les séparateurs d'enregistrements.
Chaque enregistrement possède une identification, également appelée clé, qui permet à un programme de lire, d'écrire et de mettre à jour les enregistrements indépendamment de leur emplacement de stockage. Ce type de stockage nécessite la gestion de blocs de support, généralement séparés en blocs de clés et blocs de données. Des algorithmes efficaces peuvent être développés avec des structures pyramidales pour localiser les enregistrements.
Services publics
En règle générale, un système de fichiers peut être géré par l'utilisateur via divers utilitaires.
Certains utilitaires permettent à l'utilisateur de créer, configurer et supprimer une instance d'un système de fichiers. Ils peuvent également permettre d'étendre ou de réduire l'espace alloué au système de fichiers.
liens physiques sous Unix ), de renommer les liens parents (« .." » dans les systèmes d’exploitation de type Unix ) 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èmes de fichiers sur bande
Un système de fichiers sur bande magnétique 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 dont les temps d'accès aléatoire aux données sont nettement plus longs que ceux des disques, ce qui complexifie la création et la gestion efficace d'un système de fichiers à usage général.
Dans un système de fichiers disque, on trouve généralement un répertoire principal et une table de correspondance entre les zones de données utilisées et libres. Toute modification (ajout, suppression ou ajout de fichier) nécessite la mise à jour de ce répertoire et de la table de correspondance. L'accès aléatoire aux données se mesurant en millisecondes, ce système est parfaitement adapté aux disques.
Le déroulement et l'enroulement de bobines de support, potentiellement très longues, nécessitent un mouvement linéaire. Ce mouvement peut prendre de quelques secondes à plusieurs minutes pour déplacer la tête de lecture/écriture d'une extrémité à l'autre de la bande.
Par conséquent, l'utilisation d'un répertoire maître et d'une carte d'utilisation des blocs peut s'avérer extrêmement lente et inefficace sur bande magnétique. L'écriture implique généralement la lecture de la carte d'utilisation des blocs pour identifier les blocs libres, la mise à jour de cette carte et du répertoire pour y ajouter les données, puis l'avancement de la bande pour écrire les données à l'emplacement prévu. Chaque écriture de fichier supplémentaire nécessite la mise à jour de la carte et du répertoire, ainsi que l'écriture des données, ce qui peut prendre plusieurs secondes par fichier.
Les systèmes de fichiers sur bande permettent généralement de répartir le répertoire de fichiers sur la bande, mêlé aux données (procédé appelé « streaming ») , de sorte que l'écriture de nouvelles données ne nécessite pas de mouvements de bande longs et répétitifs.
Cependant, ce type de conception présente l'inconvénient que la lecture du répertoire de fichiers d'une bande nécessite généralement un balayage complet de celle-ci pour accéder à toutes les entrées dispersées. La plupart des logiciels d'archivage de données compatibles avec le stockage sur bande conservent une copie locale du catalogue de la bande sur un système de fichiers disque, ce qui permet d'ajouter rapidement des fichiers sans avoir à réanalyser la bande. Cette copie locale est généralement supprimée après une période d'inutilisation, auquel cas la bande doit être analysée à nouveau pour toute utilisation ultérieure.
IBM a développé un système de fichiers pour bandes magnétiques appelé Linear Tape File System (LTFS ). L'implémentation IBM de ce système de fichiers est disponible en open source sous le nom d'IBM Linear Tape File System — Single Drive Edition (LTFS-SDE) . Le LTFS utilise une partition dédiée sur la bande pour enregistrer les métadonnées d'index, évitant ainsi les problèmes liés à la dispersion des entrées de répertoire sur l'ensemble de la bande.
Formatage de la bande
L'écriture, l'effacement ou le formatage de données sur une bande magnétique est souvent un processus long et peut prendre plusieurs heures pour les bandes de grande capacité. Avec de nombreuses technologies de bandes magnétiques, il n'est pas nécessaire de formater la bande avant d'y écrire de nouvelles données. Ceci est dû au caractère intrinsèquement destructif de l'écrasement de données sur un support séquentiel.
Le formatage d'une bande magnétique pouvant prendre du temps, celles-ci sont généralement préformatées afin que l'utilisateur n'ait pas à préparer chaque nouvelle bande avant utilisation. Il suffit généralement d'y inscrire une étiquette d'identification, et même cette opération peut être effectuée automatiquement par un logiciel lors de la première utilisation d'une nouvelle bande.
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. Frank G. Soltis et son équipe chez IBM Rochester ont 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 .systèmes de gestion de contenu web utilisent un SGBD relationnel pour stocker et récupérer les 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 requêtes SQL SELECT (avec XPath optionnel ) permettent de récupérer les fichiers et offrent la possibilité d'utiliser une logique sophistiquée et des associations d'informations plus riches que les systèmes de fichiers classiques. De nombreux SGC proposent également l'option de ne stocker que les métadonnées dans la base de données, le système de fichiers standard servant alors à stocker le contenu des fichiers.
Systèmes de fichiers transactionnels
Certains programmes nécessitent plusieurs modifications du système de fichiers, ou, si une ou plusieurs de ces modifications échouent, n'en effectuent aucune. Par exemple, un programme d'installation ou de mise à jour de logiciel peut écrire des fichiers 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, il risque d'être défectueux ou inutilisable. Une mise à jour incomplète d'un utilitaire système essentiel, tel que l' invite de commandes , peut rendre le système entier inutilisable.
Le traitement transactionnel garantit l' atomicité des opérations, assurant ainsi que toutes les opérations au sein d'une transaction sont validées ou que la transaction peut être annulée et que le système supprime tous ses résultats partiels. Cela signifie qu'en cas de panne ou de coupure de courant, l'état enregistré sera cohérent après la restauration. Le logiciel sera soit entièrement installé, soit l'installation ayant échoué sera complètement annulée, mais aucune installation partielle inutilisable ne subsistera sur le système. Les transactions garantissent également l' isolation dessérialisées avec la 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
Systèmes de fichiers à disque partagé
Systèmes de fichiers spéciaux
API du système de fichiers . Cette pratique est courante dans les systèmes d'exploitation de type Unix , et dans une moindre mesure dans d'autres systèmes d'exploitation. Exemples :
devfs , udev et TOPS -10 exposent les périphériques d'E/S ou les pseudo-périphériques comme des fichiers spéciaux
Prise en charge de la hiérarchie des répertoires
Systèmes de fichiers plats
Les systèmes d'exploitation mainframe DOS/360 et OS/360 stockent les entrées de tous les fichiers d'un disque ( volume ) dans un répertoire du disque appelé table des matières du volume (VTOC).
Certains systèmes d'exploitation pour mini-ordinateurs , comme RT-11 , disposaient d'un système de fichiers plat avec un seul répertoire racine. D'autres, comme RSX-11 , prenaient en charge un répertoire racine et des sous-répertoires pour les comptes utilisateurs, mais pas les sous-répertoires de ces répertoires de comptes utilisateurs.
La plupart des systèmes d'exploitation pour micro-ordinateurs 8 bits utilisaient initialement des systèmes de fichiers plats (par exemple, Apple DOS , Atari DOS ). Les machines CP/M utilisent un système de fichiers plats, où les fichiers peuvent être affectés à l'une des 16 zones utilisateur et les opérations génériques sur les fichiers sont limitées à une seule zone au lieu de s'appliquer par défaut à toutes. Ces zones utilisateur ne sont que des attributs spécifiques associés aux fichiers ; il n'est pas nécessaire de définir un quota particulier pour chacune d'elles et les fichiers peuvent être ajoutés à des groupes tant qu'il y a de l'espace disque disponible.
Le système de fichiers FAT sous IBM PC DOS / MS-DOS était un système de fichiers plat jusqu'à la version 2.0 de DOS, date à laquelle la prise en charge des sous-répertoires a été ajoutée.
Le système d' exploitation Mac OS classique pour Macintosh ne prenait en charge que le système de fichiers Macintosh (MFS) plat jusqu'à l'introduction du système de fichiers hiérarchique dans la version 2.1. Le Finder , le programme de gestion de fichiers , donnait l'illusion d'un système de fichiers partiellement hiérarchique. Cette structure exigeait que chaque fichier ait un nom unique, même s'il semblait se trouver dans un dossier distinct.
Amazon S3 , un service de stockage distant apparu au XXIe siècle, vient enrichir la famille des systèmes de fichiers plats. Sa simplicité volontaire permet aux utilisateurs de personnaliser le stockage de leurs données. Il ne propose que des compartiments (compartiments, comparables à des disques durs de taille illimitée) et des objets (similaires, mais non identiques, aux fichiers). La gestion avancée des fichiers est facilitée par la possibilité d'utiliser presque n'importe quel caractère (y compris « / ») dans le nom d'un objet, et par la possibilité de sélectionner des sous-ensembles du contenu du compartiment en fonction de préfixes identiques.
Systèmes de fichiers hiérarchiques
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 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
Solaris
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
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 est une version de bureau de FreeBSD qui hérite de la prise en charge de ZFS , à l'instar de FreeNAS . Le nouvel installateur graphique de PC-BSD permet de gérer facilement et immédiatement la racine (/ ) sur les systèmes ZFS , les installations de pools RAID-Z et le chiffrement de disque avec Geli . La version actuelle de PC-BSD 9.0+ « Isotope Edition » utilise le système de fichiers ZFS version 5 et les pools de stockage ZFS version 28.
Plan 9
Le système d'exploitation Inferno partage ces concepts avec Plan 9.
Microsoft Windows
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
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 .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.). 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
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 .