Techniquement, un répertoire n'est qu'un fichier contenant des noms de fichiers, leurs numéros d'inode et leurs attributs. Sous BSD et Plan9, vous pouvez même le lire comme un fichier. (Bien que sur les systèmes de fichiers modernes, le format sur disque soit une sorte d'arbre binaire, et non une liste séquentielle).
Le processus de base (pour les chemins d'accès de type Unix) est le suivant :
- Diviser le chemin donné en composants séparés par des
/
- L'emplacement de
/
est déjà connu par le noyau.
- Numériser le répertoire
/
à la recherche d'un élément nommé " folder
". Obtenir le numéro d'inode associé.
- Si
/folder
n'est pas un répertoire (ou un lien symbolique pointant vers un répertoire), renvoie ENOTDIR.
- Numériser le répertoire
/folder
à la recherche d'un élément nommé " directory
". Obtenir le numéro d'inode, lire l'inode, trouver les données.
- Numériser le répertoire
/folder/directory
à la recherche d'un élément nommé " filename
"et obtenir le numéro d'inode associé.
- Lire l'inode et obtenir les métadonnées du fichier, les bits de permission, l'emplacement des données, etc.
Nota: /
, /folder
y /folder/directory
peuvent être des points de montage pour des systèmes de fichiers complètement distincts. Une configuration courante consiste à avoir une partition pour /
et un autre pour /home
. (Cela s'applique également aux systèmes non Unix, tels que Windows NT.) Le processus ci-dessus devrait répertorier les recherches dans la table de montage du noyau.