|
因为在设计fat32的时候,是基于32位编译器的,所以想把一切都设置的尽可能是32位的,否则显然会有效率降低。fat32目录项中会记录文件名,大小,起始地址,目录项中用了一个存储单元(32位/4byte)来表示文件的大小,2^32可以用来表示2*2^10*2^10*2^10个存储单元,计算机最小的存储单元是byte,所以这2^32可以表示2^32byte即是4Gb。当然这个文件大小和簇地址也是有关系的,簇地址的多少代表的是整个文件的大小,比如我如果用fat来存储文件簇链的信息,第一位存储簇使用信息,后面代表下一个簇的地址,那么如果是4kb的簇,我用2^31 位表示地址,那么整个文件就会超过4gb,所以我就不能用31位来表示簇地址,要有这个上限,剩下的作为保留位。对于整个文件系统来说可以很大,比如硬盘可以是几个t的,如果用32位来存储簇地址,每个簇4kb,那么文件系统最大就是16tb。但是微软将文件系统的卷大小设置上限为32gb,因为他们觉得这个可以接受。
作者:森森森
来源:知乎 |
|