Directory-目录结构

目录 (Directory) 在 xv6 中没有任何黑魔法,它就是一种特殊类型 (T_DIR) 的文件。

内部结构

它的数据块里存的不是文本,而是一系列 struct dirent

struct dirent {
  ushort inum;        // Inode Number (2 bytes)
  char name[DIRSIZ];  // File Name (14 bytes)
};
  • 每个条目 16 字节。
  • inum = 0 表示该条目为空(被删除了)。

查找逻辑

当你要找 ls 时,内核就在当前目录的数据块里遍历 dirent 数组,对比 name 是否为 “ls”。如果找到了,就返回对应的 inum。