当前位置:  技术问答>linux和unix

minix 文件系统的一点问题

    来源: 互联网  发布时间:2015-09-18

    本文导语:  我最近在看linux 0.11版本的文件系统,它采用的是minix文件系统。我现在有一个问题百思不得其解,望大家给我指点迷津。我不胜感激!      问题是:super.c中line 161-162为:      s->s_imap[0]->b_data[0] |= 1;      s...

我最近在看linux 0.11版本的文件系统,它采用的是minix文件系统。我现在有一个问题百思不得其解,望大家给我指点迷津。我不胜感激!

     问题是:super.c中line 161-162为:
     s->s_imap[0]->b_data[0] |= 1;
     s->s_zmap[0]->b_data[0] |= 1;

     linux kernel0.11完全注释上的解释是:对于申请空闲i节点的函数来讲,如果设备上所有的i节点已经全被使用,则查找函数会返回0值。因此0号i节点是不能用的,所以这里将位图中的最低位设置为1,以防止文件系统分配0号i节点。同样的道理,也将逻辑块位图的最低位设置为1。

     但我还是不太明白,为什么因此0号i节点就不能用了呀?还有设置b_data[0] |=1到底设置的是什么?
 
     请看过源代码的人给我解答一下,定的也有分送,分不够可以再加。

     谢谢!
      


|
以下载自《MINIX:操作系统设计与实现》

逻辑上,在创建文件时,文件系统必须在位图块中查找第一个空闲i-节点,把它分配给这个新创建的文件。然而,超级块在内存的拷贝中有一个域指向第一个空闲 i-节点,因此不必进行查找,在该空闲i-节点分配使用后,就需要修改指针,使它指向下一个空闲i-节点,往往是下一个或者较近的一个节点。同样地, i-节点被释放后,检查这个i-节点是否位于第一个空闲i-节点的前面,若是,则需要修改指向第一个空闲i-节点的指针。如果磁盘上的所有i-节点全被使用,查找函数返回0,这也是0号i-节点未使用的原因(即它可以用于表明查找失败)(在mkfs创建新文件时,它把0号i-节点清零,并把位图中的最低位设置为1,防止文件系统分配0号i-节点)。上面所讲的同样也适用于区段位图。逻辑上,申请空间时,需要在区段位图中查找第一个空闲区段,但是超级块的内存拷贝保存了指向第一个空闲区段的指针,因而消除了很多顺序查找位图的麻烦。

仅仅是为了方便...我是这么认为

|
inode号从1开始,1为bad_block_inode ,就是说这个inode所链接的数据块全部是已损坏的,不能正常使用的block
2为挂载点inode号。2-10都为保留用作特殊用途的
空闲inode没有域指向的,超级块中只有记录还有多少空闲inode

魔术字段是用来标示你的文件系统的,每一个文件系统按照它的名字以16进制进行转换得到它自己的魔术字段,所以字段如果错误,mount就会失败,文件系统也就使用不了了
这些是我看ext3得出的结论,和minix应该不会差太多

|
楼主多努力吧!
0号节点不能用就像0指针一样.至于把0号节点最低位置1是为了方便程序的其它部分处理.我没看过minix的源码, 这是我的猜测.

|
谢谢楼上所载!
我也有几个问题想请教一下。
1、在linux 0.11的超级块结构中哪个域是指向第一个空闲i-节点?
2、文件系统魔术字段有什么作用?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • MINIX3 系统如何添加系统调用
  • MINIX系统中如何挂载RAM盘,并查看RAM盘的大小?
  • 谁有《操作系统设计与实现》上册的答案,还有minix的源码?
  • 这本书如何?<<操作系统教程 MINIX的设计和实现>>
  • 请问有什么UNIX或MINIX系统源码学习的经典好书吗?
  • 有人完整的看过<<操作系统:设计与实现>>的Minix源码吗?我准备用一年的时间.....
  • 《 操作系统:设计与实习》中的MINIX安装的详细步骤?
  • Unix/Minix系统中Sed命令的分析!!
  • minix3怎么使用?在线等
  • 如何安装MINIX。
  • minix filesystem 不能访问
  • 安装过Minix的进来看一下
  • 数据库 iis7站长之家
  • minix安装???
  • 哪里可以下载minix
  • MINIX RAM盘
  • 在red hat9.0下挂载minix1.0格式的软盘镜像,出错?????~~求救高手
  • 有最近开始学习Minix的吗?一起来学习吧
  • 神阿,救救我吧!谁有关于MINIX源代码的详细解析?
  • 谁有minix原代码?
  • 请问:哪里能提供Minix命令集下载?
  • 那位哥哥能告诉我那里可以下minix源码?
  • minix里的exec函数的源代码分析谁做过? 高分求购!
  • 请问用什么虚拟机可在windows环境下安装Minix,怎样装
  • 感谢Andrew Tanenbaum ,Minix3 更强了。
  • minix ast用户的密码
  • #define send _send 那么_send是在哪里实现的呢?minix源代码
  • 想看看MINIX源码,请问该要预先准备哪些知识


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3