链接,可以理解为 windows 系统中的 “快捷方式”。
其中最早的链接技术,是硬链接。
目录文件的 inode 存放的是 entry,entry 的 key 是文件名称, value 是 inode 的磁盘 Inode 数组物理编号(数组下标)。
硬连接就是 不同绝对路径下的 目录文件 inode 的 entry 指向同一个 inode 编号的技术。
硬连接好像已经能够实现 “快捷方式” 的链接功能,为什么要发明软连接?
有时候需要 “跨文件系统” 指向 inode (注意,不同文件系统的 inode 编号允许相同),
这个时候单单通过 inode 编号,系统会认为是当前文件系统的 Inode 编号,无法实现跨文件系统。
因此,需要 “绝对路径” 来指向 inode。
由于 entry 的 value 太小了(int类型),无法存放 “绝对路径的字符串” (string类型)。
所以,先让 entry 的 value 指向 一个中继的 inode,
然后 inode 文件内容存放 “绝对路径的字符串”,
这样就实现了链接的作用了。(这就是软连接技术)。
顺道说一下,目录文件inode 本质上就是一个 ext4_dir_entry 数组 (再新版本中,ext4_dir_entry 数组 改为 dx_root 对象)
下一篇:形容装的句子