= Solution
Names live in <directory entries>. Each ordinary <directory entry> associates a component name with an <inode number>; the corresponding <inode> describes the <file> and locates its contents. A name is therefore not stored as the identity of the <inode>, and <hard links> can give one <inode> several names.
To resolve `/var/mail/user`, start from the root <file-system directory>'s <inode>, read its <directory entries> and find `var`. Follow that entry's <inode number> to the `var` <inode>; read that <file-system directory> and find `mail`; repeat for `user`. The final <inode> supplies the <file metadata> and addresses needed to read the <file data blocks>. The intermediate <file-system directories> require search permission. This describes ordinary pathname traversal without a <symbolic link> or mount point changing the route.
$$
\boxed{\text{component name}\longrightarrow\text{directory entry}\longrightarrow\text{inode}\longrightarrow\text{contents}.}
$$
Back to article page