ext2でファイルのinodeを見つけるときに2つのinodeテーブルが使用されますか?

ext2でファイルのinodeを見つけるときに2つのinodeテーブルが使用されますか?

Tanenbaumの最新のオペレーティングシステムでLinuxのext2ファイルシステムにあるファイルにアクセスし、ファイルの親ディレクトリに到達しようとすると、

ファイルが存在する場合、システムは inode 番号を抽出してインデックスとして使用します。iノードテーブル対応するiノード(ディスク上)を見つけてメモリに入れます。 iノード iノードテーブル、現在開いているファイルとディレクトリ内のすべてのiノードを保持するカーネルデータ構造。

2つの異なるinodeテーブルに言及しましたか?

  1. 最初のinodeテーブルはディスクのどこかに保存されていますか?どこに保存されていますか?同じ本の下のディスク、パーティション、ファイルシステムのレイアウトを参照してください。

    inode番号からinodeアドレスへのマッピングですか?

  2. 2番目のinodeテーブルはメインメモリに保存されていますか?

    何かからインデックスノードへのマッピングですか?

ここに画像の説明を入力してください。

ここに画像の説明を入力してください。

答え1

あなたが引用したテキストはおそらく混乱しているようです。ファイルシステムのデフォルトの特権付きinodeはファイルシステムに保存されます。したがって、ディスク(ディスクパーティション)にあるファイルシステムの場合、inodeはディスクにあります。ただし、効率を上げるために、カーネルはアクティブなinodeのローカルコピーをメモリに保存(キャッシュ)します。

  1. 繰り返すと、「最初のinodeテーブル」はディスクに保存されます(ファイルシステムがディスクにあると仮定)。それで、あなたは何を尋ねていますか?質問にコピーした両方の数字は、「Iノード」とマークされた領域を表示します。インデックスノードがある場所です。具体的な詳細はファイルシステムの種類によって異なります。

    • inode番号からinodeアドレスへのマッピングですか?
      いいえ。 inodeは配列(または一部のファイルシステムでは複数の配列)に格納されるため、inodeアドレスは次のように計算できます。

      inode アドレス = (inode 配列のベースアドレス) + (inode 番号) × (inode サイズ)

    そのインデックスノードをすでに知っていることを願っています。含むファイルのメタデータと指すファイルのデータブロックです。

  2. はい、「2番目のinodeテーブル」はメモリに保存されます。これはinodeのマップではありません。 inodeのマップ。それコピー選択したinode(およびシステムのinode状態に関するいくつかの追加のメタデータ)。

関連情報