GNU/Linux >> Linux の 問題 >  >> Linux

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

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

サイズに対してあまりにも多くのビットを許可すると、すべてのファイルが少し多くのスペースを取り、すべての操作が少し遅くなります。一方、サイズに対して許可するビット数が少なすぎると、ある日、20EB ファイルを保存しようとしていて、あなたのがらくたファイルシステムでは許可されないという理由で、人々が不満を言うでしょう。

あなたが言及したファイルシステムが設計された時点で、制限に達するのに十分な大きさのディスクを持つことは、サイエンスフィクションのように聞こえました。 (FAT32 を除きますが、それを推進した会社は、誰もが輝かしい新しい NTFS を採用する前の中間的な手段としてそれを意図していました。加えて、FAT32 は増大する要件を予測するのが得意ではありませんでした。)

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


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


Linux
  1. NGINXでファイルのアップロードサイズを制限する

  2. Linux ファイル システム:Ext2 vs Ext3 vs Ext4

  3. Linuxでファイルサイズを監視する

  1. shm_open を使用する理由

  2. Unix ファイル システムのファイル モードで「実行」ビットが必要なのはなぜですか?

  3. ~ (チルダ) という名前のファイルをホーム ディレクトリに置く

  1. ディレクトリサイズの計算の違いは?

  2. 次の方法でコアファイルの制限サイズが変更されないのはなぜですか?

  3. LsとHexdumpがファイルサイズについて意見が一致しないのはなぜですか?