Linux prend en charge une grande variété d'implémentations de systèmes de fichiers. Certains sont optimisés pour la vitesse, d'autres pour une grande capacité de stockage, et certains sont conçus pour des appareils plus petits. Chacun de ces différents types de systèmes de fichiers a une manière unique d'organiser les données.
Le rôle du système de fichiers virtuel (VFS)
Avec autant d'implémentations différentes disponibles, les applications ont besoin d'un moyen cohérent pour interagir avec elles. C'est là qu'intervient le Système de Fichiers Virtuel (VFS). Le VFS est une couche d'abstraction dans le noyau Linux qui se situe entre les applications et les divers systèmes de fichiers. Il fournit une interface unique et uniforme, garantissant que les applications peuvent fonctionner de manière transparente, quel que soit le type de système de fichiers sous-jacent. Cette flexibilité vous permet d'avoir plusieurs systèmes de fichiers sur vos disques, souvent organisés par partitions, ce que nous aborderons dans une leçon future.
Le Journaling pour l'intégrité des données
La plupart des types de systèmes de fichiers modernes incluent par défaut une fonctionnalité appelée journaling (journalisation). Pour comprendre son importance, imaginez copier un fichier volumineux lorsque votre ordinateur perd soudainement son alimentation. Sur un système de fichiers sans journalisation, cette interruption pourrait entraîner la corruption du fichier et un état incohérent du système de fichiers. Au redémarrage, votre système devrait effectuer une vérification complète du système de fichiers (fsck), ce qui peut être long sur de grands disques.
Un système de fichiers journalisé empêche ce problème. Avant d'effectuer une opération d'écriture, il enregistre d'abord les modifications prévues dans un fichier journal spécial, ou « journal ». Une fois que l'opération est terminée avec succès, le journal est mis à jour pour marquer la tâche comme terminée. En cas de crash, le système peut simplement lire le journal au redémarrage pour voir quelles opérations étaient en cours et ramener rapidement le système de fichiers à un état cohérent. Cela réduit considérablement le temps de récupération et protège contre la corruption des données.
Types de systèmes de fichiers Linux courants
Voici quelques-uns des types de systèmes de fichiers linux les plus courants que vous rencontrerez :
- ext4 - En tant que dernière version du système de fichiers étendu natif de Linux (Extended Filesystem), ext4 est le choix par défaut pour de nombreuses distributions. Il est rétrocompatible avec ses prédécesseurs (ext2/ext3) et prend en charge des volumes de disque très volumineux (jusqu'à 1 exaoctet) et des tailles de fichiers (jusqu'à 16 téraoctets). C'est un choix fiable et standard pour la plupart des cas d'utilisation.
- Btrfs - Souvent appelé « B-tree FS », Btrfs est un système de fichiers moderne doté de fonctionnalités avancées telles que les instantanés intégrés, les sauvegardes incrémentielles et des performances améliorées. Bien qu'il soit désormais considéré comme stable et soit le défaut dans certaines distributions, il est toujours en cours de développement actif.
- XFS - Un système de fichiers journalisé haute performance qui excelle dans la gestion des fichiers volumineux et des opérations d'E/S parallèles. Cela en fait un excellent choix pour les systèmes qui gèrent de grandes quantités de données, comme les serveurs multimédias.
- NTFS et FAT - Ce sont des types de systèmes de fichiers Windows standard. Linux fournit une prise en charge complète pour la lecture et l'écriture, ce qui est utile pour les systèmes à double démarrage.
- HFS+ - Le système de fichiers principal utilisé par macOS. Linux dispose d'une prise en charge en lecture seule par défaut, la prise en charge en écriture étant disponible via des outils supplémentaires.
Vous pouvez voir quels systèmes de fichiers sont utilisés sur votre machine avec la commande df :
pete@icebox:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 6461592 2402708 3707604 40% /
udev devtmpfs 501356 4 501352 1% /dev
tmpfs tmpfs 102544 1068 101476 2% /run
/dev/sda6 xfs 13752320 460112 13292208 4% /home
La commande df signale l'utilisation de l'espace disque du système de fichiers. L'indicateur -T affiche spécifiquement le type de système de fichiers. Nous explorerons cet outil plus en détail plus tard.