【文件系统】分区&分组管理 | 文件系统的具体区域 Date blocks | Block Bitmap | inode Table | inode Bitmap | GDT | SB

目录

1.分区

2.分组 

3.Data blocks

4.Block Bitmap

5.inode Table

6.inode Bitmap

7.GDT

8.Super Block

9.格式化


  • ❗文件由很多扇区构成------>文件由很多的index构成----->文件由很多的块构成------>文件由很多LBA地址构成。 
  • 思想:分治思想

1.分区

计算机的磁盘空间是庞大的,OS是怎样去管理磁盘呢❓

  • 分区管理:只要知道磁盘空间的大小→/4KB就知道块数多少→进行编号即可→800GB是由无数个块空间构成的。我们最终的目标是把整个磁盘管理好——磁盘上的文件管理好。所以我们进行分区操作。把磁盘拆分成几个区。只要需要一套方法,把磁盘所有内容管理好。
  • 这个线性结构是一个LBA数组。只需要存储每个区的起始LBA和结束LBA即可。(LBA:逻辑块地址)
  • 电脑中的C/D盘都是磁盘的分区,想要把整个磁盘管理好,就把一个分区管理好即可。
  • 接下来细分一个分区的管理方法。以200GB为样例。只需要记录start block ~ end block就可以完成分区的范围记录。

2.分组 

  • 只要能把一组管理好,就能把整个分区的所有组管理好,就能把整个分组管理好。
  • 研究磁盘的文件系统 转化 研究磁盘的每个组里面的内容。 
  • 分区有很有很多分组,每个分组都有如下字段。

  • 文件 -= 文件内容+文件属性(内容和属性的本质都是数据)

  • 文件保存和提取在文件在磁盘中存储本质是:文件的内容数据和文件的属性数据。

  • 文件系统非常多(ext2/ext3/ext4...........)

  • Linux文件系统的特点:将文件内容 和 文件属性 分开存储。

3.Data blocks

  • Date blocks又称数据区/块数据区。
  • 数据块只存储文件的内容数据
  • 整个分组当中,占据数据最大的一块区域。(90%以上)
  • 里面存放的都是 基本单位为4KB的数据块。(本来逻辑块已经是大小为4KB的块了,所以没必要划分直接使用即可)
  • 每个块都有各自的块号。只要有块号。就可以通过计算得到CHS地址。(逆向回去)
  • 文件加载到内存。以块为单位分批加载到内存。
  • 文件系统和磁盘进行IO的时候是以4GB为基本单位的。
  • 所以即便你只需要5GB,但是是以8GB IO交互的。(只不过只能使用5GB的空间大小)

4.Block Bitmap

  • Block Bitmap又称块位图,其实就是一张位图(0/1序列)
  • Date block有多少个数据块,就在Block Bitmap中申请多少个比特位。
  • Block Bitmap也是由块构成的。(逻辑块)
  • 4*1024*8=32768字节(一个块位图可以保存32768个比特位的数据)
  • 1000个块 = 4*32768 (十万个块相当于只需要4个块位图即可)
  • 可以把 Data blocks数据块的使用状态/情况 表示出来。
  • 位图结构:比特位的位置表示块号。
  • 比特位的内容:表示该块是否被占用。

5.inode Table

  • inode table又称inode节点表,inode表。
  • 基本单位也全都是块。
  • inode表里面保存的所有文件的属性。
  • Linux中文件的属性是一个大小固定的集合体。类和结构体struct。结构体:struct inode(inode节点,表示文件的所有属性类别)
  • 可执行程序文件,文本文件,库文件,源代码,文件夹等文件struct inode都是一样的。文件属性大小struct inode一样,只有struct inode字段里面的值不一样,字段类别是一样的。
  • struct inode中一个重要字段:int inode_number (inode号)
  • Linux文件系统规定struct inode大小固定为128字节
  • inode table里面也是一个一个的块(4KB)(4✖1024➗ 128=32:一个块里面可以存储32个inode表)
  • 一个正常文件,一个inode属性集合。

  • Linux中的文件的属性是一个大小固定的集合体。属性值可以不相同,但是属性的类别肯定是一样的。

  • 先描述再组织。先描述:先定义好就是一个类/结构体。再组织。

  • 类的大小是固定的。例如:学生1名字:张三 学生2名字:李四 它们共同有一个属性:名字name

  • ❗文件的属性和内容区别是:文件的内容可以大小不一样,但是文件的属性类别一定是一样的。

6.inode Bitmap

  • Inode bitemap又称inode位图,每个比特位表示一个inode是否空闲可用。
  • 比特位的位置表示:第几个inode(根据inode号映射)
  • 比特位的内容表示:inode是否被占用。
  • 0:表示未被占用可以直接被覆盖写入。1:表示已经被占用了。

7.GDT

  • GDT(Group Descriptor Table):块组描述符。
  • GDT也是结构体,是描述所在块组的属性情况。是一个管理字段,管理整个块组情况。
  • 块组多大,每个区域的块的划分,以及inode Table和Date blocks的使用情况等。

 

8.Super Block

  • Super block简称Sb,超级块。代表一个文件系统。描述的是整个分区的整个文件系统的相关情况。
  • 超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了。
  •  SB并不是每个分组都有的❌也不是在整个分组中只有一个在最前面❌
  • SB根据不同的文件系统,在2~3个分组/块组 存在✔即便同时存在多个组,但是内容必须保持一致。
  • SB为什么这么干❓因为SB代表是整个分组的使用情况,一旦有数据遗失。分区就挂了。磁盘一旦有一个分区不能使用。几百G的空间不能使用,代价很大。不是每个分组都有:效率问题没必要。几个同时有:为了系统的安全性/稳定性考虑。即便遗失也可以恢复。处于稳定性考虑。

9.格式化

  •  一个分组里面文件系统的基本结构如上。
  • 分区------分组:每个分组都要有这样一个文件系统的基本结构
  • 分区之后,确定分组的区域(需要体现在SB和GDT)
  • 分组之后,确定文件系统的基本结构划分区域(需要体现在SB和GDT)
  • 写入文件系统管理数据:如 划分区域信息并且填入、每个区域的属性信息填入、需要清空清空。
  • 所以格式化的本质:写入文件系统❗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐唐思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值