第9章 Ext文件系统族 (1)
创始人
2024-09-26 07:26:19
0

目录

9.1 简介

9.2 Ext2文件系统

9.2.1 物理结构


本专栏文章将有70篇左右,欢迎+关注,查看后续文章。

9.1 简介

文件系统分类:

        FAT:Windows默认使用。

        Ext2/Ext3:Linux使用,优先使用Ext3。

Ext2:和VFS类似结构,性能高。

Ext3:Ext2基础上扩展了日志功能,用于系统奔溃时恢复。

传统:一个分区被格式化为一个文件系统。

新技术:LVM,一个分区可格式化为多个文件系统,也可多个分区合并为一个文件系统。

LVM:Logical Volume Manager,即逻辑卷管理器。

        可跨越多个物理磁盘存储。

        可动态扩展或缩减存储空间。

文件系统面临挑战:

        1. 磁盘空间碎片化:文件移动和新增文件时产生碎片,从而影响访问速度。

        2. 存储空间利用率:大量管理数据。

9.2 Ext2文件系统

Ext2开始成为强大的文件系统。

Ext2专注于高性能,设计目标:

        1. 支持可变块长(根据预期文件大小决定)

        2. 支持快速符号链接(若链接目标的路径很短时,存储在inode自身中)

        3. 增加扩展能力。升级到Ext3等版本时,无需重新格式化或加载硬盘。

        4. 奔溃后可恢复。用fsck工具修复。

        5. 可将文件标记不可改变,即使root也不能,如重要配置文件。

Ext2代码实现大约1w行,紧凑。

拓展

fsck:即 file system check。

        作用:可修复损坏的超级块、恢复丢失文件、删除不正确文件等。

        可检查并修复多种文件系统:如 Ext3、Ext4、JFS 等。

9.2.1 物理结构

文件系统存储最小单元:块(block),所以文件占用大小是整数倍的块长度。

        数据传输单元也为块。

块大小在格式化时确定。如:

        mkfs.ext2    -b  4096    /dev/sdd

                作用:在/dev/sdd分区中创建文件系统,其中块大小为4096B。

1. 结构概观

块组:Block Group。

Ext2 将一个分区被划分成多个块组。

Ext2 中有多个块组:

启动块:

        不能写文件系统数据。而是存储启动装载程序。

其余块组:

        存储文件系统的数据。

其中每一个块组细分为如下:

实际上,超级块只在某些块组中备份。

一个块组内分为:

1. 超级块:

        描述文件系统的信息。如:

                1. inode 总数与空闲量。

                2. block 总数与空闲量。

                3. 时间戳。

                4. 文件系统magic值等。

        

        每个块组都可备份超级块,实际中为节省存储空间,只使用第一个块组的超级块。

        Ext2 采用稀疏超级块技术:

                只是部分块组存储超级块信息。

2. 组描述符:

        即GDT,描述当前块组的信息,包括:

                1. 数据位图地址,inode 位图地址。

                2. inode 表地址,数据块地址。

                3. 空闲 inode 数,空闲数据块数。

3. 数据块位图 与 inode 位图:

        用每个 bit 位描述对应数据块和 inode 是否已用 /空闲。

4. inode表:

        包含该组块所有的 inode。即文件、目录的元数据。

5. 数据块:

        存储文件,如:

                常规文件:文件数据。

                目录文件:存储目录下的文件名和子目录。

                符号链接:路径名短则保存在inode ,如果较长则用数据块来保存。

注意:设备文件、FIFO 和 socket 等文件没有数据块,文件大小为 0。设备文件的主设备号和次设备号保存在 inode。

2. 间接

Ext2 技巧:

        将磁盘按块编号,inode 指定数据块所在编号。

当文件太大时,需要很多数据块,inode结构无法包含。怎么办?

        解决方法:使用间接块,间接存储inode的各个数据块块号。

而普通小文件,直接在inode中存储数据块地址。

文件越大大,所需间接更多。如:

        一次间接,二次间接,三次间接等。

间接越多,访问对应数据块越慢。

3. 文件系统碎片

