如何定位一个文件

linux的VFS包含4个重要概念:

  1. superblock,包含文件系统的信息,管理整个文件系统。
  2. inode,索引文件(index node),代表一个文件,包含文件的元数据和数据,不包含文件名。
  3. dentry,目录项,代表路径中的每个部分,包含文件路径到inode的映射。
  4. file,文件,是文件在进程中的表示。

同时,在linux中一切兼文件,包括目录。目录的内容是文件名和inode号。

当打开一个文件/bin/vim,系统首先把路径分解成/binvim,根据dentry查vim的inode,如果dentry还没有bin,会根据superblock中根目录的inode号得到它的子目录信息,其中就有bin和它的inode,并把它放到dentry中,然后根据bin的内容找到vim的inode。最终,返回一个文件描述符(file descriptor)。

← 高可用 slave和master同步连接经常重连,导致发送消息失败 →
存档 关于