QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3494|回复: 4

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

[复制链接]
发表于 2006-5-28 11:16:08 | 显示全部楼层 |阅读模式
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-28 21:54:43 | 显示全部楼层
我没有仔细阅读minix源代码,我觉得在inode节点分配的时候,把计数值+1
回复

使用道具 举报

 楼主| 发表于 2006-5-28 22:28:12 | 显示全部楼层
LINUX 0.11的内核,它的文件系统就是MINIX的.
有谁知道超级块中这个s_ninodes(总的i节点数)是怎么计算出来的?
如果是64M的分区,那么这个值应该是多少.
回复

使用道具 举报

 楼主| 发表于 2006-5-28 22:33:31 | 显示全部楼层
[quote:5630224d08="armybird1016"]我没有仔细阅读minix源代码,我觉得在inode节点分配的时候,把计数值+1[/quote]

i节点总数应该是在分区的时候,根据大小就固定了,而使用i节点的时候是根据i节点位图的位的占用情况来判断的.
回复

使用道具 举报

发表于 2006-9-24 10:52:26 | 显示全部楼层
用MKFS时就须指定INODE的个数,
应该是在分区时就固定的
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 08:16 , Processed in 0.119720 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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