Définition et concept

Un système de gestion de fichiers est une structure de données utilisée pour stocker et organiser des informations dans des fichiers. Ces fichiers sont stockés sur des dispositifs de stockage (disque dur, SSD, CD-ROM, clé USB, carte SD, etc...). Il définit comment les données sont stockées, accessibles et organisées sur le dispositif de stockage. Il remplit les fonctions de manipulation des fichiers, d'allocation de l'espace, la localisation des fichiers, la sécurité et le contrôle. Le système de gestion de fichier est l'un des composants les plus importants des systèmes informatiques.

Fonctionnement d'un système de gestion de fichier

Pour mieux comprendre ce qu'est un système de fichier et son utilité, rien de mieux que détailler son fonctionnement et le vocabulaire en lien avec les systèmes de gestion de fichier.

Un système de gestion de fichier a toujours une structure arborescente. Cette structure arborescente est composée de répertoires et de fichiers. Les fichiers contiennent des données numériques avec un format qui dépend du programme utilisé pour créer ce fichier. Les répertoires peuvent contenir des fichiers et des répertoires. Voici un exemple avec l'arborescence de base d'un système Linux.

Arborescence de fichier Linux

Dans les systèmes de gestion de fichier, on parle souvent de racine. La racine est le répertoire le plus haut dans l'arborescence. Exemple sous Linux, il s'agit de / (slash). Pour Windows, il s'agit de la lettre du lecteur/disque, par exemple C: ou D:

Les noms et chemins

Pour accéder à un fichier ou répertoire, on parle souvent de chemin absolu et de chemin relatif.

Le chemin absolu est composé de tous les répertoires à traverser en partant de la racine jusqu'au fichier ou répertoire. Les différents répertoires traversés sont séparés par des caractères de séparation. Des slash sous Linux et des anti-slash sous Windows. Voici des exemples de chemins absolus :
Sous Linux : /home/pixwok/Document/toto.txt
Sous Windows : C:\Users\pixwok\Documents\Tuto.pdf

Un chemin relatif ne commence pas par le répertoire racine. Un chemin relatif est interprété en partant du répertoire courant. Le répertoire courant est le répertoire où l'on se trouve au moment de l'exécution du programme.

Voici un exemple de chemin relatif sous Linux :
Si je me trouve sous /home/pixwok
Le chemin relatif pour accéder à toto.txt est Document/toto.txt

Les fichiers

Les fichiers disposent d'extensions (il s'agit de la fin du nom du fichier qui se situe après le point), ce qui permet d'associer un fichier à une application. Exemple :

  • .pdf (document PDF)
  • .txt (document texte)
  • .html (navigateur web)
  • .csv (fichier sous forme de tableau)

Un fichier disposant d'une extension peut être ouvert par différents programmes qui prennent en charge l'extension. Par exemple un .csv peut être ouvert par des logiciels comme Excel, Libre Office Calc, Notepad++ ou encore bloc note. Cependant certaines extensions sont propriétaires et peuvent donc être ouvertes qu'avec un logiciel spécifique.

Certains fichiers peuvent intégrer des métadonnées. Les métadonnées dans un système de fichier sont des informations sur le fichier par exemple :

  • nom du fichier
  • taille du fichier
  • date de création
  • date de modification
  • droit d'accès
  • auteur

Elles permettent d'avoir des informations sur le fichier et indiquent le contenu d'un fichier. Pour certains types de fichier comme les fichiers vidéos ou audio, on peut avoir des métadonnées comme :

  • la durée de la vidéo ou de l'audio
  • l'auteur
  • l'album pour une musique

Les métadonnées servent notamment à la fonction de recherche Windows et peuvent la rendre plus précise.

Les différents systèmes de fichiers

Il existe aujourd'hui plusieurs systèmes de fichier. Chacun présente des caractéristiques différentes et sont parfois spécifique à certains systèmes d'exploitation.

Avant de parler des différents systèmes de fichier, voici un peu de vocabulaire.

Fragmentation : Fait référence à la dispersion des données dans différents secteurs du stockage. Ce qui entraîne qu'un fichier peut être stocké sur différents emplacements et donc non-contigus. Cela entraîne des baisses de performance surtout sur disque mécanique.

