Answers:
文件系统需要存储文件大小(以字节为单位,或者以某些文件系统相关的单位(例如扇区或块)存储)。设计文件系统时,分配给该大小的位数通常固定不变。
如果允许的位数过多,则会使每个文件占用更多空间,并使每个操作都变慢。另一方面,如果您允许的位数太少,那么有一天人们会抱怨,因为他们试图存储20EB文件,而您的废话文件系统不允许他们这样做。
在您提到的文件系统被设计时,它的磁盘足够大以至于达到极限,这听起来像是科幻小说。(除FAT32之外,但是推广它的公司将其作为中间措施,然后所有人都采用了崭新的NTFS,再加上他们从来都不擅长预测不断增长的需求。)
另一件事是,直到上世纪末,大多数消费者(甚至服务器)硬件只能适应32位值的快速计算,并且操作系统倾向于在大多数情况下使用32位值,包括文件大小。32位表示4GB,因此操作系统倾向于限制为4GB文件,而与文件系统无关,甚至2GB,因为它们使用带符号整数。如今,任何严重的台式机或服务器OS都使用64位作为文件大小和偏移量,其限制为8EB。
该限制仅是由于以下事实:编写文件系统的规范时,从来没有想到硬盘驱动器会比设计规范大得多……或其他技术限制。
我认为,如今,新申请系统中的限制通常会朝着预期的用途发展。
...任何技术团队都很难发布文件系统,并说它无需进行测试就可以支持500 Petabyte硬盘。
我的第一台笔记本电脑是一台286,带有40MB的硬盘驱动器……我无法想象当时需要(或达到极限)FAT!
我认为当前NTFS的限制是每个卷大约16TB,每个文件大约2TB ...坦率地说,这(并且应该)在一段时间内是有用的-任何能够(或需要)写入大于2TB的文件的能力通常都具有分割文件和/或类似的管理功能(例如SQL Server)。
知道每个文件的大小只是我们已经习惯的一种简化。不一定要那样,也不总是这样。
以前的大型机从未读取过磁带文件的大小,直到它读到末尾为止(即使那样,它也可能无法跟踪其大小)。甚至磁盘文件也经常被顺序访问,并且随着它们的扩展而增长。它们的大小(以字节为单位)未记录,并且由于扇区大小可变和其他奇特特征,通常无法完全读取它们而无法计算它们的大小。
设计一个不跟踪文件大小并允许它们无限增长的文件系统并不难。