LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1890|回复: 3

MINIX文件系统的问题,计算超级块中i节点总数?

[复制链接]
发表于 2006-5-28 12:07:55 | 显示全部楼层 |阅读模式
MINIX文件系统的超级块字段为:
struct super_block {
unsigned short s_ninodes;
unsigned short s_nzones;
unsigned short s_imap_blocks;
unsigned short s_zmap_blocks;
unsigned short s_firstdatazone;
unsigned short s_log_zone_size;
unsigned long s_max_size;
unsigned short s_magic;
................................
};
s_ninodes为该分区中i节点总数,我想请问是怎么算出来的?

我可以计算s_nzones逻辑块总数,例如MINIX文件系统的分区为64M,则MINIX文件系统的一个逻辑块为1K,那么就有64*1024*1024/1K=64*1024个逻辑块。
知道了逻辑块总数目,那么逻辑块位图所占的块数s_zmap_blocks也就知道了,64*1024/(8*1024)=8个块,所以逻辑块位图占用了硬盘上8个逻辑块。

但是i节点就不知道是怎么计算的?
发表于 2006-5-29 18:16:59 | 显示全部楼层
inode是和文件一一对应的吧,所以这个文件系统中当前有多少个文件被打开,s_ninodes就等于多少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-29 19:00:52 | 显示全部楼层
Post by Mageblade
inode是和文件一一对应的吧,所以这个文件系统中当前有多少个文件被打开,s_ninodes就等于多少

i节点和文件是一一对应的,这个关系是对的,但是i节点总数在生成MINIX文件系统的时候就已经确定了,要不怎么确定i节点区所占用的逻辑块数呢?
回复 支持 反对

使用道具 举报

发表于 2008-6-15 02:07:02 | 显示全部楼层
/* some magic nrs: 1 inode / 3 blocks */
        INODES = BLOCKS/3;

他是假设的这么一个魔幻数,我也不知道有什么根据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表