私は最近、Linuxカーネルについて学び始めました。ファイルのメタデータを含むデータ構造であるinodeについて知りました。iノードはどこに保存されていますか?
ここで、OSはファイルの関連inodeをどのように見つけますか? (パスの文字列を言う)。さらに、それらのiノードはどこに格納されていますか?明らかにそれらはディスクに保存されていますが、どのように管理されていますか?
1つの単純な解決策(私は思い付くことができます)は、ディスク上にinode専用に指定された領域を割り当てることです - 実際に何が行われましたか?
ありがとうございます。OSは、指定されたパスのどこにこのブロックがあるのかをどのくらい正確に知っていますか? – LiorGolan
@LiorGolan - 各ディレクトリエントリは、少なくともパスコンポーネント名だけでなく、その詳細(inode番号など)を見つける場所も指定する必要があります。ルートディレクトリにはよく知られたinode番号(たいていは#2)があります。 mik1904が示すように、iノード番号が分かっていれば、ディスク上のどこにファイルシステムがあるかを知ることができます。次に、1.指定されたiノードのディレクトリデータを読み込みます。2.次のパスコンポーネントの名前とその詳細を検索します。3.パスの最後のコンポーネントに達するまで繰り返します。 – Sparky