Ignorer la navigation

V. Organisation et structures des données


Un système de fichiers (abrégé « FS » pour File System en anglais) ou système de gestion de fichiers est une façon de stocker les informations et de les organiser dans des fichiers. Il existe de multiples façon de structurer un système de fichiers. L'objectif du système de fichiers est de permettre l'accès au contenu des fichiers stockés (l'ouverture du fichier, son enregistrement sa copie ou son déplacement dans un second emplacement, ou sa suppression) à partir de leur chemin d'accès, formé d'un nom précédé d'une liste de répertoires imbriqués.

Différentes méthodes permettent d'associer un nom de fichier à son contenu. Dans le cas du système de fichiers FAT, ancien système de fichiers de MS-DOS et de Windows encore largement utilisé sur les supports amovibles comme les clés USB, chaque répertoire contient une table associant les noms de fichiers à leur taille et un index pointant vers la table d'allocation de fichiers, une zone réservée du disque indiquant pour chaque bloc de données l'index du bloc suivant du même fichier.
L'organisation du système de fichiers NTFS apparu au début des années 2000 est plus complexe, fonctionnant un peu à la façon d'une base de données.

Dans le cas des systèmes de fichier d'Unix, les fichiers et les répertoires sont identifiés par un numéro unique, le numéro d'inode. Ce numéro permet d'accéder à une structure de données (inode) regroupant toutes les informations sur un fichier à l'exception du nom, notamment la protection d'accès en lecture, en écriture ou des listes de dates, ainsi que le moyen d'en retrouver le contenu. Le nom est stocké dans le répertoire associé à un numéro d'inode. Cette organisation présente l'avantage qu'un fichier unique sur disque peut être connu du système sous plusieurs noms.

Le système de fichier Apple est le HFS (Hierarchical File System) ou HFS+.

Chaque constructeur, fabriquant, entreprise y va quasiment de son propre système de gestions de fichiers (Microsoft, unix, Apple, Samsung, …). Quand on va choisir de formater un système de stockage informatique (par exemple un disque dur) il va falloir choisir le système de fichier car ils ne sont pas compatibles entre eux et certains systèmes n'en lisent qu'un seul type (celui de leur concepteur) alors que d'autres peuvent en lire plusieurs.


Un premier exemple : le système de fichier FAT16

Le premier système de fichier ayant été utilisé sur un système d'exploitation Microsoft est le système FAT, qui utilise une table d'allocation de fichiers (en anglais FAT, File Allocation Table). La table d'allocation de fichiers est en fait un index qui liste le contenu du disque, afin d'enregistrer l'emplacement des fichiers sur celui-ci (c'est une sorte de sommaire). Etant donné que les blocs qui constituent un fichier ne sont pas toujours stockés de manière contiguë sur le disque (c'est ce que l'on appelle la fragmentation), la table d'allocation permet de conserver la structure du fichier en créant des liens vers les blocs constitutifs du fichier. Le système FAT est un système 16 bits permettant de décrire un fichier par un nom d'une longueur de 8 caractères et une extension qui en comporte 3.

Le système de fichiers FAT est donc un système 16 bits, cela signifie qu'il ne peut pas adresser les clusters (un cluster ou bloc est la plus petite unité de stockage d'un système de fichiers) sur plus de 16 bits. Le nombre maximum de clusters repérables avec le système FAT est ainsi de 216, soit 65536 clusters. Or, étant donné qu'un cluster est constitué d'un nombre fixé (4,8,16,32, ...) de secteurs de 512 octets contigus, la taille maximale d'une partition FAT se trouve en multipliant le nombre de clusters par la taille d'un cluster. Avec des clusters d'une taille 32Ko, la taille maximale d'une partition FAT est donc de 2Go (32×216= 2097152Ko = 2048Mo = 2Go).

