Chapitre XI : Les systèmes de gestion de fichiers (SGF) Les systèmes de fichier ont pour rôle d'organiser, en l'optimisant, l'implantation des données sur le(s) disque(s) et autres mémoires externes. Un cluster (ou unité d’allocation » ou bloc) est la plus petite unité de disque que le système d’exploitation est capable de gérer. Un fichier occupe un nombre entier de cluster. Plus la taille d’un cluster est importante, moins le système d’exploitation aura d’entités à gérer et plus il sera rapide… En contrepartie, étant donné qu’un système d’exploitation ne sait gérer que des unités d’allocation entière, c’est-à-dire qu’un fichier occupe un nombre entier de cluster, le gaspillage d’espace disque est d’autant plus grand que le secteur est grand. On comprend alors toute l’importance du choix du système de gestion de fichiers. 1. Le différents types de formatage (rappel) Le but du formatage de bas niveau est de diviser la surface des supports par exemple celui d’un disque dur en éléments basiques: pistes, secteurs, cylindres Le formatage de bas niveau a pour but de préparer la surface du disque à accueillir des données. Il ne dépend donc pas du système d'exploitation et permet grâce à des tests effectués par le constructeur de marquer les secteurs défectueux. Le formatage logique d’un disque permet de créer un système de gestion de fichiers sur le disque, qui va permettre à un système d'exploitation (DOS, Windows, UNIX, ...) d'utiliser l'espace disque pour stocker et utiliser des fichiers. Pour installer des systèmes d'exploitation de natures diverses il est nécessaire de créer des partitions qui auront des SGF différents. Les informations enregistrées lors d'un formatage logique sont : • écriture du secteur d'amorçage des partitions, • enregistrement de l'octet d'Identification système (ID System) dans la table des partitions du disque dur, • informations du système de fichiers sur l'espace disponible, l'emplacement des fichiers et des répertoires... • repérage des zones endommagées... 2. Le partitionnement (rappel) Une fois formaté physiquement, le disque dur peut être divisé en plusieurs sections physiques ou partitions. Une fois que la partition de disque a été formatée logiquement, elle est considérée comme un volume. On appelle partitionnement le processus qui consiste à écrire les secteurs qui constitueront la table de partition qui contient les informations sur la partition: taille de celle-ci en terme de nombre de secteurs, position par rapport à la partition principale, types de partitions présentes, systèmes d'exploitation installés,... Lorsque la partition est créée, on lui donne un nom de volume (ou de lecteur) qui va permettre de l'identifier facilement. Il y a trois sortes de partitions: les partitions principales, étendues, ou les lecteurs logiques. Un disque peut contenir jusqu'à quatre partitions principales (dont une seule peut être active), ou trois partitions principales et une partition étendue. Dans la partition étendue l'utilisateur peut créer des lecteurs logiques (c'est-à-dire faire en sorte que l'on ait l'impression qu'il y a plusieurs disques durs de taille moindre). La partition active est représente la partition sur laquelle un des systèmes d'exploitation est démarré au lancement de l'ordinateur. Les partitions autres que celle sur laquelle vous démarrez seront alors cachées (au moment du boot). Ainsi, les données d'une partition principale ne sont accessibles qu'à partir du système d'exploitation installé sur cette partition. Un fois l’ordinateur démarré, les données contenues sur les autres partitions d’un SGF compatible avec l’OS actif sont alors accessibles, à travers un nom de volume spécifique. La partition étendue a été mise au point pour outrepasser la limite des quatre partitions principales, en ayant la possibilité de créer autant de lecteurs logiques que vous désirez dans celle-ci. Au moins un lecteur logique est nécessaire dans une partition étendue, car vous ne pouvez pas y stocker de données directement. Créer plusieurs partitions possède plusieurs avantages : · installer plusieurs systèmes d'exploitation sur votre disque · économiser de l'espace disque · augmenter la sécurité de vos fichiers · organiser les données plus facilement La présence d’un fichier boot.ini sur le disque dur est associée à un système multi-boot. Ce fichier est créé sur la partition principale active (en général sur la partition principale dos) et propose de charger un des différents OS présents sur le disque et préalablement installés dans des partitions étendues. 3. Système de gestion de fichiers et système d'exploitation (rappel) Le SGF est dépendant du système d’exploitation. D’une manière générale, plus le système d’exploitation est récent plus le nombre de systèmes de fichiers supportés sera important. Système d’exploitation DOS Windows 95 Windows 98 Windows NT4 Windows 2000 et XP MacOS Linux / Unix Type de système de fichiers supportés FAT 16 FAT 16,, FAT 32 (selon la version de Windows 95) FAT 16, FAT 32 (selon la version de Windows 98) NTFS FAT 32, NTFS HFS EXT2, ReiserFS 4. Le système de gestion de fichiers FAT Il comprend les éléments suivants : · un enregistrement d'amorçage principal avec la "Table des partitions" (MBR), · une zone réservée au secteur de chargement (Boot Loader), · un exemplaire de la FAT, · une copie optionnelle de la FAT, · le répertoire principal ou répertoire racine, · la zone des données et sous-répertoires. Le secteur de démarrage (MBR) (cylindre 0, tête 0 et secteur 1) contient la table de partitions et le code qui, une fois chargé en mémoire, va permettre d'amorcer le système (booter). Ce programme, une fois en mémoire, va déterminer sur quelle partition le système va s'amorcer, et il va démarrer le programme (appelé bootstrap) qui va amorcer le système d'exploitation présent sur cette partition. D'autre part, c'est ce secteur du disque qui contient toutes les informations relatives au disque dur (fabricant, numéro de série, nombre d'octets par secteur, nombre de secteurs par cluster,…) Ce secteur est le secteur le plus important du disque dur, il sert au setup du BIOS à reconnaître le disque dur. Ainsi, sans celui-ci le disque dur est inutilisable, c'est donc une des cibles préférées des virus. Ce secteur de démarrage est appelé le boot manager sous windows NT Les répertoires stockent toutes les informations sur chaque fichier qu'ils contiennent -le nom de fichier -la taille du fichier -la date et l'heure de la dernière modification du fichier -les attributs du fichier (lecture seule, archive, …) -le numéro du cluster auquel le fichier commence(les autres clusters constitutifs étant retrouvés par la FAT -le répertoire parent (pour les répertoires autre que racine). Le système de gestion de fichier FAT utilise un répertoire racine (représenté sur les systèmes d'exploitations qui utilisent ce type de systèmes de fichiers par le signe C:\ ) , qui doit être situé à un endroit spécifique du disque dur. Ce répertoire racine stocke les informations sur les sous-répertoires et fichiers qu'il contient. Le système de gestion de fichier FAT est aussi caractérisé par l'utilisation d'une table d'allocation de fichiers et de clusters (ou blocs). La FAT (File Allocation Table: table d'allocation des fichiers) est le cœur du système de gestion de fichiers. Elle est localisée dans le secteur 1 du cylindre 0 à la tête 1. 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 case (ou entrée) correspond à un cluster. Chaque case 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. Derrière la copie de la fat commence le répertoire principal. Différentes évolutions des systèmes de gestion de fichiers FAT : Les systèmes en FAT16 ne peuvent pas adresser les clusters sur plus de 16 bits. Le nombre maximum de clusters repérables avec le système FAT est ainsi de 2^16 , soit 65535 clusters. Or, étant donné qu’un cluster est constitué d’un nombre fixé (4,8,16,32,64) de secteurs de 512 octets contigus, la taille maximale d’une partition FAT se trouve en multipliant le nombre maximum de clusters par la taille d’un cluster. Avec des clusters d’une taille 32Ko (64*512), la taille maximale d’une partition FAT est donc de 2Go (32 768 * 65535) Ainsi, quelle que soit la taille de la partition ou du disque les clusters doivent être suffisamment grands pour que toute l'espace disque puisse être contenu dans ces 65525 clusters. Ainsi, plus la taille du disque (ou de la partition) est importante, plus la taille des clusters doit être importante. Le système FAT16 permet 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 gestion de fichiers FAT32 utilise des valeurs 32 bits pour les entrées de la FAT. Avec l’apparition du système de fichiers FAT32, le nombre maximal de clusters par partition est passé de 65535 à 268 435 456. Le système de gestion de fichier FAT32 autorise donc des partitions d’une taille beaucoup plus élevée (jusqu’à 2 téraoctets). Puisqu’une partition FAT32 peut contenir beaucoup plus de clusters qu’une partition FAT16, il est possible de réduire de façon signifiante la taille des clusters et de limiter par la même occasion le gaspillage d’espace disque. A titre d’exemple, pour une partition de 2Go, il est possible d’utiliser des clusters de 4Ko avec le système FAT32 (au lieu de 32Ko en FAT16), ce qui diminue l’espace gaspillée par un facteur 8. Le nombre de clusters étant limité, la taille maximale d'une partition dépend de la taille de chaque cluster. 5. Le système de gestion de fichiers NTFS NTFS (New Technology File System) utilise un système basé sur une structure appelée « table de fichiers maître », ou MFT (Master File Table), permettant de contenir des informations détaillées sur les fichiers . Ce système permet ainsi l’utilisation de noms longs, mais, contrairement au système FAT32, il est sensible à la casse, c’est-à-dire qu’il est capable de différencier des noms en majuscules de noms en minuscules. Pour ce qui est des performances, l’accès aux fichiers sur une partition NTFS est plus rapide que sur une partition de type FAT. La limite physique d’un disque est de 2To. Les noms des fichiers peuvent comporter jusqu’à 255 caractères. C’est au niveau de la sécurité que NTFS prend toute son importance, car il permet de définir des attributs de sécurité pour chaque fichier (droits associés aux utilisateurs …). La version 5 de ce système de fichiers (en standard sous Windows 2000) amène encore de nouvelles fonctionnalités parmi lesquelles des performances accrues, des quotas de disque par volume définis pour chaque utilisateur. La table des fichiers maîtres : MFT La FAT est un tableau de valeurs numériques dont chaque case permet de décrire l’allocation des clusters d’une partition, c’est-à-dire l’état (l'occupation ou non par un fichier) de chaque cluster de la partition dont elle fait partie. Le système de fichiers NTFS est basé sur une structure différente, appelée table de fichiers maître, contenant des enregistrements sur les fichiers et les répertoires de la partition. Le premier enregistrement, appelé descripteur, contient des informations sur la MFT (une copie de celui-ci est stockée dans le second enregistrement). Le troisième enregistrement contient le fichier journal, un fichier qui contient es actions effectuées sur la partition. Les enregistrements suivants, constituant ce que l’on nomme le noyau, référencent chaque fichier et répertoire de la partition sous forme d’objets affectés d’attributs. Cela signifie que les informations relatives à chaque fichier sont stockées dans le fichier, qui est lui même enregistré au sein de la MFT. La MFT représente donc une structure de stockage des données de la partition, et non une liste de clusters. 6. Les systèmes de gestion de fichiers associés aux systèmes sous Linux / Unix Sous les systèmes Linux / Unix, les SGF utilisent une table des inodes ce mode fonctionnement est différent des SGF FAT ou NTFS. Ces inodes qui contiennent les informations relatives à chaque fichier comme par exemple les droits d’accès, la taille du fichier. Ext2 peut être considéré comme un système de gestion de fichiers standard pour les installations de Linux. Les noms de fichiers peuvent comporter jusqu’à 255 caractères. La taille maximale d’une partition est de 4 TeraOctets. La taille des clusters peut varier de 1 à 4 ko. Sous linux, il existe également des systèmes de gestion de fichiers journalisés comme ReiserFS. Ces systèmes de fichiers ont pour avantages de pouvoir revenir sur toutes modification du système et permettent une détection rapide d’incohérences dans les fichiers.