BeFS支持的最大文件大小的计算

时间:2018-11-11 12:22:15

标签: c unix linux-kernel filesystems

我正在阅读“使用Be文件系统的实用文件系统设计” ,在BeFS中,inode结构的“数据流”部分如下所示:

struct {
  // each block_run(8 byte) is a disk address space which maps from
  // at lease 1 block and 65536 block at most
  block_run direct[12];
  // points to a block which contains block_run of real data
  block_run indirect;
  // points to a block which contains block_run of indirect blocks
  block_run double_indirect;
}

然后,本书开始计算最小和最大文件大小,让我们看看最小文件大小:每个直接block_run映射1个块 并且每个间接映射至少映射4K空间(512 block_run),每个间接映射至少映射4K空间(512 block_run),每个块的最小文件大小为1KB结束于:

  

直接块= 12K

     

间接块= 512K(4K间接块映射512个块/行程,每个1K)

     

双间接块= 1024MB(4K双间接页面映射512个间接页面,每个映射映射512个4K的block_runs)

我确实对双间接块映射空间感到困惑,不是吗?

  

双间接块= 512 * 512KB(每个间接页面映射512K空间?)

1 个答案:

答案 0 :(得分:0)

嗯,我看了很多章后才发现。双重间接块包含一个block_run,其中包含块地址,不包含间接块地址。因此计算是正确的。