Page précédente Page suivante Table des matières

2. Présentation du propos (rédigée par Edgar Bonet Orozco)

Un système de fichiers ("filesystem", ou "fs") se compose de deux parties : la table des inodes et les blocs allouables aux fichiers.

Un inode est une structure de taille fixe. Il y en a un par fichier. Chaque inode contient :

Il y a donc toutes les informations administratives concernant le fichier. Enfin, presque toutes, il y a un absent de taille : le nom du fichier.

Son contenu se trouve dans les blocs de données. Ceux-ci sont repérés grâce aux pointeurs qu'il y a dans l'i-node. Certains de ces pointeurs sont directs, mais il y en a aussi des indirects, doublement indirects... Quand les pointeurs directs sont épuisés et que le fichier grossit, on alloue parmi les blocs de données du disque un bloc qui va servir a ranger des pointeurs vers d'autres blocs. Le premier pointeur indirect de l'i-node pointera vers le bloc ainsi alloué. Pour les très gros fichiers on a des niveaux d'indirection supplémentaires.

Un répertoire est un fichier qui contient des liens. Un lien est un couple (nom de fichier, numéro de i-node). C'est le répertoire qui permet de retrouver un fichier à partir de son nom. Le nombre total de liens qui pointent vers un i-node particulier est rangé dans le champ ad-hoc de l'i-node.

Chaque fichier est créé avec un lien unique. On peut en rajouter par la suite. Il n'y a pas de commande pour effacer un fichier. La commande rm utilise l'appel-système unlink qui détruit un lien. Un fichier n'est effacé que quand son nombre de liens tombe à zéro (et qu'aucun processus ne s'en sert).

Exemple : tu cherches /bin/ls.

Les valeurs numériques (1 ko/bloc, 12 pointeurs directs...) dépendent du FS.


Page précédente Page suivante Table des matières