【Linux 学习】 文件系统

Linux文件系统

1、磁盘


 左图中的椭圆代表磁盘的一个盘片,右图为盘片的放大图,盘面上面的一道同心圆表示一个磁柱,磁柱是有许多扇区组成的,扇区是最小的物理存储单元。多个磁柱构成一个分割槽即分区。一个磁盘的第一个扇区是非常重要的,一般记录了整个磁盘的分割方式即分区表。该分区表一般为64bytes,仅能够记录4个分区(分为主分区和扩展分区),其中扩展分区可以继续分割出逻辑分区,而逻辑分区的个数依据系统而来。

2、文件系统

将磁盘分好区后,并不能直接利用磁盘的空间,而是需要将磁盘对应的分区或分割槽格式化为文件系统后,才能够被操作系统利用。一般的,一个分区对应一个文件系统。

Linux系统中,文件系统将文件的属性和数据分开放,文件的属性存放在iNode里面,具体的文件内容则存放到block里面。对于目录而言,iNode存放目录的属性,而目录下面的文件或者子目录存放到对应的block里面。另外,Linux系统为了管理这些iNodedata block增加了一个super block区块。每一个文件都会对应一个iNode,一个或者多个data block

磁盘被格式化后,iNodedata block就已经被确定下了。往往一个100G左右的文件系统格式化后得到的iNodedata block的数量非常惊人,因此Linux将这些iNodedatablock进行分组管理。每一个组内具有superblockiNodedata block,而且在文件系统的最前面预留一个扇区用来安装引导程序。

2.1 iNode

iNode主要用来存放文件的属性和权限等。每一个iNode大小固定为128bytes,每一个文件都会占用一个iNode。而iNode在记录block位置是需要消耗掉4byte,因此最多一个iNode可以存放128/4=32block的位置。但这是在不存储文件的饿属性的权限的情况下计算而来的。实际文件的大小往往比较大,如果iNode直接记录block并且block直接用来存放数据时,这时文件系统能够存储的文件大小将会非常受限。因此Linux采用12个直接block1个间接、1个双间接、一个三间接。间接表示iNode存放的block不用来存放数据而是下一级block的位置。


另外,一个文件系统中需要管理的iNode节点数目非常庞大,为了能够更加有效地管理,Linux系统将其进行分组block group,每一个都相当于一个小的文件系统:同时具有superblockiNodedatablock以及文件系统描述等信息。

2.2 data block

Data block是用来存放数据的,其有1k2k4k的区别。一个Data block只能存放一个文件的数据,因此较大的data block容易造成data block填充不满从而导致磁盘利用率不高。而较小的data block又难以管理,因此需要结合实际Linux主机的用途设置data block大小。

2.3 superblock

Suoperblock主要用来记录整个文件系统的iNodedatablock的使用情况。

2.4 Filesystem Description

文件系统描述说明,用来规定每组block group的划分情况。

2.5 blcok bitmap

区块bitmap,该结构主要用来表述哪些data block是已经被使用了的,哪些是可以后期继续使用的。

2.6 inode bitmap

类似block bitmap

3 目录树

与一般文件相比较,目录主要记录目录下面的文件名,而文件才实际存放数据内容。因此对于目录而言,分配至少一个datablock用来存放文件名。

3.1 目录树读取

每一个目录对应有自己的block,并且目录下的文件名存放到该block中,因此我们要读取目录下的文件时,需要先找到该目录的iNodeblock,然后再block中找到对应的文件名,然后找到对应文件名的iNode节点,然后找到数据datablock,最后从中将数据读取出来。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bible_reader

如果觉得文章有用,欢迎打赏支持

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

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

打赏作者

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

抵扣说明:

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

余额充值