xv6 mkfs.c文件声明变量:
int nblocks = 985;
int nlog = LOGSIZE;
int ninodes = 200;
int size = 1024;该声明应该与有12个直接块和1个间接块的inode一起正常工作,我不理解的是,为什么nblock被定义为985?一个inode中的块数为140 (间接+ 12直接为128),因此我不完全理解985来自何处以及1024的大小。
如果我能理解这部分的话,我想我可以改变变量来支持三重间接。
谢谢!
发布于 2015-07-05 13:39:30
inode在磁盘(sizeof(struct inode))上只占32个字节。只有当写入inode时,它才开始占用磁盘上更多的空间(块)。
注意这段代码:
bitblocks = size/(512*8) + 1;
usedblocks = ninodes / IPB + 3 + bitblocks;
...
assert(nblocks + usedblocks + nlog == size);https://stackoverflow.com/questions/30933526
复制相似问题