Introduction aux systemes de gestion de fichiers
Transcription
Introduction aux systemes de gestion de fichiers
S. Laporte LMS Les systèmes de gestion de fichier (SGF) I. Int ro duc tio n 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. La façon dont sont organisées ces données est relativement importante à connaître car le disque est souvent source d'erreurs et, de plus, il s'agit de l'un des "goulets d'étranglement" du système en terme de performances. Comparaison : (temps d'accès en ms - 10-3 - alors qu'en mémoire le temps d'accès se mesure en ns - 10-9). Le fait de connaître ces techniques permet donc : - de mieux comprendre l'organisation des données sur le disque - de retrouver et éventuellement, de corriger plus facilement une zone corrompue, ( et donc de récupérer de précieux fichiers endommagés ou effacés), - de repérer certains virus, - d'optimiser les performances du système par des opérations d'administration ou d'exploitation telles que la défragmentation des disques ou la compression de fichiers... Les systèmes de fichiers généralement rencontrés dans le monde de la gestion sont : FAT (File Allocation Table) et ses différentes versions très répandu dans le monde micro Windows NTFS (Windows NT File System) utilisé uniquement sur Windows NT, W2000, XP UNIX et ses nombreuses variantes utilisé plutôt sur les gros systèmes (serveurs )... EXT2FS sous Linux HFS sous MacOS II. Notio ns pré liminaire s A. Cluster ou bloc ou unité d’allocation 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. Un petit fichier, aussi petit soit- il, occupe tout un cluster. Un fichier peut occuper plusieurs clusters, mais le dernier cluster ne sera pas rempli. Conséquence : il y a un gaspillage de l’espace disque, d’autant plus grand que la taille des clusters est grande. 1 S. Laporte LMS 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. à il faut choisir une taille de cluster optimale pour ne pas trop ralentir l’OS et ne pas trop gaspiller d’espace disque. On comprend alors toute l’importance du choix du système de gestion de fichiers. B. Le Formatage 1. Rappel : Le formatage physique ou de bas niveau Le but du formatage de bas niveau est de diviser la surface des disques en éléments basiques: • pistes • secteurs • cylindres Un disque dur est constitué de plusieurs plateaux circulaires tournant autour d'un axe et recouverts de part et d'autre par un oxyde magnétique, qui, en étant polarisé, va pouvoir stocker des données. Les pistes sont des zones concentriques écrites de part et d'autre d'un plateau. Enfin ces pistes sont découpées en quartiers appelés secteurs. Les pistes se comptent par milliers et comptent chacune de 60 à 120 secteurs environ. On appelle cylindre l'ensemble des données situées sur une même pistes de plateaux différents (c'est-à-dire à la verticale les unes des autres) car cela forme dans l'espace un "cylindre" de données. Le formatage physique consiste à organiser la surface de chaque plateau en entités appelées pistes et secteurs (512 octets), en polarisant grâce aux têtes d'écriture des zones du disques. Les pistes sont numérotées en partant de 0, puis les têtes polarisent concentriquement la surface des plateaux. Lorsque l'on passe à la piste suivante, la tête laisse un "trou" (appelé gap en anglais) et ainsi de suite. Chaque piste est elle-même organisée en secteurs (numérotés en commençant à partir de 1) séparés entre eux par des gaps. Chacun de ces secteurs commence par une zone réservée aux informations du système appelée préfixe et se termine par une zone appelée suffixe. Il est réalisé en usine. Résumé : 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. C. Formatage de haut niveau ou formatage logique Formatage logique : 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. Le formatage logique s'effectue après le formatage de bas niveau (et éventuellement le partitionnement). Il crée un système de gestion de fichiers sur le disque (plus exactement, la partition), qui va permettre à un système d'exploitation (DOS, Windows 95, Linux, OS/2, Windows NT, ...) d'utiliser l'espace disque pour stocker et utiliser des fichiers. 2 S. Laporte LMS 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 (voir paragraphe suivant). Le formatage logique est réalisé sous DOS par le biais de la commande FORMAT. Il consiste à placer des informations complémentaires, selon le système de gestion de fichiers employé, dans les secteurs préalablement définis lors du formatage de bas niveau. 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... D. Le Partitionnement Une fois formaté physiquement, le disque dur peut être divisé en plusieurs sections physiques ou partitions. Chaque partition fonctionne comme une unité individuelle et peut être formatée logiquement avec tout système de fichiers. 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. Combien faut-il créer de partitions ? : Il y a au minimum autant de partitions que de systèmes d'exploitation utilisant des systèmes de gestion de fichiers différents. Dans le cas d'un système d'exploitation unique, il peut y avoir une seule partition recouvrant tout le lecteur, sauf si l'utilisateur désire en créer plusieurs pour faire par exemple plusieurs lecteurs dont les données sont séparées. Il y a trois sortes de partitions: • les partitions principales, • la partition étendue et • 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). 3 S. Laporte LMS La partition active : C’est 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 : 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. Remarque : Beaucoup de machines sont formatées en une grande partition utilisant l'intégralité de l'espace disponible du lecteur. Ce n'est pourtant pas la solution la plus avantageuse en terme de performances et de capacité. 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 Exemple de partitionnement de disques Disque 0 2 Go C : (pp) FAT 16 400 Mo (non dos) Netware 1.6 Go Disque 1 3 Go C : (pp) D: (pe) FAT 16 FAT 32 50 Mo 1 Go E: (pe) NTFS 1 Go F: (pe) Unix 1 Go Le repérage de ces partitions est fait grâce à une table de partitions située dans un enregistrement particulier dit enregistrement d'amorçage (démarrage) principal Ø Qu’est-ce que le multi boot ? C’est la possibilité de présenter à l’utilisateur un menu permettant de choisir l’OS à charger. Un fichier boot.ini contient ce menu. Il est créé sur la partition principale active (en général sur la P.P. dos) et propose de charger un des différents OS présents sur le disque et préalablement installés dans des partitions étendues. 4 S. Laporte LMS III. Systè me de ge stio n de f ic hie rs e t s ystè me d'e xplo itat ion Le SGF est dépendant de l’OS. Système d'exploitation Types de système de fichiers supportés DOS Windows 95 Windows 95 OSR2 Windows 98 Windows NT4 Windows 2000 et XP (NT5) MacOS Linux FAT16 FAT16 FAT16, FAT32 FAT16, FAT32 FAT16, NTFS (version 4) FAT16, FAT32, NTFS (versions 4 et 5) HFS EXT2FS 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. Ainsi, sous DOS et sur les premières versions de Windows 95 la FAT16 est de rigueur. A partir de Windows 95 OSR2 vous avez le choix entre les systèmes de fichiers FAT16 et FAT32. Si la taille de la partition est supérieure à 2Go, le système de fichier FAT16 est exclu, vous devez donc utiliser le système FAT32 (ou modifier la taille de la partition). En dessous de cette limite, la FAT16 est recommandée pour des partitions d’une capacité inférieure à 500Mo, dans l’autre cas l’utilisation de FAT32 est préférable. Dans le cas de Windows NT (jusqu’à la version 4) vous avez le choix entre le système FAT16 et NTFS, par contre celui-ci ne supporte pas la FAT32. D’une manière générale le système NTFS est conseillé car il procure une sécurité plus grande ainsi que des performances accrues par rapport à la FAT. Microsoft recommande en fait d’utiliser une petite partition (comprise entre 250 et 500Mo) de type FAT pour le système d’exploitation, afin de pouvoir démarrer à partir d’une disquette DOS bootable en cas de malheur, et de conserver les données sur une seconde partition . Sous Windows NT5 l’éventail s’agrandit puisqu’il accepte des partitions de type FAT16, FAT32 et NTFS. Une fois de plus, le système de gestion de fichiers le plus récents (NTFS 5) est conseillé, puisqu’il offre de plus nombreuses fonctionnalités que les systèmes FAT. IV. Le systè me de ge st ion de f ic hie rs 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. 5 S. Laporte LMS A. La Table des partitions C’est le secteur de démarrage (MBR ) (cylindre 0, tête 0 et secteur 1), il 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. Importance de ce secteur 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 donc 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. Remarque : Il est appelé le boot manager sous windows NT 1. Le contenu des répertoires 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) Les répertoires sont gérés comme des fichiers particuliers, qui contiennent une entrée avec les informations ci-dessus 2. Le répertoire 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. Comme tous les autres répertoires, le répertoire racine possède une entrée de 32 octets qui contient les informations ci-dessous sur les fichiers: 3. La table d’allocation de fichiers 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). Principe : 6 S. Laporte LMS Fichier1.txt 0002 Fichier2.txt 0005 Fichier3.txt 0007 Répertoire Entrées de FAT 0 1 2 3 4 5 6 7 8 0003 0004 FFFF 0006 0008 FFFF FFFF 9... .... 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. 4. Différentes versions Ø FAT16 C’est un système 16 bits, cela signifie qu’il ne peut pas adresser les clusters sur plus de 16 16 bits. Le nombre maximum de clusters repérables avec le système FAT est ainsi de 2 , soit 65535 clusters. Or, étant donné qu’un cluster est constitué d’un nombre fixé (4,8,16,32,64) de 7 S. Laporte LMS secteurs de 512 octets contigüs, 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 767 * 65535= 2 147 385 345). 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. Calculer la taille du cluster si le disque est de 1,2 Go (1 207 959 552 octets) en FAT 16 1 207 959 552 / 65535 = 18433 octets / 512 = 36 secteurs 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. Ø VFAT Pour améliorer ce point, la version originale de Windows 95 a été dotée d’une prise en charge améliorée de la FAT, il s’agit du système VFAT (Virtual FAT). La VFAT est un système 32 bits permettant d’enregistrer un fichier avec un nom de 255 caractères de long. Les programmeurs ont toutefois dû veiller à la compatibilité ascendante, de telle façon a pouvoir accéder à ces fichiers à partir d’environnements 16 bits (DOS). La solution a donc été d’affecter un nom pour chaque système. C’est la raison pour laquelle il est possible d’utiliser des noms longs sous Windows 95, tout en pouvant y accéder sous DOS. Ø FAT32 Bien que la VFAT soit astucieuse, elle ne permet pas de remédier aux limitations de la FAT16. Ainsi, un nouveau système de fichiers (et non une meilleure prise en charge de la FAT telle que VFAT) est apparu avec Windows 95 OSR2. Ce système de fichiers, appelé 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. La 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. Voyons voir la taille maximale d'une partition suivant la taille des clusters et du système de fichiers utilisé: 8 S. Laporte LMS Taille d'un cluster 4 Ko 8 Ko 16 Ko 32 Ko Système de fichier FAT16 256 Mo 512 Mo 1 Go 2 Go Système de fichier FAT32 8 Go 16 Go 32 Go 2 To 5. Le système de gestion de fichier 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 car il utilise une technique plus performants pour localiser les fichiers (un arbre binaire). 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. 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. La version 5 de ce système de fichiers (en standard sous Windows 2000 alias NT 5) amène encore de nouvelles fonctionnalités parmi lesquelles des performances accrues, des quotas de disque par volume définis pour chaque utilisateur. NTFS v.5 devrait aussi apporter la possibilité d’administration à distance... Ø 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 toutes les 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és 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 . 9