ディレクトリインデックスノード

ディレクトリインデックスノード

ext4ファイルシステム(またはほぼすべてのLinuxファイルシステム)のinodeについて学ぶと、ディレクトリにもinodeエントリがあることがわかりました。しかし、私は1つの微妙な側面について少し混乱しています。

  • ディレクトリのinode構造はファイルのinodeエントリと似ていますか?協会

または

  • ファイルinode(例:.txtなど)とは異なりますか?協会

どちらの記事でも、ディレクトリは単にファイル名をinode値にマップするファイルと呼ばれていました。ただし、最初のリンクでは、ディレクトリの内容(マップ)をメモリブロックの別々のデータプールセグメントとして指定し、inodeテーブルはデータプールのinode値を格納しますが、他のリンクでは作成者が言及した(画像から)ディレクトリのinode構造にマップされます。

したがって、ディレクトリのマップされた内容と、inodeテーブルのinodeエントリが別々のメモリブロックに格納され、特定のメモリブロックを指すのか、それとも一緒に保存されるのか(ファイル名とinode値間のマッピング))inodeとして保存されるのか疑問が生じます。サブファイルとディレクトリデータを含む追加のメモリブロックなしで、inodeテーブル自体にエントリがありますか?

助けてください。

答え1

最初の参照(単一チャート)は(代わりに)ごみです。 inodeが「content_of_file_2」を直接指していると言うのは、とんでもない単純化です。私はこの文脈で「データプール」という用語が使用されたことを見たことがありません。

これは、ディレクトリ/ファイル階層がツリーであることを示しており、各ステップでinodeのリストを調べることによってこれを行います。

2番目の参照は良く見えますが、完全には読まれませんでした。これはまだ完全な説明ではありませんが、「完全な」ものは10個のわずかに異なるファイルシステムを処理する必要があります。

参照1では、ディレクトリとファイルが同様に処理されると言われ、参照2では互いに異なると言う理由は理解できません。両方の項目タイプに共通する事項は同じように扱われます。違いは、ファイルにはユーザーデータを保持する複数のブロックがあり、ディレクトリにはファイルシステムデータ(特に名前とinodeテーブル)を保持する複数のブロックがあることです。

関連情報