:: Système de fichier ::

Pour organiser les données sur les disques durs, les systèmes d’exploitation utilisent des systèmes de fichiers qui leurs sont propres : les FAT16 et FAT32 ainsi que le NTFS pour Windows, les ext, ext2, ext3 et bien d’autres pour Linux, le HFS et HFS+ pour Mac, le UFS pour Unix, Sun ou encore FreeBSD,…

Ainsi le Système de Fichier est par définition l’entité regroupant les fichiers mémorisés sur un disque dur ainsi que des informations techniques correspondantes. Bien que tous les systèmes de fichiers soient différents, ils fonctionnent tous sur la même base. Le choix du système de fichier se fait en fonction du système d’exploitation utilisé.

Il s’agit tout d’abord d’un formatage logique (ou physique) : le disque est divisé en secteurs et pistes concentriques. Il s’agit ensuite de l’utilisation de Clusters. Les clusters correspondent à des unités d’allocations dont la taille varie en fonction du système de fichier utilisé. Cela correspond en fait à la plus petite unité que le système est capable de gérer et est donc composé de plusieurs secteurs (512o, 2Ko, 4Ko, etc.). Ainsi, plus la taille d’un cluster sera grande, plus il y aura de gaspillage (un fichier de 1Ko dans système utilisant des clusters de 2Ko utilisera seulement la moitié d’un cluster mais le reste n’est pas récupérable), mais inversement, plus les clusters seront petits, plus le système aura du mal à gérer les gros fichiers puisqu’ils feront appel à un grand nombre d’allocations. Ce qui va différencier un système de fichiers d’un autre est donc la taille d’un cluster, les attributs des fichiers, l’architecture des fichiers ainsi que leur taille admissible.

1) Windows

Les différents systèmes d’exploitation Microsoft ayant vu le jour fonctionnent sur deux différents types de partitions : Le FAT et le NTFS

a) FAT

Il s’agit du plus vieux système de fichier de Microsoft. Il se décline en quatre versions : FAT12, FAT16, VFAT et FAT32. Ce qui différencie ces 4 versions sont la taille admissible des clusters ainsi que leur capacité et les attributs de fichiers disponibles. Une partition FAT est organisée de la manière suivante :

-Un secteur de boot qui contient les caractéristiques du disque (taille des clusters, place libre,…)

-La zone FAT à proprement parlé qui est la région du disque où est stockée la table d’allocation de la mémoire ainsi que la façon dont les clusters sont alloués.

-Le root qui contient toutes les informations concernant les fichiers

-le reste du disque où sont stockés les fichiers.

Le principal avantage du système FAT est sa très grande compatibilité avec les autres systèmes d’exploitation.

b) NTFS 

Dernier système de fichier sorti de chez Microsoft, d’abord appelé HPFS (High Performance File System) puis NTFS (NT File System) par la suite, il ne fonctionne que sous Windows utilisant une base NT. La grande différence avec les systèmes FAT : le disque utilise un arbre binaire pour stocker les informations au lieu d’une table root et d’une zone FAT. Ce système est alors rendu plus complexe, donc mieux protégé mais également beaucoup moins compatible avec les autres OS (sous linux, lire une partition NTFS fonctionne sans problème depuis les dernières versions mais écrire reste encore aux risques et périls de l’utilisateur. Il est également apparu accompagné d’un grand nombre d’attributs de fichiers possibles (Alternate data streams (ADS), Volume Shadow Copy (VSS), File compression,…).

2) Macintosh

Le système d’exploitation développé par la société Macintosh a d’abord fonctionné avec des systèmes de fichiers HFS (Hierarchical File System) puis avec HFS+. Tous les systèmes HFS sont organisés de la même façon. Tout d’abord, deux secteurs de boot, le premier (Master Directory Block) contient les informations de la partition (date et heure de création) et le nombre de fichiers sur le volume. Le second (Volume Bitmap) est la « carte » des block utilisés sur la partition. Ils sont suivis par la liste des fichiers présents sur le disque organisée sous forme d’arbre binaire. Le HFS+ est une version améliorée du HFS qui apporte plus de tailles possibles de clusters et des partitions et fichiers pouvant atteindre de plus grandes tailles.

3) Unix

UFS pour Unix File System est le nom du système de fichier utilisé sous Unix. Il est organisé en premier lieu d’un block de boot, suivis d’un « superblok » qui contient un chiffre permettant d’identifier la partition comme UFS ainsi que d’autres données (l’organisation du système de fichier, des statistiques comme l’espace libre, ainsi que d’autres paramètres permettant de personnaliser la partition). Le reste de la partition est organisé sous forme de plusieurs ensembles de blocks, chacun contenant :

• Une copie de sauvegarde du “superblock”

• Un block contenant les informations sur le groupe (comme le superblocks mais à une plus petite échelle).

• Les inodes (allocation contenant toutes les informations fichier).

• Les fichiers eux-mêmes

4) Linux

Bien que linux soit compatible avec beaucoup de systèmes de fichiers, seule 2 seront abordés ici : l’ext et le swap.

a) Ext

L’ Extended File System est un système de fichiers propre à linux qui est décliné en trois versions, la plus récente étant l’Ext3. La structure de l’Ext2 est identique à l’UFS. L’Ext 2 et 3 sont similaires et on peut passer de l’un à l’autre sans modifier les données du disque, bien que les outils développés pour l’ Ext2 ne fonctionnent avec l’Ext3 que si on rétrograde l’Ext 3 en 2. La différence entre les deux vient du fait que l’Ext3 dispose d’un système fichier journalisé qui permet de récupérer facilement le système après un crash. Le journal de l4ext3 est organisé comme suit :

– Metadata: chaque bloc de Meta data contient une donnée.

– Descriptor: contient les informations sur les blocks Metadata (où il se situe, leur taille,…)

– Header: Contient le titre et les informations sur le journal, un identifiant numérique.

b) SWAP

Une partition swap n’est pas une partition de stockage de données comme celles vues précédemment. En effet, elle fonctionne plus comme de la mémoire vive que comme un disque dur : elle sert à stocker des informations temporaires pour aider le système pour de meilleures performances.

Pour conclure, voici un tableau montrant les tailles possibles des fichiers et partitions en fonction de certains systèmes d’exploitation.