Linux文件系统核心概念解析
已于 2026年03月10日 14:26 修改
访问次数:0
1️⃣ 核心概念
| 对象 | 功能/含义 |
|---|---|
| inode | 文件本体:存储元数据(大小、权限、时间)和数据块位置 |
| dentry | 文件名 → inode 的映射,维护目录树结构 |
| file | 打开的文件对象(保存偏移量、访问模式),内核态存在 |
| fd | 用户态文件描述符,指向 file 对象,是程序访问文件的“把手” |
2️⃣ 打开文件流程
- 用户程序 open("/home/alice/path_a")
- 内核创建 file 对象 → 指向 dentry → 指向 inode
- fd 返回给用户程序,用户通过 fd 操作文件
3️⃣ 重命名文件(mv path_a → path_b)
- inode:不变,文件本体仍在
- dentry:路径名映射更新为 path_b
- file / fd:仍然有效,因为它指向 inode,而不是路径
- 用户态程序通过 fd 操作:文件数据依然可读可写
⚠️ 关键点:Linux 保证已打开文件的访问不会因重命名或删除路径而中断
4️⃣ 总结一句话
路径(dentry)只是名字 → inode 的映射;fd 和 file 直接引用 inode,所以重命名或删除文件名不会影响已经打开的文件。
评论(0)