操作系统设计/案例研究/FAT
FAT,或文件分配表 文件系统,是由比尔·盖茨和马克·麦克唐纳在 1977 年发明的,并且是微软 Windows 9x 上使用的主要文件系统,直到 NT 发布,此时它被 NTFS 超越。它以相对简单的中心分配表命名,该分配表存储每个文件的位置以及设备中的哪些块可能已损坏。它也被用于各种其他操作系统多年,并且是软盘的标准文件系统。
FAT 文件系统的第一个版本是 FAT12,旨在处理软盘。由于它使用 12 位值来存储簇地址,因此它被限制为仅包含 4078 个簇。此外,由于它仅使用 16 位值来存储磁盘扇区数量,因此它被限制为 32 兆字节。最后,它是一个平面文件系统,因此不能包含目录。
FAT16 与 IBM PC AT 和 MS-DOS 3.0 同时发布,于 1984 年发布。FAT16 将簇值大小提高到 16 位,允许 65,517 个簇,因此分区更大。但是,FAT16 的另一个版本于 1987 年为康柏 DOS 3.31 发布,这就是今天被称为 FAT16 文件系统的版本。这将扇区计数提高到 32 位值,允许高达 32 KiB 的簇,并且还允许分区高达 2 GiB。最终,Windows NT 再次将簇大小增加到 64 KiB,尽管这破坏了向后兼容性。
在设计 Windows 95 的过程中,微软决定文件名应该能够处理高达 255 个 UTF-16 字符。因此,VFAT 是 FAT16 的扩展,用于解决 FAT16 遇到的传统“8.3”文件名限制。
FAT32 与 Windows 95 OSR2 一起引入,通过使用 32 位值来寻址簇来增加可以寻址的最大卷大小。这将最大卷大小增加到 2 TiB,尽管自 Windows 2000 以来,可以创建的最大卷已为 32 GiB。此外,FAT32 可以使用的最大文件大小略小于 4 GiB。
exFAT 是传统 FAT 文件系统的替代品,专门为闪存设备设计。它与 Windows Embedded CE 6.0 一起引入,并且在 Windows Vista SP1 发布时,对微软的桌面操作系统系列添加了支持。它具有许多性能增强功能,增加了簇大小(最初为 32 MB),支持高达 16 艾字节的文件,并删除了传统的 8.3 文件名系统。此外,尽管这尚未在 Windows Vista SP1 版本的文件系统驱动程序中实现,但它确实支持访问控制系统。
对 FAT 分配系统的一个抱怨是,它没有防碎片[1];也就是说,数据在磁盘上的随机分散。这损害了磁盘性能,并且纠正起来很费时。此外,微软已为 FAT 和 exFAT 文件系统的各个部分获得了专利,并且微软已宣布将以每台售出设备 0.25 美元的价格提供许可,每项授予的许可证最高支付 250,000 美元的版税。[2]
- ↑ Giel de Nijs,Ard Biesheuvel,Ad Denissen,Niek Lambert。文件系统碎片的影响。于 2008 年 6 月 14 日检索。
- ↑ 微软。知识产权许可 - FAT 文件系统。于 2008 年 6 月 14 日检索。