碎片影响分为:

        写文件:无法分配连续数据块。

        读文件:不能连续读取,机械硬盘磁头寻道时间增长,读变慢。

Ext2尽力防止磁盘碎片:

        尽量让同一文件的数据块在同一块组中。

相关内容

热门资讯

笔记本xp系统安装安卓系统,轻... 你有没有想过,在你的老式笔记本上安装一个全新的操作系统呢?想象那台陪伴你多年的老笔记本,突然焕发出青...
安卓操作系统吃内存,安卓操作系... 手机里的安卓操作系统是不是让你感觉内存越来越不够用了?别急,今天就来给你好好分析分析这个让人头疼的问...
王者号ios系统怎么转安卓系统... 你是不是也和我一样,对王者荣耀这款游戏爱得深沉呢?尤其是当你发现某个英雄在安卓系统上玩起来更加得心应...
战神遗迹安卓苹果系统,探索神秘... 亲爱的玩家们,你是否曾在游戏中追寻那些传说中的神秘遗迹?今天,我要带你走进一个充满传奇色彩的领域——...
几何a安卓系统升级,畅享智能出... 你有没有发现,你的几何A最近变得聪明多了?没错,就是那个陪伴你上下班的几何A,它悄悄地升级了安卓系统...
系统最清爽的安卓手机,探索系统... 你有没有想过,拥有一部系统最清爽的安卓手机,就像是拥有了夏日里的一阵清风,让人心情舒畅,操作顺畅?今...
安卓10系统严重有问题,揭秘严... 最近你的安卓手机是不是也遇到了一些让人头疼的问题呢?别急,让我来给你一探究竟,看看安卓10系统到底有...
安卓系统闽政通打不开,“闽政通... 最近是不是有不少小伙伴在使用安卓手机时遇到了一个让人头疼的问题——闽政通打不开?别急,今天就来给你详...
安卓系统有指纹忘了图案,解锁攻... 手机解锁方式千千万,指纹解锁和图案解锁可谓是其中的佼佼者。但有时候,指纹解锁用得太多,导致忘记了图案...
QQ飞车安卓系统怎么换苹果系统... 你是不是也和我一样,对QQ飞车这款游戏爱得深沉呢?不过,最近我发现了一个超级有趣的问题:怎么把QQ飞...
安卓可冻结的系统文件,那些不可... 你知道吗?在安卓的世界里,有一些神秘的文件,它们就像隐藏在深宫中的宝贝,让人既好奇又敬畏。这些文件,...
安卓系统安装需要备份吗,关键指... 你最近是不是在准备给安卓手机升级系统或者安装新应用呢?别急,别急,在这之前,有个小细节你得注意一下—...
高仿ios的安卓系统,带你领略... 你有没有想过,为什么安卓手机那么受欢迎,却还是有人对iOS系统念念不忘呢?其实,现在市面上就有一种神...
安卓系统全能播放器,尽享视听盛... 你有没有发现,手机里总是装满了各种音乐、电影、电视剧,但是找到一个能让你一次性搞定所有播放需求的软件...
在哪里安装安卓系统好,安卓系统... 你有没有想过,为什么安卓系统这么受欢迎呢?它那强大的兼容性和丰富的应用生态,简直让人爱不释手。但是,...
如何自己提升安卓系统,自我提升... 你有没有发现,随着智能手机的普及,安卓系统已经成为了我们生活中不可或缺的一部分呢?但是,你是否想过,...
安卓子系统内存不足,应对策略与... 手机突然卡顿,是不是安卓子系统内存不足在作怪?别急,让我带你一探究竟,揭开这个问题的神秘面纱!一、安...
一鸣安卓系统如何安装,轻松上手... 你有没有想过,给你的安卓手机换换口味?别看它现在运行得风生水起,偶尔来点新鲜玩意儿,岂不是更带劲?今...
安卓操作系统的归属,源自谷歌的... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、处理工作的安卓操作系统,它究竟是谁的孩子呢?今天,就让我...
安卓启动系统设置界面,揭秘安卓... 你有没有发现,每次打开安卓手机,那启动系统设置界面就像是个神秘的宝箱,里面藏着无数的小秘密?今天,就...