iノードを含むテーブルがどこにあるのかわかりません。先生は、各物理ディスクにiノードテーブルがあり、その後にファイルデータがあると言いました。しかし、インターネットでは、私は各ディレクトリに独自のinodeテーブルとその中のファイルに関連する名前があることを発見しました。
この2つのテーブル(概念)が異なるのでしょうか、それとも2つのうちの1つが間違っていますか?
ありがとうございます。
答え1
誤解は、inodeが物理ディスクの属性ではなく、一部のディスクの属性であることです。ファイルシステム。たとえば、FAT32にはinodeはありません。階層を簡単にまとめると、次のようになります。
物理ディスクには多くの情報が含まれています。部門。これは、データが保存されるディスクの物理的な場所です。
物理ドライブは通常、次のように区別されます。分割。これは、ディスクから(論理的に)連続した物理データ記憶領域を論理的に分離したものです。
これらのパーティションは、LVMと同様に論理ボリュームにさらに分割できますが、必須ではありません。実装されている場合、これらの論理ボリュームは主にパーティションのように機能しますが、容量の追加などの操作をより簡単に実装できます。
パーティション(または論理ボリューム)には、以下を含めることができます。ファイルシステム(例:ext3fs、VFAT、hpfs)各ファイルシステムは、組織構造などを追跡するために独自の方法で構成されています。 Linux ホスト (ext?fs など) に一般的にデプロイされる多くのファイルシステムは、この目的のために inode を使用するか、同等のメカニズム (例: reiserfs) を使用します。
答え2
先生は、各物理ディスクにiノードテーブルがあり、その後にファイルデータがあると言いました。
これは基本的に正しいです。より正確には、各ファイルシステムにinodeテーブルがあり、各パーティションに別々のファイルシステムがあります。 (状況はより複雑になる可能性がありますが、ここでは複雑に説明する必要はありません。)
ファイルシステムのinodeテーブルマッピングアイノード番号到着ファイルメタデータ。通常、固定サイズ構造の大規模なセットです。たとえば、この配列の要素番号1234はインデックスノード番号1234です。インデックスノードには、ファイル権限、変更時間、ファイルタイプ、ファイルコンテンツの場所の表示などの情報が含まれています。
しかし、インターネットでは、私は各ディレクトリに独自のinodeテーブルとその中のファイルに関連する名前があることを発見しました。
マッピングテーブルファイル名到着アイノード番号。つまり、ディレクトリは項目のリスト(またはより複雑なデータ構造)であり、リストの各要素にはファイル名とinode番号が含まれています。ファイルのメタデータと内容を見つけるために、システムはディレクトリからinode番号を読み込み、inodeテーブルから指定されたエントリを読み込みます。与えられたパスでファイルを見つけるために、システムはルートinodeから始まり、それがディレクトリであることを発見し、最初の要素のディレクトリエントリを見つけ、そのinodeを読み取るなどの操作を実行します。
これはファイルシステムの一般的な設計ですが、これが可能な唯一の設計ではありません。ほとんどのUnixファイルシステムはこの設計に従いますが、他のシステムも存在します。