A- Le SGF de
Linux : Ext2FS
Linux est un système d'exploitation qui s'apparente fort à
Unix, tout en étant un logiciel libre. Le système de fichier initial était
dérivé de celui du système Minix, lui aussi dérivé d'Unix pour
l'enseignement. Trop contraignant, celui-ci a été remplacé par un nouveau
système de gestion de fichiers : Ext2FS.
Structure du système
Pour le SGF Ext2FS, tout est fichier. Ainsi, tous les systèmes de
fichiers, quels que soient leur emplacement physique, doivent être intégrés
dans l'UNIQUE arborescence logique du système Linux.
Cette arborescence peut donc être construite (et évoluer) à partir de
diverses partitions qui peuvent être situées sur plusieurs disques.
Les fichiers ne sont pas typés.
Le processus de montage est le moyen de faire correspondre parties de
l'arborescence et partitions physiques de disques. Il permet de plus d'affecter
tout système extérieur (disquette, cdrom, rép. réseau ...) à un répertoire
créé pour cela dans l'arborescence.
Il suffira ensuite de se déplacer vers ce répertoire, appelé point de
montage, en fait un répertoire "d'accrochage", pour accéder
à ses fichiers (conformément aux permissions que possède l'utilisateur ).
Si tout est fichier, on distingue cependant 4 catégories :
- fichiers normaux
* texte : courrier, sources des programmes, scripts, configuration ...
* exécutables : programmes en code binaire
- fichiers répertoires
ce sont des fichiers conteneurs qui contiennent des références à d'autres
fichiers.
véritable charpente de l'arborescence, ils permettent d'organiser les
fichiers par catégories
- fichiers spéciaux
situés dans /dev
, ce sont les points d'accès préparés
par le système aux périphériques. Le montage va réaliser une
correspondance de ces fichiers spéciaux vers leur répertoire "point
de montage".
par exemple, le fichier /dev/hda
permet l'accès et le
chargement du 1er disque IDE
- fichiers liens symboliques
Ce sont des fichiers qui ne contiennent qu'une référence (un pointeur) à
un autre fichier.
Cela permet d'utiliser un même fichier sous plusieurs noms sans avoir à le
dupliquer sur le disque.
Les descripteurs de fichiers
L'ensemble du disque est découpé en blocs dont la taille est une puissance
de 2 de la taille d'un secteur. Ext2fs pratique l'allocation par bloc de
taille fixe. Les descripteurs d'objets externes sont représentés dans ce qui
est appelé
inode. Ces inodes sont regroupées dans une table, l'indice dans
la table, appelé le numéro de l'inode (i pour integer), identifiant de façon
unique cet objet. Une table bitmap décrit l'état d'allocation des inodes, et
une autre décrit l'état d'allocation des blocs. Pour des raisons de
performances, en particulier sur les gros disques, ces tables sont morcelées
et réparties dans la partition.
Une partition est découpée en groupes de même taille, chaque groupe
comportant 6 parties:
- Le super bloc, qui contient les informations de structure du
volume.
- La liste des descripteurs de groupe, qui localise sur le disque les
informations essentielles de chaque groupe (localisation des tables).
- La table bitmap d'état d'allocation des blocs du groupe.
- La table bitmap d'état d'allocation des inodes du groupe.
- La table des inodes du groupe.
- Les blocs de données.
Le super bloc et la liste des descripteurs de groupe sont donc répétés au début
de chaque groupe, pour des raisons de fiabilité. Lors du montage, on ne lit
en fait que ceux du premier groupe. Cette séparation en groupes doit plus être
vue comme une répartition des données sur le disque, dans le but d'améliorer
les performances. La taille d'un groupe est d'ailleurs limitée, puisque
chaque table bitmap d'un groupe doit tenir dans un seul bloc. Si la taille de
la partition est importante, il y aura beaucoup de groupes.
Les groupes ont pour but de rapprocher dans un espace physique proche les
informations qui sont reliées entre elles. Ainsi, lors de l'allocation d'une inode,
on cherchera de préférence dans le groupe du répertoire où elle est référencée;
de même, lors de l'allocation d'un bloc, on cherchera d'abord le bloc qui
suit le dernier alloué à l'objet, puis dans son voisinage immédiat, puis
dans le même groupe et enfin dans les autres groupes.
Un descripteur d'objet externe contient évidemment le type de l'objet, des
informations pour sa protection, sa longueur, les dates habituelles de création,
modification, accès et destruction, ainsi que les informations de
localisation du contenu. La taille d'un objet externe est limité à 2 Go,
mais la taille d'une partition peut atteindre 4 To.
Les Répertoires
Ext2fs gère une arborescence de fichiers. Le contenu d'un répertoire étant
une liste d'entrées constituées de couples <
inode, nom>, le nom étant
limité à 255 caractères. Les deux premières entrées d'un répertoire sont
les entrées "." et ".." habituelles. Il est possible
d'avoir plusieurs noms ou chemins d'accès pour le même inode. Ceci a pour
conséquence que la suppression d'une entrée dans un répertoire n'entraîne
pas obligatoirement la suppression de l'inode correspondant. Celle-ci ne sera
effective que s'il n'existe plus d'entrée associée à cette inode dans aucun
répertoire. En dehors de la suppression d'une entrée dans un répertoire,
qui n'affecte donc que cette entrée, toutes les autres opérations effectuées
par l'un des chemins aura les mêmes répercutions par l'autre.
Ce système permet aussi la création de liens symboliques. Dans ce cas, il
s'agit de créer un objet externe (avec inode et contenu), du type lien
symbolique, et dont le contenu sera le chemin d'accès à l'objet relié. Dans
ce cas, la recherche de l'objet externe relié implique la réévaluation du
chemin d'accès.
Certains répertoires sont natifs à Ext2FS et ont un rôle bien spécifique.
Ceux-ci sont détaillés
ici.
retour