web-dev-qa-db-ja.com

オペレーティングシステムにファイルサイズの制限があるのはなぜですか?

オペレーティングシステムに応じて、ファイルの最大サイズを制限するものは何ですか?

から このページ

alt text

私はこれを正確に理解していません。ストレージスペースがある場合、他に何が制限になる可能性がありますか?ストレージスペースが不足しない限り、(単一のファイルでも)必要なだけのデータを保存できるはずです。

10
Moeb

ファイルシステムは、ファイルサイズを(バイト単位で、またはセクターやブロックなどのファイルシステムに依存する単位で)格納する必要があります。サイズに割り当てられるビット数は、通常、ファイルシステムの設計時に固定されます。

サイズに対して許可するビットが多すぎると、すべてのファイルに少し余裕ができ、すべての操作が少し遅くなります。一方、サイズに対して許可するビットが少なすぎると、ある日、20EBファイルを保存しようとしていて、がらくたファイルシステムでは許可されないため、不満が出るでしょう。

あなたが言及したファイルシステムが設計されたとき、限界に達するのに十分な大きさのディスクを持っていることは空想科学小説のように聞こえました。 (FAT32を除きますが、それを推進した会社は、誰もが光沢のある新しいNTFSを採用する前の中間手段としてそれを意図していました。さらに、増大する要件を予測することは決して得意ではありませんでした。)

もう1つのことは、前世紀の終わりまで、ほとんどのコンシューマー(およびサーバー)ハードウェアは32ビット値での高速計算にしか対応できず、オペレーティングシステムはファイルサイズを含むほとんどのものに32ビット値を使用する傾向がありました。 32ビットは4GBを意味するため、オペレーティングシステムはファイルシステムに関係なく4GBファイルに制限される傾向があり、符号付き整数を使用しているため、多くの場合2GBに制限されます。最近の本格的なデスクトップまたはサーバーOSは、ファイルサイズとオフセットに64ビットを使用しているため、制限は8EBになります。

通常、ディスク上のデータ構造が限界です。これらのオペレーティングシステムがディスクをフォーマットする方法と、ディスク上のファイルの部分を追跡する方法を調べてください。これらの制限がある理由がわかります。 FATファイルシステムはオンラインでかなりよく文書化されており(たとえば、 Wikipedia を参照)、一部のディスク構造フィールドで整数サイズを選択すると、ファイルの全体的なサイズが制限されることがわかります。このディスクフォーマットで保存できます。

8
Michael Kohne

制限は、ファイリングシステムの仕様が作成されたときに、ハードドライブがこれほど大きくなるとは考えられなかったという事実、または仕様を設計する際のその他の技術的な制限によるものです。

今日、新しいファイリングシステムの制限は、通常、予想される用途に向かっていると思います。

...技術チームがファイリングシステムをリリースし、テストを行わずに500 Petabyteハードドライブをサポートすると言うのは難しいでしょう。

私の最初のラップトップは40MBのハードドライブを搭載した286でした...当時、FATが必要になる(または限界に達する)とは想像もしていませんでした。

現在のNTFSの制限はボリュームあたり約16TB、ファイルあたり2TBだと思います...率直に言って、それはしばらくの間は良いことです(そしてそうあるべきです)-2TBを超えるファイルを書き込むことができる(または必要とする)ものは通常、分割ファイルおよび/または同様の管理機能(SQLサーバーなど)。

1
William Hilsum

簡単な答え:ファイルを読み取ることができる必要があるため、ファイルをアドレス指定できる必要があります。このアクセスは、制限のあるデータ構造を介して行われます。の最小公分母で立ち往生するでしょう。物理(ディスク、SDカードなど)の制限、ファイルシステムの制限、およびOSの制限。

1
Rich Homolka

すべてのファイルのサイズを知ることは、私たちが慣れ親しんできた単純化にすぎません。そのようにする必要はなく、常にそうであるとは限りませんでした。

古いメインフレームは、テープファイルが最後まで読み取られるまで、テープファイルの大きさを新しくすることはありません(それでも、サイズを追跡していなかった可能性があります)。ディスクファイルでさえ、頻繁に順番にアクセスされ、拡張されるにつれて大きくなります。それらのサイズ(バイト単位)は記録されず、一般に、可変セクターサイズやその他の奇妙な機能のために、それらを完全に読み取ることなく計算することはできませんでした。

ファイルサイズを追跡せず、無制限に拡張できるファイルシステムを設計することは難しくありません。

0
Adrian Pronk