2011-01-11 50 views

回答

5

爲了擴展這個問題的答案,FAT32從FAT16和FAT12的。當引入FAT12時,PC運行了16位操作系統,並且沒有大於10兆的驅動器。我不認爲任何人都希望PC上的任何人都需要一個文件大小是最大可用驅動器大小的四百倍。此外,即使微軟有先見之明地爲每個目錄條目分配一個額外的字節來保存文件大小的位32-39(允許每個文件高達1TB),但任何應用程序員都會使用它。沒有語言爲大於32位的整數運算提供方便的支持;即使是32位的數學也被認爲是相當花哨的。

我腦海中一個更大的問題是爲什麼我沒有意識到任何努力朝向非基於順序編號扇區的標準非FAT32存儲接口邁進。知道各種扇區寫入的邏輯意義(對於閃存來說,閃存驅動器和硬盤驅動器都可以從中受益),因爲它可以消除在執行磨損管理時複製已刪除扇區的需要;在硬盤驅動器的情況下,寫入以不會違反數據一致性要求的方式重新排序)。

21

由於FAT32存儲32位文件大小,並且您可以存儲在32位中的最大值爲2^32-1〜= 4.29e9。 2^32-1字節= 4GB - 1個字節。

(這一點,事實上,維基百科的文章中解釋)。

+0

是的,我知道,但*爲什麼*它這樣做?通過一些隨機約定?設計文件系統的人當然知道這是限制,爲什麼要解決這個限制?是否因爲當時有硬件可用? – user5243421 2011-01-11 20:53:21

0

我有同樣的疑問,終於認識到每個文件都有自己的元數據,其中包含4個字節的文件大小。所以,最大文件大小是4G - 1個字節。

相關問題