当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-14 19:21 

注册: 2010-11-27 22:20
帖子: 76
送出感谢: 0 次
接收感谢: 0 次
其实对于这两个问题,我也不知道如何选择一个标题,也许这么提问的标题有些词不达意了。

大家都知道,LINUX对于目录与文档的寻址,是必须通过INODE来确定帐号是否有操作的权限之后再通过INODE里面的BLOCK号来定位文档或目录的,而要是下一级是目录,则再继续查找该目录对应BLOCK里面的文档档名对应的INODE继续进行以上所说的相同机制继续寻址。同时我们也知道,LINUX的顶层目录的INODE号通常为2,所以问题来了,如果我划分了两个分区,我把A分区挂载到/下面,B分区挂载到/ETC下面,那么/与/ETC的IONDE号都是2,倘若我需要查找/ETC/PASSWD,请问系统是如何得知我是需要去找/这个2,而不是/ETC这个2呢?

第二,每个FILESYSTEM下面都有一堆INODE号和BLOCK号,这些号都分了好多的GROUPS,称为BLOCK GROUPS,里面包含了SUPER、FILESYSTEM DESCRITION、BLOCK MAP、INODE MAP、INDOE TABLE以及DATA BLOCK,我想请问,在系统寻址的时候,例如已经找到了INODE号为1000,那么希望是如何知道这个1000的INODE号是在哪个GROUP里面呢?不找到这个GROUP又怎么去确认权限、属性以及档案或目录所在的BLOCK位置呢?


最后由 zipkong 编辑于 2010-12-15 10:20,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-15 1:19 
头像

注册: 2008-09-18 13:11
帖子: 2910
送出感谢: 1
接收感谢: 482
1、你要查找的是路径为/etc/passwd的文件,又不是inode为2的文件,所以会按照目录结构从/找etc再找passwd,根本和/home的inode号没关系

2、block_group = (inode号 - 1) / 每个group内inode总数


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-15 1:21 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
请查阅《深入理解linux内核》


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-15 10:21 

注册: 2010-11-27 22:20
帖子: 76
送出感谢: 0 次
接收感谢: 0 次
astolia 写道:
1、你要查找的是路径为/etc/passwd的文件,又不是inode为2的文件,所以会按照目录结构从/找etc再找passwd,根本和/home的inode号没关系

2、block_group = (inode号 - 1) / 每个group内inode总数


第二条我明白了,谢谢,但是第一条还是不太明白。
因为我的了解是,LINUX对于文档或者目录的寻址是先找INODE号确认权限后读取BLOCK号,根据这个号码指向BLOCK所在位置,如果是有多目录,就依据以上步骤继续往下寻找。也就是说,这个查找的第一步就是要知道这个文档或目录的顶级目录的INODE方能继续往下查找。
抱歉,之前举的例子打错了名字了,应该是分了两个区,分别挂载在/以及/ETC,如果我要找/ETC/PASSWD,而这连哥哥顶级目录/以及/ETC的INODE都是2,请问系统是如何知道我要去/ETC而不是/的?谢谢


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-15 10:50 

注册: 2010-01-13 23:26
帖子: 3173
送出感谢: 0 次
接收感谢: 12
zipkong 写道:
astolia 写道:
1、你要查找的是路径为/etc/passwd的文件,又不是inode为2的文件,所以会按照目录结构从/找etc再找passwd,根本和/home的inode号没关系

2、block_group = (inode号 - 1) / 每个group内inode总数


第二条我明白了,谢谢,但是第一条还是不太明白。
因为我的了解是,LINUX对于文档或者目录的寻址是先找INODE号确认权限后读取BLOCK号,根据这个号码指向BLOCK所在位置,如果是有多目录,就依据以上步骤继续往下寻找。也就是说,这个查找的第一步就是要知道这个文档或目录的顶级目录的INODE方能继续往下查找。
抱歉,之前举的例子打错了名字了,应该是分了两个区,分别挂载在/以及/ETC,如果我要找/ETC/PASSWD,而这连哥哥顶级目录/以及/ETC的INODE都是2,请问系统是如何知道我要去/ETC而不是/的?谢谢

其实你说的前提就武断了,找个方法应该是以 EXT 文件系统为基础说的,那别的不搞 inode 的文件系统咋找呢?


_________________
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于LINUX通过INODE寻址以及BLOCK GROUP寻址的疑问
帖子发表于 : 2010-12-15 13:51 
头像

注册: 2008-09-18 13:11
帖子: 2910
送出感谢: 1
接收感谢: 482
zipkong 写道:
astolia 写道:
1、你要查找的是路径为/etc/passwd的文件,又不是inode为2的文件,所以会按照目录结构从/找etc再找passwd,根本和/home的inode号没关系

2、block_group = (inode号 - 1) / 每个group内inode总数


第二条我明白了,谢谢,但是第一条还是不太明白。
因为我的了解是,LINUX对于文档或者目录的寻址是先找INODE号确认权限后读取BLOCK号,根据这个号码指向BLOCK所在位置,如果是有多目录,就依据以上步骤继续往下寻找。也就是说,这个查找的第一步就是要知道这个文档或目录的顶级目录的INODE方能继续往下查找。
抱歉,之前举的例子打错了名字了,应该是分了两个区,分别挂载在/以及/ETC,如果我要找/ETC/PASSWD,而这连哥哥顶级目录/以及/ETC的INODE都是2,请问系统是如何知道我要去/ETC而不是/的?谢谢


这个就和每个ext2分区的结构关系不大了。你要使用分区总要先挂载吧,挂载时总要指明挂载点吧。你将分区1挂在/,以后查找路径时都从分区1开始找。再将分区2挂在/etc,挂载分区2时已经将分区1下的/etc给“覆盖”掉了,以后从/开始查找到etc时,就会自动转向分区2的最上层目录。这个自动转向机制已经和ext2系统的结构无关了,实际上是由vfs的mount机制来实现。具体发生的事自己去看这篇吧:http://www.ibm.com/developerworks/cn/linux/l-vfs/


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译