Les SSD sont moins impactés par la fragmentation, car ils sont conçus pour accéder aux données avec un délai quasiment nul. Grâce à la mémoire flash des SSD, ils ont des temps moyens de recherche de 0.1ms.

TRIM : commande destinée à indiqué aux SSD quels blocs de données peuvent être effacés. Cela permet notamment d'améliorer la performance d'accès au SSD et la durée de vie de votre SSD.

FAT : File Allocation Table

FAT est l'un des systèmes de fichiers les plus anciens. C'est aussi le plus simple. Créé initialement pour MS-DOS. Il est encore très utilisé dans les périphériques de stockage amovibles.

Il y a eu deux grandes versions de FAT qui sont FAT16 en 1987 pour DOS 3.31, puis FAT32 en 1996 pour Windows 95 ORS2 (MS-DOS 7.1).

FAT utilise une table d'allocation de fichiers pour garder une trace de l'emplacement des fichiers. Cependant, il ne dispose pas de fonctionnalité avancée, comme les autorisations de fichiers et la journalisation.

Avantages

  • Simplicité
  • Protection des données (facile de récupérer les données en cas de corruption ou suppression)
  • Compatibilité (supporté par Windows, Linux et MacOS)

Inconvénients

  • Fragmentation
  • Absence de fonctionnalités avancées
  • Limitations des noms de volume
  • Limitations des noms de fichiers.

exFAT : Extended File Allocation Table

exFAT est un système de fichiers, qui est une version améliorée de FAT32. Il permet de lever certaines limitations de FAT32. Notamment les tailles de fichiers qui sont plus importantes, ainsi que de meilleur performance. Ce dernier a vu le jour en 2006 dans Windows.

Avantages

  • Prise en charge de fichiers et des partitions de grande taille.
  • Meilleure utilisation de l'espace disque (utilisation de cluster plus petit que ce de FAT). Cela permet de réduire l'espace perdu.
  • Grande compatibilité, il est lisible par beaucoup d'OS sans logiciel tiers.

Inconvénients

  • Limitation des métadonnées : il ne prend pas en charge les autorisations au niveau des fichiers. Pas de chiffrement, pas de journalisation.
  • Sensible à la fragmentation, ce qui baisse les performances.

NTFS : New Technology File System

NTFS est le système de fichier par défaut utilisé par les systèmes Windows NT depuis 1993 à aujourd'hui. Offre les fonctionnalités avancées comme l'autorisation de fichiers, le chiffrement, la compression et la journalisation. Prise en charge de fichier de grande taille. Compatibilité limitée avec OS non Windows.

Avantages

  • Gestion de la sécurité et des autorisations.
  • Contrôle d'accès via des groupes et utilisateur.
  • Prise en charge de TRIM sur les SSD.

Inconvénients

  • Erreurs disque possible
  • Réparation lente
  • Fragmentation

APFS : Apple File System

Comme son nom l'indique, il s'agit du système de fichier d'Apple, pour IOS et MacOS. Il est conçu pour optimiser les performances et la compatibilité avec le matériel et les logiciels Apple. APFS comprend des fonctionnalités de clonage, de chiffrement et une amélioration des performances sur les SSD.

Avantages

  • Amélioration des performances.
  • Sécurité des données.

Inconvénients

  • Compatibilité très limitée.
  • APFS ne peut pas être lu par Windows sans logiciel tiers.

HFS : Hierarchical File System

Historiquement utilisé par Apple. Il dispose d'une structure de répertoire hiérarchique. HFS a été remplacé par HSF+ puis par APFS.

Avantages

  • Simplicité
  • Pris en charge de métadonnées

Inconvénients

  • Absence de fonctionnalité : autorisation fichier, journalisation, compression et chiffrement
  • Taille de fichiers et de partitions limitée
  • Fichiers corrompus en dehors du système de fichiers

Ext4

Utilisé dans les OS Linux. Il est le successeur à ext3. Introduit en 2003. L'une de ces particularités est qu'il permet de redimensionner les partitions pendant le fonctionnement du système.

Avantages :

  • Journalisation
  • Tailles de fichiers et partition importantes

Inconvénients

  • Fragmentation