Linux文件系统与进程管理深度解析
1. 文件系统基础
1.1 inode
inode是文件系统中的重要概念,每个文件都有一个与之关联的inode,它被分配一个唯一的数值,称为inode编号,常缩写为i - number或ino。inode存储了与文件相关的元数据,如修改时间戳、所有者、类型、长度以及文件数据的磁盘位置,但不包含文件名。inode既是Unix风格文件系统磁盘上的物理对象,也是Linux内核中由数据结构表示的概念实体。
1.2 目录与链接
- 目录的作用 :通过inode编号访问文件既麻烦又存在安全隐患,因此用户空间总是通过文件名来打开文件。目录用于提供访问文件的名称,它是人类可读名称到inode编号的映射。名称和inode的配对称为链接。目录在概念上类似于普通文件,不同之处在于它只包含名称到inode的映射,内核直接使用此映射进行名称到inode的解析。
- 路径名解析 :当用户空间应用程序请求打开给定的文件名时,内核会打开包含该文件名的目录并搜索该名称,从文件名获取inode编号,进而找到inode。最初,磁盘上只有一个目录,即根目录,通常用路径“/”表示。由于系统中通常有多个目录,当内核被要求打开像“/home/blackbeard/landscaping.txt”这样的路径名时,它会遍历路径名中的每个目录项(内核中称为dentry)以找到下一个条目的inode,这个操作称为目录或路径名解析。Linux内核还使用一个名为dentry缓存的缓存来存储目录解析的结果,以加快后续查找速度。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



