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


10

是什么将文件限制为具有某些最大大小(取决于操作系统)?

从此页面

替代文字

我对此不太了解。如果您有存储空间,还有什么限制?除非存储空间用完,否则您应该能够按所需方式存储尽可能多的数据(即使在单个文件中)。

Answers:


19

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

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

在您提到的文件系统被设计时,它的磁盘足够大以至于达到极限,这听起来像是科幻小说。(除FAT32之外,但是推广它的公司将其作为中间措施,然后所有人都采用了崭新的NTFS,再加上他们从来都不擅长预测不断增长的需求。)

另一件事是,直到上世纪末,大多数消费者(甚至服务器)硬件只能适应32位值的快速计算,并且操作系统倾向于在大多数情况下使用32位值,包括文件大小。32位表示4GB,因此操作系统倾向于限制为4GB文件,而与文件系统无关,甚至2GB,因为它们使用带符号整数。如今,任何严重的台式机或服务器OS都使用64位作为文件大小和偏移量,其限制为8EB。


2
+1。澄清未启动的对象-EB以兆字节为单位,以百万兆字节为单位。

8

磁盘上的数据结构通常是限制。研究这些操作系统如何格式化其磁盘以及如何跟踪磁盘上文件的各个部分,您将了解为什么它们具有这些限制。FAT文件系统的在线记录非常好(例如,请参阅Wikipedia),并且您可以看到他们为某些磁盘结构字段选择的整数大小最终限制了可以使用此磁盘格式存储的文件的整体大小。


1

该限制仅是由于以下事实:编写文件系统的规范时,从来没有想到硬盘驱动器会比设计规范大得多……或其他技术限制。

我认为,如今,新申请系统中的限制通常会朝着预期的用途发展。

...任何技术团队都很难发布文件系统,并说它无需进行测试就可以支持500 Petabyte硬盘。

我的第一台笔记本电脑是一台286,带有40MB的硬盘驱动器……我无法想象当时需要(或达到极限)FAT!

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


1

简单的答案:您需要能够读取文件,因此需要能够对文件进行寻址。这种访问将通过具有限制的数据结构进行。您将陷于最低公分母中;物理(磁盘,SD卡等)限制,文件系统限制和操作系统限制。


您可以分多个阶段寻址文件,例如段,存储库,块,字节偏移量等
。– yyny

0

知道每个文件的大小只是我们已经习惯的一种简化。不一定要那样,也不总是这样。

以前的大型机从未读取过磁带文件的大小,直到它读到末尾为止(即使那样,它也可能无法跟踪其大小)。甚至磁盘文件也经常被顺序访问,并且随着它们的扩展而增长。它们的大小(以字节为单位)未记录,并且由于扇区大小可变和其他奇特特征,通常无法完全读取它们而无法计算它们的大小。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.