资源描述:
《fat16文件系统格式说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、FAT16文件系统格式说明(什么是FAT文件系统)作者:佚名 发布日期:2006-03-2311:08 查看数:0 出自:互联网本文回答了什么是FAT16文件系统,并对它进行很好解析.在嵌入式开发中,一般会在flash中建立文件该文件系统.在很多DOS系统中也用该文件系统:硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。我们来分别介绍一下:(1)MBR区(主引导扇区)MBR(MainBootRecord),按其字面上的理解即为主引导记录区,位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中
2、,MBR只占用了其中的446个字节(偏移0--偏移1BDH),另外的64个字节(偏移1BEH--偏移1FDH)交给了DPT(DiskPartitionTable硬盘分区表)(见下表),最后两个字节"55,AA"(偏移1FEH-偏移1FFH)是分区的结束标志。这个整体构成了硬盘的主引导扇区。主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。MBR是由分区程序(如Fdisk.com)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变
3、的,从而实现多系统共存。偏移长度所表达的意义0字节分区状态:如0-->非活动分区 80-->活动分区1字节该分区起始头(HEAD)2字该分区起始扇区和起始柱面4字节该分区类型:如82-->LinuxNative分区 83-->LinuxSwap分区5字节该分区终止头(HEAD)6字该分区终止扇区和终止柱面8双字该分区起始绝对分区C双字该分区扇区数下面,我们以一个实例让大家更直观地来了解主引导记录:例:800101000BFEBFFC3F0000007E86BB00在这里我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导;"01010
4、0"表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);"FEBFFC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F000000"表示首扇区的相对扇区号为63;"7E86BB00"表示总扇区数为12289622。(2)DBR区DBR(DosBootRecord)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(BiosParamete
5、rBlock)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io.sys和Msdos.sys)。如果确定存在,就把其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。(3)FAT区在DBR之后的是我们比较熟悉的FAT(FileAllocationTable文件分配表)区。在解释文件分配表的概念之前,我们先来谈谈簇(cluster)的概念。文件占用磁盘空间时,基本单位不是字
6、节而是簇。簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……通过上文我们已经知道,同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。硬盘上的文件常常要进行创建、删除、增长、缩短等操作。这样操作做的越多,盘上的文件就可能被分得越零碎(每段至少是1簇)。但是,由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。不过,这种以簇为单位的存储法也是有其缺陷的。
7、这主要表现在对空间的利用上。每个文件的最后一簇都有可能有未被完全利用的空间(称为尾簇空间)。一般来说,当文件个数比较多时,平均每个文件要浪费半个簇的空间。好了,我们言归正传,为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为"未占用",