首页 > 范文大全 > 正文

FAT文件系统的概要分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇FAT文件系统的概要分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】微软公司的windows系列操作系统在我国民用和商业电脑操作系统占有很大的份额,其推出的fat文件系统和NTFS文件系统同样应用广泛。FAT的文件系统作为应用时间最长的windows文件系统,研究其结构和格式内容对理解和掌握计算机的文件系统有着积极的意义。本文概要分析了FAT文件系统。

【关键词】FAT12;FAT16;FAT32;BPB;FAT表区;目录;数据

引言

FAT(File Allocation Table)文件系统是由Microsoft Windows、Ms-Dos支持的文件系统。在计算机中应用很广泛。FAT文件系统有3种格式:FAT12、FAT16、FAT32。它们的分类是根据FAT表结构中FAT表项的所占BIT位来区分的。所占的BIT位越多,也就意味着它们支持的磁盘空间越多。在早期的计算机中,CPU处理速度、存储介质容量远不能和今日相比。FAT12文件系统足以应付。随着计算机技术的发展,FAT文件系统必然加以修改和扩充,FAT16和FAT32就是这样的出现的。

1 文件系统的区域划分

文件系统将磁盘划分为物理区和逻辑区。物理区涵盖逻辑区。逻辑区是物理区的子集。操作系统最初通过物理区的最初一个扇区(第一分区表),找到逻辑区,从而实现文件和数据的读写。第一分区表位于物理区的最初一个扇区,也就是常说的电脑磁盘的0柱面的0磁头1扇区。其他分区由主分区表依次推出。

FAT文件系统就位于每个分区上。FAT文件系统将其分为保留区、FAT表区、根目录区、目录和数据区。可以这么理解,根据逻辑磁盘数,磁盘有相应数目的FAT文件系统(保留区、FAT表区、根目录区、目录和数据区)与之对应。

2 FAT文件系统各个区的简介

2.1 保留区

BPB(BIOS Parameter Block)是一个重要数据结构。它位于本分区的第一个扇区。这个扇区的结构定义根据FAT文件的格式不同而有所不同。

FAT12/FAT16BPB结构伪码表示(中括号里的数字为所占用的字节数){跳转指令[4字节(以下略去字节二字)]:类型字符串[8];每扇区字节数[2];每簇扇区数[1];保留区中的保留扇区数[2];FAT表的份数[1];FAT12/16的根目录中目录项数[2];FAT12/16总扇区数的低两位[2];存储介质类型[1];FAT12/16 FAT表所占的扇区[2];每磁道扇区数[2];磁头数[2];FAT分区之前的隐藏扇区数[4];总扇区数[4];磁盘驱动器参数[1];保留[1];扩展引导标志[1];卷标号[4];磁盘卷标[11];文件类型字符串[8];}

FAT32BPB结构伪码表示:{跳转指令[4];类型字符串[8];每扇区字节数[2];每簇扇区数[1];保留区中的保留扇区数[2];FAT表的份数[1];为0 [2];为0 [2];存储介质类型[1];为0 [2];每磁道扇区数[2];磁头数[2];FAT分区之前的隐藏扇区数[4];总扇区数[4];FAT32表所占的扇区数[4];FAT32状态字[2];FAT32版本号[2];FAT32根目录所在的簇号[4];FAT32的FSINFO所占扇区[2];FAT32保留区引导记录备份扇区[2];保留[12];磁盘驱动器参数[1];保留[1];扩展引导标志[1];卷标号[4];磁盘卷标[11];文件类型字符串[8];}

2.2 FAT表区

该区记录了数据区中每一个簇的使用情况。计算机磁盘是以簇来管理的。不论文件的大小,都是以簇为单位来分配存储空间。每个簇的使用情况用一个表项来表示。FAT12的一个表项是一个12二进制位。FAT16是16二进制位。FAT32是32二进制位。

以FAT16为例 表项的含义有 簇可用(0x0000)、簇已用(0x0002~0xFFEF)、保留簇(0xFFF0~0xFFF6)、坏簇(0xFFF7)、文件的最后一簇(0xFFF8~0xFFFF)。需要注意的是第一个存放数据的簇是簇2。所以第一簇一定是被占用的。

2.3 根目录区

FAT目录是一个由32字节的线性结构。记录了文件名、创建时间、创建日期、最后访问日期、修改日期、修改时间、目录项的存放簇号、文件大小等。 根目录是一个特殊的目录,它没有时间和日期戳。

短目录项的结构伪码表示:{短文件名[11];文件属性[1];Windows NT保留字[1];文件创建的毫秒时间[1];文件创建时间[1];文件创建日期[2];最后访问时间[2];该目录的簇号高位字[2];最后写的时间[2];最后写的日期[2];该目录的簇号低位字[2];文件大小[2];}

这个结构中的目录名只有11个字节,是短文件名,对于超过11个字节的长文件名,需要增加多个长目录项结构,作为短目录项的补充。

长目录项的结构伪码表示:{长目录项的序号[1];长文件名子项的1-5字符[10];属性[1];状态字[1];校验字[1];长文件名子项的6-11字符[12];状态字[2];长文件名子项的12-13字符[4];}

2.4 目录和数据区

这个区存放文件的具体数据。数据是链式存储的,不足一个簇空间的仍然分配一个簇空间。一个文件就是一串簇链。文件名目录结构里记录了文件从那个簇开始,FAT区中记录了该簇是否是文件的最后一簇或者下一簇的簇号。这样,一个文件就串联起来,目录也可理解为数据。这样,顺着目录记录的簇号可找到下级目录或者文件的位置。

非根目录包含两个特殊“.” 和“..”目录,即便空目录也是包含这两个目录的。“.” 指向当前目录和“..”指向上级目录。它们分别位于目录的最初两个目录项的位置。

3 结语

本文对FAT文件系统进行了分析,简要叙述其整体结构。以上可以看到,对文件的操作,除了文件本身内容的操作外,同时存在对FAT表区的操作,实时性差。这也是FAT文件系统短板之一。目前,由于有windows系列的操作系统支持, FAT文件仍被广泛使用。

参考文献:

[1]张明亮,张宗杰.浅析FAT32 文件系统[J].计算机与数字工程,2005(1).

[2]李良.王绍国 FAT存储结构理论研究[J].电脑知识与技术,2009(21).

[3]陈代军.解析FAT文件系统对长文件名的支持[J]成都信息工程学院学报 2003(4).

作者简介:

江德龙(1978-)男,山东荣成人,本科,2000年毕业于武汉理工大学工业自动化专业,工程师,现从事电能采集系统开发工作。