Unix file System Structure

 今天看了一点Unix 文件系统,归纳了几点。

 1,文件系统是memory 的一个抽象,是virtual memory 的上层。它方便了人和储存器的交互,人看的是文件的名字,而电脑看的是二进制的index。文件(file)本质是一串任意长度的二进制数,byte流。所以文件储存在块内。

首先将disk分成相等大小的块(block),每一个块都可以储存二进制编码,x86一个block的大小为512Byte, 现在有的为4k 。把所有的block排序,然后我们就可以用

block_number来找到相应的块。一般第0 block 是boot block(驱动引导块),第一块为super block (超块),记录free block,block size等文件系统的基本信息,然后的几个block里是inode table。

每一个block会储存好几个inode,每个inode 里又储存好几个6 byte的entry (两个byte存block number,四个存file name),这样通过inode 建立了一个文件名字file name和文件内容的映射,内容放在blcok里。

inode有好多,所以inode要排序,用inode index 来标识不同的inode。 (要查找一个文件),在此inode中按顺序对其中存在的文件名和你要找的文件比对,存在的话,对应的block number就是文件地址。

  

bootsuperinode table....dirctory block

...
data block

这样的文件系统只能提供一级目录,inode-block,实际我们必然用到二级,三级甚至更多级的目录,所以它对这个问题的解决方法是增加一个inode 到inode的映射,dictory file (目录文件)是一种 特殊的 inode

这样文件系统建立一个全局变量表示当前目录(dirctory inode),根目录(root)用“/“表示。查一个文件/a/b/hellloworld.c,首先到找到根目录inode,按顺序查看blockx 里的a,找到a后 ,接着找到a对应的block number等等。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值