質問: スーパーブロック、inode、dentry、およびファイルとは何ですか? m. tim jonesによる記事 linuxファイルシステムの構造 から、linuxはすべてのファイルシステムを共通のオブジェクトセットの観点から表示し、これらのオブジェクトはsuperblock、inode、dentryおよびファイル。パラグラフの残りの部分で上記について説明していますが、私はその説明にそれほど慣れていませんでした。誰かがこれらの用語を私に説明できますか?
回答: 簡単に言うと、dentryとiノードは同じものであり、ファイルまたはディレクトリの抽象化です。 dentryとiノードの違いは、dentryはディレクトリ固有の操作を容易にするために使用されることです。inodeはファイルまたはディレクトリに関するメタデータのコレクションにすぎません。スーパーブロックはファイルシステムの抽象化です。linuxカーネルのstruct fileは、他の多くの名前(struct address_spaceなど)と誤解されており、実際の「ファイル」(/ etc/passwdなど)を抽象化したものではありません。開かれた「ファイル」またはディレクトリを表します。 struct fileはカーネルのsys_openによって作成されるため、プロセスは同じファイルに対して多くのstruct fileを持つことができます。なぜ歯が必要なのですか?パス名(例:/ etc/passwd)からiノードへの変換を高速化するために使用されます。 linuxカーネルは、iノードを使用して、名前ではなく「ファイル」またはディレクトリを操作します。