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