LIUNX文件系统

目录

1.磁盘的物理结构

2.CHS定位法

3.磁盘的逻辑存储

4.系统层面

inode.block[15]

创建文件的流程

查找文件的流程


了解文件系统,首先要了解磁盘是如何存储和读取数据的。

1.磁盘的物理结构

可以理解这个盘上有很多的小磁铁,通过旋转盘面和摆动磁头,就可以访问修改这个盘上的所有的磁铁。

每个盘面上都有一个磁头,一个盘的正反面都是可以存储数据的。

整个盘面又分为不同的磁道和扇区,每个扇区存储容量相同。

扇区:是磁盘io的进本单位,通常为512字节或者4KB。

扇区不一定是系统io的基本单位。

2.CHS定位法

想要定位一个文件

首先要看该文件在哪个磁道(cylinder)

然后选择磁头(head)

最后看在那个扇区(sector)

就定位到了文件所在位置,任何文件就是多个扇区承载的数据。

3.磁盘的逻辑存储

把磁盘上所有的磁道都拉直,连接在一起,看成一个数组,这样就把对磁盘的管理,转化成了对扇区数组的管理。

要把线性地址sector = 999999转化为CHS

1.sector/单盘的容量,确定想访问的文件在哪块盘。(H)

2.sector%单盘扇区的个数 = tmp。

3.tmp/磁道个数 确定在哪个磁道。

4.sector%磁道上扇区的个数 确定在那个扇区。

4.系统层面

操作系统觉得一次io512字节太小了

os系统io的基本单位是4kb

操作系统在对这些4Kb的数据进行分区管理

在对每个区进行分组管理

最后再对每个组进行管理,管理好一个组就管理好整个文件系统了。

 

inode:LINUX的磁盘文件都是内容+属性,inode就是存储文件的属性,inode在当前分区是唯一的。

文件名不是文件的属性。

struct inode
{
  类型;
  大小;
  权限;
  acm时间;
  inode编号;
  ....
  int block[15];
}

inodeTable:他是一张存储inode的表,根据inode的编号,就可以在inodeTable中找到对应的inode。

dataBlock:datablock里面是一个一个的4KB的数据块,每个数据块都有编号,就是存放文件内容的。

inodebitmap:inode编号对应的inode是否被使用。

blockBitmap:block编号对应的块是否被使用。

GroupDescriptorTable:描述分组的信息,GroupDescriptorTable被破坏整个分组就被破坏。

superBlock:描述整个组的文件系统的,bolck 和 inode的总量, 未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的 时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个 文件系统结构就被破坏了。

inode.block[15]

block[15]中存放的是该文件使用的block的编号

[0,11]直接存放的是block的编号。

[12,13]存放的是block编号的二级索引的编号,这些索引存储的是block的编号。

[14]存放的是block编号的三级索引同理。

创建文件的流程

1.去inodebitmap,找到一个未使用inode编号。

2.将创建文件信息填入,inodeTable中inode编号所对应的inode。

3.去blockBitmap,找到未使用的块编号。

4.填入inode中的block[15]

5.把创建文件的名字和inode编号映射起来,写到目录去。

查找文件的流程

1.根据文件名,拿到inode = 1005。

2.inode,根据inode编号,看是在哪个分组。

假设group0用的是1 - 1001 的4kb数据块,group1用的是1001 - 2001的数据块。

1005在第二个分组

用1005减去group1的起始地址,用这个结果去inodeBitmap寻找是否真的存在,如果真的存在。

再用1005减去group1的结果去inodeTable,找到inode,就找到文件的所有属性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值