【问题标题】:Calculation of max file size supported in BeFSBeDS 支持的最大文件大小计算
【发布时间】:2019-04-14 09:07:24
【问题描述】:

我在看《用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's),每个双间接映射至少 4K 空间(512 block_run's),每个块大小为 1KB,最小文件大小结束于:

直接块 = 12K

间接块 = 512K(4K 间接块映射 512 个 block_runs,每个 1K)

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

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

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

【问题讨论】:

    标签: c unix linux-kernel filesystems


    【解决方案1】:

    嗯,那个章节我看了很多遍才明白。双间接块包含一个block_run,其中包含块地址,它不包含间接块地址。所以计算是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-07
      • 2016-12-16
      • 2016-01-07
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多