Linux文件系统核心概念解析

1️⃣ 核心概念

对象功能/含义
inode文件本体:存储元数据(大小、权限、时间)和数据块位置
dentry文件名 → inode 的映射,维护目录树结构
file打开的文件对象(保存偏移量、访问模式),内核态存在
fd用户态文件描述符,指向 file 对象,是程序访问文件的“把手”


2️⃣ 打开文件流程

  1. 用户程序 open("/home/alice/path_a")
  2. 内核创建 file 对象 → 指向 dentry → 指向 inode
  3. fd 返回给用户程序,用户通过 fd 操作文件


3️⃣ 重命名文件(mv path_a → path_b)

  • inode:不变,文件本体仍在
  • dentry:路径名映射更新为 path_b
  • file / fd:仍然有效,因为它指向 inode,而不是路径
  • 用户态程序通过 fd 操作:文件数据依然可读可写
⚠️ 关键点:Linux 保证已打开文件的访问不会因重命名或删除路径而中断


4️⃣ 总结一句话

路径(dentry)只是名字 → inode 的映射;fd 和 file 直接引用 inode,所以重命名或删除文件名不会影响已经打开的文件。
文章标签:

评论(0)