为什么FAT32磁盘限制为4GB文件?

use*_*421 16 filesystems filesize fat32

我不是在寻找一种解决方法; 我想要一个解释.我通过Google找到的大多数链接都告诉我文件限制为4GB,但不是原因.

我知道维基百科的解释:http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

但这仍然没有详细说明原因.(SCANDISK与它有什么关系?)

也许那时我会理解是否有可能克服4GB的文件大小限制.

Fre*_*Foo 25

因为FAT32存储32位文件大小,并且您可以以32位存储的最大值是2 ^ 32-1~ = 4.29e9.2 ^ 32-1个字节= 4GB - 1个字节.

(事实上​​,这是在维基百科文章中解释的.)

  • FAT32是在具有32位编译器的32位操作系统的32位硬件上实现的,因此它是一个明显的选择,超过32位的任何东西都会花费宝贵的处理器周期,磁盘空间和编程时间.(在那些日子里,我们认为4GB对于HD来说非常大,更不用说单个*文件*了.) (16认同)

sup*_*cat 8

为了扩展该答案,FAT32源自FAT16和FAT12.当引入FAT12时,PC运行16位操作系统,并且没有大于10兆字节的驱动器.我认为没有人会期望PC上的任何人都需要一个比最大可用驱动器大四百倍的文件.此外,即使微软有远见为每个目录条目分配一个额外的字节来保存文件大小的32-39位(允许每个文件高达1TB),任何应用程序员都会使用它是值得怀疑的.没有语言为大于32位的整数数学提供方便的支持; 甚至32位数学也被认为是非常奇特的.

在我看来,一个更大的问题是为什么我没有意识到任何努力转向不基于顺序编号扇区的标准非FAT32存储接口.闪存驱动器和硬盘驱动器都可以从了解各种扇区写入的逻辑重要性中获益(在闪存的情况下,因为它可以消除在执行磨损管理时复制已删除扇区的需要;在硬盘驱动器的情况下,因为它允许写入以不违反数据一致性要求的方式重新排序).