Linux 文件查找和dentry缓存

Linux 文件查找和dentry缓存,linux,filesystems,Linux,Filesystems,我知道detnries通过不访问磁盘来获取文件的inode来节省时间 我读到的所有资料都描述了如何使用dentries发现inode。 没有一本书真正描述了如果我们没有假牙的话,inode是如何被发现的 假设我想访问/home/dlv/src.c,而dentry缓存是空的。 操作系统将如何创建新的Dentry? 你能解释一下大致的机制吗?(从搜索磁盘、创建dentry和设置其字段等…) 谢谢,, Dolev.文件系统的根目录条目通常位于已知位置,或者具有已知的inode编号,或者其inode编号

我知道detnries通过不访问磁盘来获取文件的inode来节省时间

我读到的所有资料都描述了如何使用dentries发现inode。 没有一本书真正描述了如果我们没有假牙的话,inode是如何被发现的

假设我想访问/home/dlv/src.c,而dentry缓存是空的。 操作系统将如何创建新的Dentry? 你能解释一下大致的机制吗?(从搜索磁盘、创建dentry和设置其字段等…)

谢谢,,
Dolev.

文件系统的根目录条目通常位于已知位置,或者具有已知的inode编号,或者其inode编号存储在superblock或其他文件系统元数据中。从那里,扫描包含根目录项的块以查找
home
——该dir项将包含
home
的inode编号。然后扫描该inode引用的块,从
/home
获取目录条目,并搜索
dlv
。重复此操作,直到找到路径中的最后一个目录项,并扫描该目录的inode,以查找与相关文件匹配的目录项

考虑一下磁盘上嵌套非常深的文件(每次访问需要10毫秒)的处理过程,应该可以让您很好地了解目录项缓存的动机。。。在磁盘上查找一个深度嵌套的文件可以轻松地进行数百次磁盘访问