FAT32[1]
微软在1980年推出了文件系统FAT,并且多年来一直在更新它。 随着磁盘存储量的增加,改进FAT系统的需求导致了FAT-12,FAT-16和FAT-32。 尽管微软为现代计算系统引入了NTFS,但大多数存储卡,通用串行总线(USB)驱动器和其他可移动介质仍使用FAT-32,因为NTFS更复杂并占用大量磁盘空间。
1.文件分配
FAT-32中的文件分配是一个两步过程。首先,将文件分配给目录/文件夹。如果分配的目录/文件夹是驱动器的根目录,则文件名存储在根目录条目中,否则,必须解析根目录条目以查找最终目录路径中的目录该文件已分配给。除文件名外,文件条目还包含文件的起始簇号。起始簇号表示文件内容开始的簇。实际上,附加信息(包括访问,创建和修改时间戳以及长文件名)也存储在目录条目中。要检索文件,文件系统会查看起始集群,然后转到文件分配表中的起始集群索引。 FAT可以被认为是指向文件的下一个簇的簇号阵列。因此,在检索文件时,文件系统将转到FAT中的起始集群索引,并获取该文件的下一个集群编号。该集群又可以指向另一个集群。重复该过程,直到簇具有指示文件结束(EOF)的十六进制值“FF”。然后,文件系统可以通过读取磁盘上的实际群集来检索文件。
一个例子是创建一个名为“recovery.txt”的文件,它需要五个集群来存储其内容。 文件系统可能会发现群集号300是文件应该开始存储的位置。 如图1所示,“recovery.txt”的根条目表示文件的起始簇显示为簇号300.文件系统将剩余的簇存储在簇号301,302,305和306中并使 对FAT的适当更改。 注意,簇303和304用于存储另一个文件“hello.txt”。