文章目录
EXT2文件系统
简介
参考资料:The Second Extended File System.html 提取码:02g7
参考博客1
1.什么是EXT2文件系统
EXT2全称:The Second Extended File System
先看下百度百科的解释:
EXT2第二代扩展文件系统(英语:second extended filesystem,缩写为 ext2),是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。其他的实现包括GNU Hurd,Mac OS X (第3方),Darwin (第3方),BSD。ext2为数个LINUX发行版的默认文件系统,如Debian、Red Hat Linux等
看了上面的描述问题又来了,EXT文件系统又是啥?自然是EXT2的爸爸咯!
全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过为了快速恢复文件系统,减少一致性检查的时间,增加了日志功能,所以Ext2被称为索引式文件系统,而Ext3/Ext4被称为日志式文件系统。
看来EXT文件系统也是子孙满堂了!
2.EXT家族和我们之前将的文件系统有什么关系?
很直接的一个关系,EXT文件系统中有inode的概念,同理也有block的概念,可以这么说,之前我们的讲解就是针对的简化版的EXT文件系统。
EXT系统的核心设计
数据存放区
1.inode-索引节点
之前已经详解过了,再强调一遍:记录文件的权限、属性和数据所在块block的号码,每个文件都有且仅有一个的inode,每个inode都有自己的编号,可以把inode简单理解成为文档索引。
Linux中,实际使用inode来识别文件,而不是文件名,类似于用户标识和昵称的设计。
2.inode table
存储文件系统的所有inode编号的表格
3.block数据区块
存储的文件内容,也叫做数据区块,每个block都有自己的编号,Ext2支持的单位block容量仅为1k, 2k, 4k。
中介数据(metadata)
这些元素的作用是为了维持文件系统状态,但新增、编辑、删除文档时,都需要变更这些状态信息。
1.superblock-超级块
记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量、大小以及文件系统的格式和相关信息。
整个文件系统的基本信息全部记录在superblock中,大小一般是1024Bytes,如果它死掉,需要要花费大量的时间补救。
2.block group区块群组
试想,如果我们的磁盘容量高达数百G,当我们格式后,inode和block会非常多,为了便于管理,Ext文件系统在格式化后,引入了区块群组的概念,每个区块群组都保持独立inode/block/superblock,拥有固定数量的block,这样就分成了一群一群最基础的子文件系统。
superblock对文件系统来说太重要了,但是文件系统的superblock只有一个,所以除了第一个block group含有superblock外,后续block group都可能会含有备份的superblock,做冗余,提高可靠性。
3.block bitmap
位示图,之前已经接触过,其标识了哪些block被使用了,哪些没有使用。
4.inode bitmap
同上
5.group descriptor
描述每个区段开始和结束的block号码,以及说明每个区段(inode bitmap, blockmap, inode table)分别介于哪些block号码之间。
Ext家族是Linux支持度最广、最完整的文件系统,当我们格式化磁盘后,就已经为我们规划好了所有的inode/block/metadate等数据,这样系统可以直接使用,不需要再进行动态的配置,这也是它最优秀的特点,不过这也是它最显著的缺点,磁盘容量越大,格式化越慢。
这里感觉没有太多考点,考点主要在上一章,本章就当成科普性质的叭,或者以后有时间分析下源码!