blog-source/content/les-systemes-de-fichiers.md
2015-09-03 20:08:14 +02:00

124 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Title: Les systèmes de fichiers
Date: 2012-09-25 10:28
Author: Wxcafe
Category: Teaching
Slug: les-systemes-de-fichiers
Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
connaissez surement NTFS, EXT4, ou encore FAT32.
Ces différents noms désignent en effet des systèmes de fichiers. Mais
qu'est-ce qu'un système de fichiers?
Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
([kibioctet][]), en fonction du système de fichier utilisé.), qui est
donc composé de bits, interprétés différemment en fonction du type de
fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
ou il commence ni où il s'arrête (je schématise un peu, mais c'est
l'idée).
Ainsi, le système de fichier donne un cadre et un standard à
l'arborescence des fichiers. Par exemple, le système de fichier ext4
utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
de fichiers nécessitent l'inclusion de drivers dans le noyau pour
pouvoir être pris en compte.
Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
près tout type de partition récente.
Il convient de bien faire la différence entre le système de fichier et
l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
une entité virtuelle englobant la racine / et tous les fichiers et
dossiers contenus dedans, le système de fichier permet a votre système
GNU/Linux de distinguer les différents fichiers composants cette
arborescence.
Détaillons maintenant les types de fichiers les plus répandus:
- FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
soit la définition d'un système de fichier), remplissent leur rôle le
plus simplement possible. Ne permettant (historiquement) que des noms de
8 caractères (plus extension de trois caractères), ni chiffrement, ni
système de distinction d'utilisateurs (DOS étant un système
mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
utlisants respectivement des blocs de 16 et 32 Kio.
- NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
NT) est un système de fichier qui est apparu avec Windows XP, et qui
était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
FAT différentes capacités dont le chiffrement, les liens symboliques, la
compression et les quotas pour les volumes, permettant de limiter la
taille maximum occupée dans une partition.
- ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
Ne différant pas énormément de NTFS, je le mentionne principalement
parce qu'il est prévu qu'il soit le défaut pour Windows 8.
Il apporte principalement la redondance, c'est a dire que chaque
fichier possède une somme de contrôle en 64 bits stockée dans un fichier
séparé pour éviter les corruption de disque.
- Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
les plus utilisés sous linux pour le grand public. (Je traiterai ici
d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
fonctions que l'on peut attendre d'un système de fichiers moderne, ni
plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
acceptant les capacités jusquà 1 Exioctet, et utilise l'allocation dite
"par extent", ce qui signifie que la création d'un fichier réserve
automatiquement les zones contiguës de façon a réduire la fragmentation.
- ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
programmeur Hans Reiser, est a retenir pour avoir été le premier système
de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
4 milliards. Le but de ce système est de créer un système polyvalent, a
la fois système de fichiers et base de donnée (de part sa grande
capacité en terme de nombre de fichiers et de l'utilisation d'un
journal.)
- Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
l'allocation par extent, mais possède de plus un système de
sous-volumes, qui permet daccéder a plusieurs arborescences de fichiers
montées en même temps (système pratique et utile pour faire des
snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
taille des partitions, en les agrandissant ou en les rétrécissant, est
compatible avec [LVM][], a un système de checking intégré (btrfsck), et
utilise un algorithme de compression appelé LZ4, qui accélère les accès
aux fichiers compressés d'environ 30% par rapport a LZO, le système
utilisé dans ext4.
- HFS+ : le système de fichier présent sur tous les macs a des capacités
relativement standards, et ressemble énormément a l'ext3. Il supporte
cependant les liens directs vers les dossiers, fonction rare sur les
systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
dans les années a venir
- ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
et \*BSD, est, tel Btrfs, a la fois un système de fichier et un
remplaçant/compatible avec LVM, C'est un système de fichiers conçu
principalement pour les serveurs, et il intègre ainsi un système de
redondance des données pour éviter les corruptions, un mode RAID-Z
(apparenté au RAID5), des checks dintégrité en continu, des snapshots,
etc...
Comme on a pu le voir, les systèmes de fichiers disponibles sont
légions. Cependant, le plus adapté a Linux et a une utilisation grand
public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
n'est pas aujourd'hui proposé par défaut sur les distributions les plus
utilisées, au profit de l'ext4, qui commence a accuser son âge...
Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
fonctionnement du système, sont en fait de première importance, et ce
choix ne devrait pas être laissé au hasard, et être mis a jour
régulièrement (pour éviter les failles de sécurité...)
Bon courage, et bon choix pour votre prochain système.
[kibioctet]: http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s
[LVM]: http://fr.wikipedia.org/wiki/LVM