众所周知,在 Windows 上,只有低于 32GB 容量的分区才能选择格式化为 FAT32。但这一限制到底是出于何种原因呢?近日,已退休的前微软工程师 Dave Plummer 则在自己的 YouTube 频道回忆了其当初做出这一决定的心路历程。
FAT32 指的是文件分配表是采用 32 位二进制数记录管理的磁盘文件管理方式,因 FAT 类文件系统的核心是文件分配表,命名由此得来。FAT32 从 FAT 和 FAT16 发展而来,有着优良地稳定性和兼容性,能充分兼容 Win 9X 及以前版本、维护方便。但缺点是安全性差,且最大只能支持 32GB 分区,单个文件也只能支持最大 4GB。
考虑到实际上 FAT32 文件系统可以管理高达 16TB 的容量,Plummer 当初做出 32GB 这一限制似乎有点武断。据 Plummer 回忆称,他于上世纪末期参与了将 Windows 95 shell 移植到 Windows NT 的工作。其中的一部分工作内容就是对 Windows Format 的重做;对此,Plummer 表示“由于 Win95 系统有着明显的不同,所以它必须进行替换并完全重写”。
而在这一过程中,他曾认真过思考究竟什么样的群集大小才能为将来的 Windows 用户提供潜在的支持。然后发现,庞大的群集数量会带来同样庞大的容量,但也会造成巨大的空间占用。譬如:选择 32kb 的群集大小,即使是最小的 Hello, World 程序所需的几个字节,也会占用 32kb 甚至更多的磁盘空间 。
彼时,Plummer 能拿到手的最大的测试用存储卡的容量为 16MB。因此他想的是,如果将 16MB 乘以 1000,然后再增大一倍以备不时之需,应该是足够 NT4.0 操作系统整个生命周期使用了。
所以,他选择了 32GB 作为 FAT32 格式化的极限容量。但 Plummer 也表示,他当时打算的是将这作为一个临时化的决策;孰不料却成为了永久性解决方案,一直影响到了 25 年后的今天。“这是我犯下的,一个不能被原谅的致命错误......归根结底,这是一个简单的缺乏远见的问题,再加上临时解决办法变成永久性解决方案的老问题。”
不过好在如今 NTFS 和 exFAT 格式的普及已经破除了 FAT32 所带来的限制。
本文转自OSCHINA
本文标题:工程师:FAT32 格式化 32G 限制是个不能被原谅的致命错误
本文地址:https://www.oschina.net/news/125659/windows-format-fat32