FATファイルシステムは、クラスタ接続リスト(接続されたファイル割り当て)を介してファイルを表します。
アドレス指定可能なクラスタと同じ数のエントリを持つ1つ以上のテーブル(ファイル割り当てテーブル)のディスク領域があります。各項目は次のとおりです。
- ファイルリストの次のクラスタへのポインタ
- リンクリストの最後のクラスタを表すマーカー
- 未使用タグ
- 悪いスコア
シンボリックリンクの場合、FATはextファイルシステムのようにファイルパスを指すか保存できないようです。私が考えることができる最も近いのは、接続リストの先頭を指すことです。これはある種のメンテナンスが必要です。
ハードリンクと同様に、FATファイルシステムにはファイル間で「共有」できるファイルノードはありません。ファイルへのリンク数を追跡する方法もありません。
答え1
ファイルシステムの場合、「あまり設計されていないから」と答えるようです。つまり、これを基本ファイルシステムとして使用するオペレーティングシステムのどれも、シンボリックリンクのアイデアを望んでいる、必要としない、または提示していないため、実装されていません。
ファイルシステムの実装/ドライバでは理論的にシンボリックリンクサポートを追加できますが、ファイルシステムにはファイルを通常のファイルではなくリンクとして表示する方法が必要です(リンクテキストは通常のファイルデータのように保存できます)。この機能は実装されていないため、これを行うための既存の方法はありません。人々は次のいずれかの領域を選択する必要があります。ディレクトリエントリファイルはリンクとしてマークされますが、この実装は他の実装と互換性がありません。少なくとも他のシステムではリンクサポートを追加しないため、サポートされません。
さらに、FATはかなり古いファイルシステムであり、ほとんどの場合、相互運用性が有用であると考えられる場合にのみ使用されます。これを念頭に置いて既存の標準を変更することは悪い考えであり、真剣に使用するためには、すべてのオペレーティングシステムがリンクなどをサポートするより良いファイルシステムを備えています。
ハードリンクは、ファイル名を他のメタデータとは異なる場所に配置することに大きく依存するため、より困難です。 Unixタイプのファイルシステムでは、inodeはほとんどのメタデータを保持し、ディレクトリにはinodeへのポインタのみが含まれます。 FAT では、ディレクトリエントリに名前が含まれます。そしてその他すべてのメタデータ。したがって、複数のハードリンクを持つファイルのメタデータを保存する場所はありません。