2 votes

Comment les systèmes de fichiers savent-ils dans quel dossier se trouve un fichier ?

Les nœuds d'index contiennent des métadonnées et des points indiquant où se trouvent les données réelles. Mais comment le système sait-il où se trouve le fichier ou le dossier dans l'arborescence du répertoire et comment traduit-il le nom du fichier en un i-node ?

Une explication du point de vue des systèmes de fichiers sur le processus qui se produit lorsque je demande le fichier /dossier/répertoire/nom du fichier serait très appréciée.

2voto

James Mertz Points 390

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 :

  1. Diviser le chemin donné en composants séparés par des /
  2. L'emplacement de / est déjà connu par le noyau.
  3. 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.
  4. 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.
  5. Numériser le répertoire /folder/directory à la recherche d'un élément nommé " filename "et obtenir le numéro d'inode associé.
  6. 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.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X