为什么操作系统有文件大小限制?

为什么操作系统有文件大小限制?

什么限制了文件的最大大小(具体取决于操作系统)?

这一页

替代文本

我不太明白这一点。如果你有存储空间,还有什么限制呢?你应该能够以你想要的方式存储尽可能多的数据(即使在一个文件中),除非你的存储空间用完了。

答案1

文件系统需要存储文件大小(以字节为单位,或以某些文件系统相关的单位(如扇区或块)为单位)。分配给大小的位数通常在设计文件系统时就已固定。

如果允许的位数太多,则每个文件占用的空间会更大,每个操作都会变慢。另一方面,如果允许的位数太少,那么总有一天人们会抱怨,因为他们试图存储一个 20EB 的文件,而你的垃圾文件系统不允许他们这样做。

在设计您提到的文件系统时,拥有足够大的磁盘以达到极限听起来就像科幻小说。(除了 FAT32,但推广它的公司打算将其作为每个人都采用其崭新的 NTFS 之前的中间措施,而且他们从来都不擅长预测不断增长的需求。)

另一件事是,直到上个世纪末,大多数消费者(甚至服务器)硬件只能适应 32 位值的快速计算,操作系统倾向于对大多数事物使用 32 位值,包括文件大小。32 位意味着 4GB,因此无论文件系统如何,操作系统都倾向于将文件限制为 4GB,通常甚至是 2GB,因为它们使用有符号整数。如今,任何严肃的桌面或服务器操作系统都使用 64 位来表示文件大小和偏移量,这将限制为 8EB。

答案2

磁盘上的数据结构通常是限制因素。研究一下这些操作系统如何格式化磁盘以及如何跟踪磁盘上的文件部分,你就会明白为什么它们有这些限制。FAT 文件系统在网上有相当好的文档(见维基百科,例如),您可以看到,它们对某些磁盘结构字段的整数大小的选择最终限制了您可以使用这种磁盘格式存储的文件的总体大小。

答案3

这个限制仅仅是因为,在编写文件系统的规范时,从未想到硬盘会那么大……或者在设计规范时存在其他技术限制。

我认为,如今,新归档系统的限制通常与预期用途有关。

... 对于任何技术团队来说,发布一个文件系统并声称它支持 500PB 硬盘都是非常困难的,因为从来没有对其进行过测试。

我的第一台笔记本电脑是 286 的,配有 40MB 的硬盘......我当时从来没有想过会需要(或达到极限)FAT!

我认为当前 NTFS 的限制是每个卷大约 16TB,每个文件 2TB...坦率地说,这在一段时间内是(并且应该)好的 - 任何能够(或需要)写入大于 2TB 的文件的设备通常都具有拆分文件和/或类似管理功能(例如 SQL 服务器)的能力。

答案4

知道每个文件的大小只是我们已经习惯的一种简化方法。其实不必如此,而且情况也并非总是如此。

旧式主机在读完磁带文件之前,永远不知道文件有多大(即使读完后,主机也可能没有记录文件大小)。即使是磁盘文件也经常是按顺序访问的,并且会随着文件扩展而增大。它们的大小(以字节为单位)没有记录,而且由于扇区大小可变和其他奇怪的特性,通常无法在不完整读取的情况下计算它们的大小。

设计一个不跟踪文件大小并允许其无限制增长的文件系统并不困难。

相关内容