ext2文件系统寻址

ext2 文件系统相关介绍:ext2文件系统,一个文件除了数据需要存储之外,一些描述信息也需要存储,例如文件类型(常规、目录、符号链接等),权限,文件大小,创建/修改/访问时间等,也就是ls -l命令看到的那些信息,这些信息存在inode中而不是数据块中。但是文件名存在哪里,首先文件名不是存在inode中的,那么文件名存在哪里?

这里我们可以看到目录大小都为4096,当你创建一个目录的时候操作系统会为其分配一个块(4096),文件名也就是存在目录文件中,值得说明的是:当文件的目录下文件很多的时候,目录文件大小就会增大。如下所示如bin目录文件大小就比69632要大了。

下面就以home目录为例:

/home 目录文件中存放一条条记录项,这里记录项包含目录下的文件名和对应的inode号,记录长度等信息。

open()一个/home 目录下为文件hello.c 文件的寻址过程,先找到/home 文件数据块,去匹配记录项的文件名,如果匹配到就可以获取其inode号,然后再根据inode去获取数据指针。可能有人会问/home 怎么找到的呀?home目录的上一级目录为根目录/,操作系统规定根目录/必须放在inode为2的编号上。

可以看到/目录的inode为2.

当open("/home/hsc/ss.c")

因此寻址过程为:操作系统首先找到inode2的数据块,然后根据记录项匹配获得home目录inode号,根据inode号获取相应的数据块,然后再根据记录项找到hsc文件inode号

依次最终找到ss.c 的inode然后找到文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值