题:

假设一个I节点可以容纳7个直接块指针和一个单间接块指针。如果块大小为4KB,并且有32位块号,系统支持的最大文件是什么?

回答:

7个直接块,大小为4KB

间接块指向4K / 4 = 1024个块,每个块大小为4KB

1031 * 4K = 4222976B = 4124KB〜4.03MB

通常,如今的inode具有:

12个直接块指针

1个间接指针

1个双重间接指针

1个三重间接指针

<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>

我知道一个索引节点有7个直接块指针和1个间接块指针,每个块指针的大小为4kb。当它说有32位块号时,这是否意味着那里有1024个块指针?

最佳答案

如果块大小为4 kiB,并且您具有32位(4字节)块号,则在一个块中可以有1024个这样的块号。 (我认为这是您不了解的部分。)这意味着:32位数字中的每一个都使用该块的4个字节,因此这些数字中的1024个使用4096字节=恰好是1个块。因此,一个块中可以存储1024个块号。

但是在inode中,通常首先使用七个(通常)直接块。所有大小小于28 kiB的文件仅使用直接块。

一旦直接块用完,就将一个块分配并分配给该索引节点,以作为可以存储的块编号列表。

07-24 18:53