尽管可以通过 Inode 完成遍历,但仍需要 Dentry

尽管可以通过 Inode 完成遍历,但仍需要 Dentry

在 Linux 中,如果我们有表示为特殊类型文件的目录,其中包含每个文件名的条目。显然,我们可以遍历并找出路径,那么为什么我们需要Dentry来帮助我们遍历路径,换句话说,如果它的工作可以由inode本身来完成,那么Dentry的意义何在呢?

答案1

索引节点没有任何文件层次结构的概念。它仅与包含实际数据的一堆磁盘块相关联。

如果没有 dentry,你就不会有任何层次结构,inode 都位于 FS 的根目录下,并且它们没有名称,只有一个数字(有点像/lost+found修复 FS 损坏后。有点......)

所以,你的问题在于一个错误的假设,即“[dentries']工作可以由inode完成”。不,只有 dentry 有文件系统层次结构的概念,这不能仅由 inode 来完成。

相关内容