UNIX 文件系统如何形成具有节点的结构

How the UNIX file system forms a structure with nodes

我正在尝试了解 UNIX 文件系统如何处理索引节点。据我了解,目录表示为 table,每个子目录或文件都有一个 [name:inode] 形式的条目。

我感到困惑的是这些目录是如何形成结构的。如果我有一个目录 'root' 包含一个子目录 'home',子目录 'home' 包含一个文件 'file.txt' 那么我相信根目录会有一个条目 ['home':(homes associated inode)]但是这个 link 如何到 'home' 目录 table?

任何帮助或指导将不胜感激, 本

你的理解基本正确。这是一张可能有帮助的图片。我假设已知根目录是 inode 1。所以我们可能有:

索引节点 1:

type: directory
contents:
    usr       17
    etc       49
    home      57

索引节点 57:

type: directory
contents:
    dmr       201
    scs       857
    ben       981

索引节点 981:

type: directory
contents:
    .bashrc   1045
    projects  1191
    file.txt  2043

索引节点 2043:

type: file
contents:
    This is
    my text file.

这里我展示了你的文本文件的完整路径(或者至少是完整路径)是 /home/ben/file.txt.

的情况

(我也做了一个很大的简化。通常,文件的内容不是存储在索引节点中,而是存储在其他磁盘块中,索引节点包含指针到那些其他块。)