一、前言
FAT技术是微软早中期推出的操作系统一直所采用的技术——利用文件分配表FAT来记录每个文件之中所有盘块之间的连接。
在MS-DOS中使用的12位FAT12,后来为16位的FAT16。
在windows98和95中升级为FAT32(32位)。
Windows NT/2000/XP以及以后的操作系统中进一步发展为新技术文件系统NTFS(New Technology File System)
一、卷
FAT中引入卷的概念,支持将一个物理磁盘分成四个逻辑磁盘,每个逻辑磁盘称为卷(也就是分区)。
每个卷都是一个能够被单独格式化和使用的逻辑单元,以便文件系统分配空间时使用。
每个卷都专门划出一个单独区域存放自己的目录和FAT表,以及自己的逻辑驱动器字母。
需要指出的是:在现代OS中。一个物理磁盘可以划分为多个卷,一个卷也可以由多个物理磁盘组成。
二、FAT的版本迭代
2.1 FAT12
2.1.1早期的FAT12
每个分区配备两个相同的文件分配表(FAT1、FAT2)为了安全起见,每个表项存放下一个盘块号,实际上是盘块之间链接的指针。通过它可以将一个文件的所有盘块链接起来。
2.2 以盘块为分配单位时允许的最大磁盘容量(重点,考研要考,别问我怎么知道的)
以FAT12为例,每个FAT表项为12位,因此,在FAT表中最多有4096(用尽表项的位数个表项),如果以盘块(扇区)512B为基本分配单位,则每个磁盘分区的容量为(2MB,4096*512B)。
再乘上能够支持的逻辑磁盘分区个数,如果我的电脑有C、D、E盘,则乘3.
2.3 以簇为单位
一个簇为多个扇区(假设为x个),则磁盘的容量可增加为(x)倍。
好处是:能够适应磁盘容量不断增大的情况,还可以减少FAT中表中的项个数,相同容量下个数和簇的大小成反比,这一点很容易理解不再赘述。
2.4 FAT32
FAT32是FAT系列文件系统的最后一个产品,表项长度固定位4个字节(32位,不再赘述为什么叫FAT32),每个簇固定为4KB,则FAT可寻址的最大磁盘空间为4KB * pow(2,32)= 4TB(10的40次方)。
FAT不足:文件分配表扩大(表项长度增加),运行速度会慢;不支持小于512MB的分区,对于小分区要使用FAT12\FAT16;其最大问题是兼容性,FAT32不能向下兼容。