大话EXT4文件系统之三:超市货架的秘密

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

 

上回说到,蛋蛋来到饿想她超市第四家分店EXT4,发现每个货架Block Group上都有一份超市概览Super block的副本供顾客查阅。凭着代码农业扎实的基础,蛋蛋终于搞清楚了货架的秘密。

 

首先我们还是得介绍一下Linux市民和我们当代人类的有一个不同。看过三体的人都知道,三体人没有语言,而是直接看到对方的思想,不能掩藏自己的想法。Linux市民没有嘴巴,他们只能通过数据来交流,这就是他们以数据为食物的原因:说多了,数据用没了,饿了!

 

货架说明Block Group Descriptor

 

蛋蛋看完了超市概览,就把它放回第一个大盒子block里。然后,打开第二个大盒子,从这里开始的几个大盒子是货架说明,Block Group Descriptor。

 

 

如下图,这里面写了这个货架上标签分布表inode bitmap、标签表inode table在哪里,货物分布表block bitmap在哪里,货架上还有多少空盒子free block count,空标签等等,最后还有一些特殊的字符checksum来帮助检验有些重要数据是不是写错了。

 

标签和数据分布表bitmap

 

蛋蛋合起盒子,按照货架说明的指示,打开后面的几个盒子,分别找到了标签分布表inode bitmap和盒子分布表block bitmap。前者表示标签表inode table哪些条目是占用的,后者表示哪些盒子里面有数据。他们的内容都是用一个bit是0或者1表示空或者非空。Bit是Linux市民食物字节的基本元素,8个bit组成了一个字节。

 

标签表inode table

 

蛋蛋看完两个分布表,就知道货架上的一个基本情况了,于是关起盒子,按照货架说明的指示,打开了有一个盒子,上面写着:标签表。我们要透漏Linux市的第三个特征了,他们的货物叫做文件,每个文件在超市里面都有一个标签来说明和索引,方便查找和管理,叫做inode。

 

标签表里面有货架上所有货物的标签,每个标签的主要内容如下表。包括了:

  • 货物的权限,是否是VIP专享,是不是私人定制的,是不是共享的。
  • 是不是某些特殊的货物,他们并不是拿来吃的,而是一些设备,能够使用。比如char设备,block设备,都是一些机器,char设备能够执行用户的命令,block设备可以批量执行用户的一串命令,存数据,查看数据。
  • 货物的大小,用了多少个字节,用了多少个盒子block。
  • 货物的最近查看时间,维修时间,移走时间等。

 

 

引用

 

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout

 

想要每天看一条SSD文章吗?扫一扫,微信关注我们!或者微信搜索公众号ssdfans关注。

 

11

分类目录 存储, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。