fat文件系统(DOS操作系统中的文件系统FAT12)
前面我们更多的集中在Linux系统下文件系统的介绍,是时候介绍一下其它文件系统了。今天我们介绍一下Windows操作系统下的文件系统,也就是FAT文件系统。严格的来说其实是DOS的文件系统。今天我们介绍一下FAT最古老的版本,FAT12文件系统的内容。
在学习文件系统更多细节之前我们有必要了解一下它的整体磁盘布局,也就是数据是如何放置的。这样便于我们对该文件系统进行更加深入的理解。
如上图所示,FAT文件系统分为5个主要区域,分别是引导程序区,FAT1,FAT2,目录文件项和文件数据。其中FAT1和FAT2也就是文件分配表(File Allocate Table),它是FAT文件系统的核心,用于描述磁盘空间的使用情况。需要注意的是,这里的数值只是一个示例,并非固定不变,通常需要根据引导扇区的数据进行计算得到。
引导扇区是Windows操作系统下特有的,包含操作系统引导的作用。对于文件系统而言,这个扇区的作用其实与Linux文件系统的超级块很像,其中包含着对文件系统整体的描述信息。如下图所示是该扇区的前部分内容,其中偏移22的地方描述了FAT表的大小。
可以看出,其实FAT文件系统的磁盘布局是动态的。在图一中描述的偏移信息并非一成不变的,而是在格式化的时候确定的,而且该信息可以在启动扇区中找到。
这里相当于FAT文件系统的根目录。所有的文件或者目录都要以这里为起始位置。这里每个文件或者目录都是通过下面这个结构图描述的。这里面包含文件名称,扩展名,文件属性和文件的数据位置等内容。
上述数据结构与Linux中的inode类似,可以看出每一项占用32字节的空间。这样磁盘布局中的目录文件项空间就可以细化成下图这样。其中每一个方块代表上图中的一个数据结构。这个数据结构里面比较重要的内容是文件名和文件数据的首地址。
有了文件数据的首地址,我们就知道文件的数据存储在什么地方了。那么其它数据如何找到呢?这个时候就用到文件分配表了。
如果我们将FAT表放大,对于FAT12来说,它是由很多12位的数字构成。这些12位的数字称为一个FAT表项,每一项与文件数据区的一个簇相对应。这个表项即表示了对应的数据簇是否被使用,又表示了所在文件的下一个数据簇的位置,具体差异由其中的数值表示。
为了便于理解FAT的作用,我们举一个具体的例子,具体如下图所示。假设有个文件file1.txt,我们根据目录文件项知道其其实的簇地址是0x05,这个是该文件第一个簇的位置,然后根据簇地址就能找到FAT中对应的表项。根据表项内容,我们可以知道下一个簇的位置,以此类推,我们可以找到该文件的所有数据。
如果我们简化一下这个结构,其实整个关系就是一个单向链表的关系,我们可以将FAT表项理解为next指针,簇则是data数据。只不过FAT表项和簇是通过地址偏移建立了两者之间的关系。上图可以简化为下图所示的样子。
我们可以通过实例来分析一下FAT的数据布局情况。假设我们采用Ubuntu18.04平台。此时我们可以通过dd命令生成一个1MB的文件。然后通过loop设备将文件模拟成一个块设备。之后就可以通过mkfs.fat进行格式化了。下面是格式化完后创建的文件。
完成上述操作后,我们其实就相当于在文件中创建了一个FAT文件系统了。然后我们可以通过vim打开这个文件分析其中的数据。比如下面是引导扇区的内容,我们可以将其中的内容与前面表格中相关数据对应来学习,这样我们就可以有更深入的理解。
相关内容
-
华硕电脑系统win10|华硕电脑系统win10系统
华硕电脑系统win10|华硕电脑系统win10系统,,华硕电脑系统win10...
-
学习写字楼新选择6000元主流配置
学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办...
-
金蝶担保机构业务管理系统
金蝶担保机构业务管理系统,,1.金蝶财务软件怎么使用?软件使用...
-
联想台式机怎么恢复出厂系统
联想台式机怎么恢复出厂系统,所示,如下图,如所示:首先关闭计算...
-
电脑系统城|电脑系统下载 win7
电脑系统城|电脑系统下载 win7,电脑系统城,不少朋友在使用电脑...
-
主角电脑系统的小说|主角大脑里面电脑系统的小
主角电脑系统的小说|主角大脑里面电脑系统的小说,,1. 主角大脑...
-
电脑系统文字怎么修改|电脑系统文字怎么修改颜
电脑系统文字怎么修改|电脑系统文字怎么修改颜色,,1. 电脑系统...
-
金蝶系统的其他出入库核算|金蝶精斗云的云进销
金蝶系统的其他出入库核算|金蝶精斗云的云进销存软件有其他...
-
苹果系统的电脑好用吗|苹果电脑系统好用不
苹果系统的电脑好用吗|苹果电脑系统好用不,,苹果电脑系统好用...
-
怎样升级电脑cpu|怎样升级电脑系统版本
怎样升级电脑cpu|怎样升级电脑系统版本,,怎样升级电脑系统版本...
-
装电脑系统要多少钱|装个电脑系统要多少钱
装电脑系统要多少钱|装个电脑系统要多少钱,,装个电脑系统要多...
-
金蝶报表系统怎么取消隐藏|表格怎么取消隐藏
金蝶报表系统怎么取消隐藏|表格怎么取消隐藏,,1.表格怎么取消...
-
电脑系统升级到win10|电脑系统升级到win10之后
电脑系统升级到win10|电脑系统升级到win10之后无线网卡无法...
-
2021电脑系统在哪下载|2021年电脑最新系统
2021电脑系统在哪下载|2021年电脑最新系统,,1. 2021年电脑最新...
-
影子系统是什么影子系统安装卸载win10影子系统
影子系统是什么影子系统安装卸载win10影子系统崩溃修复教程,...