D'autre part, un fichier ne peut occuper qu'un nombre entier de clusters, c'est-à-dire que si un fichier occupe plusieurs clusters, le dernier sera occupé en partie, et la place inoccupée restante est autant de place perdue. Par conséquent plus la taille d'un cluster est réduite, moins il y a de gaspillage de place. On estime qu'un fichier gaspille en moyenne la moitié d'un cluster, cela signifie que sur une partition de 2Go 16Ko seront perdus par fichier...

  • clusters de 512 octets : partitions de 2 à 32 Mo (512×216= 32Mo) ;
  • clusters de 1 Ko : partitions de 4 à 64 Mo (1024×216= 64Mo);
  • clusters de 2 Ko : partitions de 8 à 128 Mo ;
  • clusters de 4 Ko : partitions de 16 à 256 Mo ;
  • clusters de 8 Ko : partitions de 32 à 512 Mo ;
  • clusters de 16 Ko : partitions de 64 à 1 024 Mo, c'est-à-dire 1 Go ;
  • clusters de 32 Ko : partitions de 128 à 2 048 Mo, c'est-à-dire 2 Go ;



La table d'allocation des fichiers

La Table d'Allocation de Fichiers est une liste de valeurs numériques permettant de décrire l'allocation des clusters d'une partition, c'est-à-dire l'état de chaque cluster de la partition dont elle fait partie. La table d'allocation est en fait un tableau dont chaque cellule correspond à un cluster. Chaque cellule contient un chiffre qui permet de savoir si le cluster qu'elle représente est utilisé par un fichier, et, le cas échéant, indique l'emplacement du prochain cluster que le fichier occupe. On obtient donc une chaîne FAT, c'est-à-dire une liste chaînée de références pointant vers les différents clusters successifs, jusqu'au cluster de fin de fichier. Chaque entrée de la FAT a une longueur de 16 ou 32 bits (selon qu'il s'agit d'une FAT16 ou d'une FAT32). Les deux premières entrées permettent de stocker des informations sur la table elle-même, tandis que les entrées suivantes permettent de référencer les clusters. Certaines entrées peuvent contenir des valeurs indiquant un état du cluster spécifique. Ainsi la valeur 0000 indique que le cluster n'est pas utilisé, FFF7 permet de marquer le cluster comme défectueux pour éviter de l'utiliser, et les valeurs comprises entre FFF8 et FFFF spécifient que le cluster contient la fin d'un fichier. Chaque partition contient en réalité deux copies de la table, stockées de manière contiguë sur le disque, afin de pouvoir la récupérer si jamais la première copie est corrompue.


 

 L'évolution FAT32 :

Utilisant des adresses sur 28 bits (et non pas 32!), il permet de constituer des unités d’allocation de taille réduite sur des disques de taille importante

La capacité des partitions peut s’élever jusqu’à 2 To :

  • clusters de 4 ko : partitions de 1 To  (228×4ko = 1 To);
  • clusters de 8 ko : partitions de 2 To ;

 

 
L'évolution exFAT (FAT64) :

Le système de fichiers exFAT (Extended File Allocation Table) est l'évolution du système FAT32 pour les mémoires flash et les supports de stockage externes (disques durs et assimilés) de grandes capacités. Cela permet notamment d'avoir des fichiers dont la taille dépasse 4Go (la limite de FAT32) et des partitions jusqu'à 64 Zio (1 Zio est équivalent à environ 1 milliard de Tio ou 1,1 milliards de To, 1 073 741 824 plus exactement) contre 2 To pour FAT32.



La suite : NTFS :

NTFS (New Technology File System) est un système de fichiers développé par Microsoft Corporation pour sa famille de systèmes d'exploitation Windows NT, à partir de Windows NT 3.1, Windows 2000 et tous leurs successeurs à ce jour (XP, Server 2003, 7, 8, etc.). NTFS est le successeur du système de fichiers FAT comme système de fichiers de prédilection des systèmes d'exploitation Microsoft Windows. Il est sur 64 bits. Le nom des fichiers peut aller jusqu'à 255 caractères. Il rajoute une notion de sécurité

Taille des clusters = 512b, 1kb, 2kb, 4kb, 8kb, ...64kb

Taille max : 16 EiB

L'exbibyte est une unité d'information de stockage informatique.

Il est une contracture de EXa BInary BYte. Son abréviation est EiB. 1 exbibyte = 260 bytes
La limite théorique de la taille d'une partition est de 16 exaoctets (17 milliards de To), mais la limite physique d'un disque est de 2To

visionnons la vidéo suivante: Les systèmes de fichiers.mp4