【发布时间】: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