簡単な質問ですが、なぜ今日でも競合して使用されているファイルシステムが非常に多いのですか?(ntfs、fat32、ext3(ffs)など)
ファイルシステムの設計者は、各タイプのシステムの最良の側面に同意し、「最良の」ファイルシステムを実装できるようです。これらのファイルシステムはしばらく前から存在しており、どのファイルシステムが他のファイルシステムよりも優れた品質を持っているかは少なくともある程度明らかであるはずです。
簡単な質問ですが、なぜ今日でも競合して使用されているファイルシステムが非常に多いのですか?(ntfs、fat32、ext3(ffs)など)
ファイルシステムの設計者は、各タイプのシステムの最良の側面に同意し、「最良の」ファイルシステムを実装できるようです。これらのファイルシステムはしばらく前から存在しており、どのファイルシステムが他のファイルシステムよりも優れた品質を持っているかは少なくともある程度明らかであるはずです。
回答:
引用した例を使用して、ここで詳細を少し考えてみましょう。
ntfs-Microsoftが所有しています。マイクロソフト以外の人はこれを使用できないため、異なるものを使用/作成する必要があります。さて、あなたがマイクロソフトなら、次の箇条書きの問題のために、これをFATよりも使いたいと思うでしょう。
fat32-十分に近代的ではありません。最大ファイルサイズは4GBです。ディレクトリエントリのルックアップはO(n)です。割り当てテーブルは、割り当てビットマップなどのより効率的なものではなく、リンクされたリストです(連続した空き領域を見つけるのは本当に迅速です)。権限をサポートしていません。ハードリンクまたはシンボリックリンクはサポートしていません。ジャーナリングはサポートしていません。
ext3-これは主にジャーナリングをサポートするためのext2の拡張機能です。
そのため、いくつかの理由があるようです。
以前のファイルシステムには何かが欠けています。FATの場合、(1)機能と(2)パフォーマンスの両方の点で多くが欠けています。ext2の場合、ジャーナリングされた更新がなかったため、クラッシュからの回復に時間がかかりました。
既存のファイルシステムはおそらくそうでしょうが、それはあなたのものではありません。(たとえば、Microsoftでない場合はNTFS)。この場合、あまり選択肢はありませんが、自分で選択する必要があります。
簡単な答え:1つのサイズがすべてに適合するわけではありません。
トレードオフがあります。たとえば、ジャーナリングされたFSが必要な場合、費用(効率、複雑さなど)を支払いますが、そこから何かを得ます。ジャーナル化されたFSの必要性を感じない人もいれば、支払いをしたくない人もいます。FSの他の「機能」と同じです。
「最高」とは何かについて非常に多くの意見があるため、「最高」が存在することはありません。この決定は、ユーザーのニーズと制限に固有のものです。デザインは常に、制約内に収まる能力に基づいています。
基本的な携帯電話には、数百の連絡先、テキストメッセージの履歴、およびいくつかの小さなアプリを保存する必要があります。そのファイルシステムは、RAID構成のマルチテラバイトドライブ上の階層ディレクトリ構造をサポートする必要がありますか?そのようなファイルシステムを実行するのに十分なRAMがデバイスにありますか?ファイルシステムには複雑なACLが必要ですか?おそらくそうではありません-これらすべての質問に対して-なので、シンプルでリソースを浪費するファイルシステムで十分でしょう。
企業はまた、競争上の優位性を維持するためにさまざまな製品を開発します。たとえば、AppleはHFS +ファイルシステムが最近変更されたファイルを追跡する機能を売り込んでおり、バックアップが迅速になります。一方、フロッピーディスクファイルシステム(FAT)のドライバーは、わずか数KBのメモリに収まります。
最適化する対象に大きく依存します。
少しFATを考えてみてください:長いファイル名のサポートは(見栄えを良くするために)頭がおかしく、ディレクトリ内のファイルの検索は線形であるため、ディレクトリに多くのファイルが含まれている場合は非常に遅くなります。同時に、生の書き込み速度に対するメタデータが最小限に抑えられており、全体的に非常に単純であるため、実装するコードは非常に小さくなります。
ext2やext3のようなものは、FATにはない多くの機能を追加します。ファイルの検索も非常に高速です。同時に、生の書き込み速度はおそらく少し遅くなり、ファイルシステムを実装するコードは間違いなく非常に大きくなります。
簡単な質問ですが、なぜ今日でも競合して使用されているファイルシステムが非常に多いのですか?(ntfs、fat32、ext3(ffs)など)
ファイルシステムの設計者は、各タイプのシステムの最良の側面に同意し、「最良の」ファイルシステムを実装できるようです。
トレードオフはなく、ファイルシステムの設計者は、特許の心配のない「最良の」ファイルシステムを実装し、デュアルライセンスBSD / GPLとしてリリースしたため、MSとDebianが同様に受け入れられるとしましょう。他のファイルシステムは一晩で消えると思いますか?
誰もが10年間新しいハードドライブでFAT32を使用したとは思いませんが、USBドライブ、SDカードなどをフォーマットするための事実上の標準として引き続き存在します。Arduino愛好家はそれを使用するための安定したライブラリを持っています。彼らは皆、変化するために大きなインセンティブを必要としています。
そして、古いOS(特に、ユーザーが新しいファイルシステムドライバーをインストールしたくないWindows)との後方互換性の問題があります。
答えを計算する際によくあることは、(a)過去の状況と後方互換性を維持する必要があるためと、(b)一部のメソッドが他のタスクよりも一部のタスクに適しているためです。
(a)「ウィンチェスタードライブ」-私は彼らがそう呼ばれていることを覚えているのに十分なほど古いことを覚えておく必要があります-(世界中で「ハードドライブ」と呼ばれているもの)電子コンピューティングの時間であり、それでもコストの理由からほとんどのユーザーがアクセスできませんでした。FATファイルシステムは、かなり効率的でオーバーヘッドが少ないため、フロッピーディスクや元の小型ハードドライブでもうまく機能しました。いったん使用が開始され、実装が簡単であるためにその使用が広く普及すると、メーカーは古いデータが突然無効になったことをユーザーに伝えることができませんでした。
同様に、Linuxユーザーにとっては、安定したNTFSドライバーの登場には長い時間がかかっていたため、デバイスをFATとしてフォーマットすることで、複数のシステム間で読み書きできるようになりました。
(b)で-何十億ものテキストベースのデータベースレコードを保存するシステムと、DVD長のメディアファイルを保存するシステムの違いを考えてください。データベースの場合、各レコードは非常に小さい可能性があります-おそらくわずか30または40バイトで、ディスクの「セグメント」全体を割り当てたファイルシステム(確かに定義したい場合)はディスクスペースを浪費する可能性があります。DVDではそうではありません-大きな「セグメント」(明らかに、理由内)は、スペースの観点から非常に効率的です。
そのため、さまざまなファイルシステムがさまざまな目的のために設計されています。
誰にとっても完璧なファイルシステムが存在できない理由のもう1つの例は、HDDとSSDの読み取り/書き込みアクセス特性が大きく異なることです。SSDに最適化されたファイルシステムは、おそらくクレイジーのようにファイルを断片化することで最適に機能しますが、断片化するたびにSSD自体のページサイズになります。これはHDDでひどく動作します。HDDに最適化されたファイルシステムは、可能な限り断片化されていないファイルを保持しようとし、プラッタの高速回転外側部分の「ホット」エリアに頻繁に使用されるファイルを配置します。これらの特性はSSDの読み取り速度にはまったく役立ちません。また、書き込み方法に大きな負担をかけます。
あなたのリストでは、より良いものは利用できないが、高速であるため、使用されている古いファイルシステムに言及しています。
他のファイルシステムがあります。私は聞いたファイルシステムがグーグル 1つのハードドライブまたはサーバーがダウンした場合、高速重複/冗長性のため、ほとんどです。私は、多くの小さなファイル用に作成され、小さなファイル(サムネイル)の多くの要求のためにシステムで使用される別のファイルシステムを聞いたことを覚えています。
本質的に彼らは異なる目標を持っているか、またはオープンソースに対する正当性かもしれません。