工程師親自講述:Windows為何只支持32GB的FAT32分區?
雖然FAT32文件系統格式已經相當普及,但Windows用戶多年來仍有一個巨大的疑問——為何默認只支持32GB的分區大小?隨著時間走入2021年,現已退休的微軟工程師Dave Plummer終於在YouTube自頻道(Dave’s Garage)的最新一期節目中給出了解答——因為當年就是他要求這樣限制的。
視頻截圖(來自:Dave’s Garage / YouTube)
考慮到FAT32理論支持16TB的分區卷大小,Windows自帶格式化工具的默認32GB限制似乎有些武斷。
當年為了突破這一限制,許多用戶寧可藉助第三方軟件、或者命令行工具來覆蓋預設值。
回顧歷史,Dave Plummer 在這期視頻中給予了解釋:
據悉,上世紀末那幾年,Plummer 參與了將Windows95 Shell 移植到Windows NT 工作,其中就包括重製Windows 格式化工具。
之所以提出這樣的要求,是因為NT 內核與Win95 系統有很大的不同,因而底層的API 也必須徹底替換並完全重寫。
於是在一個小時的UI 創意探討階段,開發團隊就想到了源於經典、但又不大相同的格式化對話框。
在談到這一“天才設計”時,Dave Plummer 表示當時自己想的是如何為Windows 用戶帶來良好的潛在支持。
如果默認的簇大小偏大,磁盤空間的浪費代價會有些大。比如在設置成32KB 的時候,即便是小到幾個字節的“Hello,World!”程序,也會佔用完整的32KB 存儲空間。
權衡利弊之後,Dave 最終決定將FAT32 文件系統格式的捲上限設置為32GB 。而當年市面上的大容量存儲卡,也普遍只有16MB 的版本。
Secret History of Windows Format _ by Original Microsoft Author Davepl(via)
雖然經常被拿來和比爾·蓋茨的“640KB 足夠用”經典語錄一起吐槽,但FAT32 的32GB 限制其實也只是Windows UI 上的“臨時限制”。
慶幸的是,儘管仍不完美,但相關方案還是足夠良好地維持了25 年的時間,直到NTFS 文件系統格式接替FAT32 成為主流。
有趣的是,Windows NT 4.0 其實並不原生支持FAT32(直到打上了Service Pack 補丁),且Wintel 聯盟也需要藉助第三方驅動程序,才能為FAT32 提供支持。