Linux TCP/IP カーネルスタックと VFS 相互作用

Linux TCP/IP カーネルスタックと VFS 相互作用

TCP/IP スタックの Linux カーネル実装について読んでいます。
VFS - ネットワークサブシステムの対話読んでいる間、この絵を発見するまで、すべてが大丈夫でした。Linux での TCP/IP アーキテクチャ、設計、実装

ご覧のとおり、著者はLinux上のVFSとソケット層の間の相互作用を説明しようとしています。これは私に多くの質問をもたらしました。

画像では、特定のインデックスノードの下のファイル構造の一部としてソケットが表示されます。問題は、この関係がもう存在しないということです! (正直なところ、これはnetlinkとunixドメインソケットだけに関連するinodeがあるかもしれませんが、inetソケットはそうではないのであまり意味がありません。そうですか?)構造ファイル定義; f_dentryが消えました。 grepにあります。

Documentation/filesystems/porting.rst 570: f_dentry が消えました。 f_path.dentryを使用するか、より良い方法でこれを回避できることを確認してください。

上記の同じ構造には、到達可能なディレクトリエントリがあります(ドキュメントに記載されているように)。f_パスフィールドだがディレクトリエントリ1つ目はディレクトリエントリを説明し、2つ目はファイルシステムディレクトリキャッシュとして2つの目的を持つ構造で説明されているので、関係が消えなくても(図に示すように)私には理解できません。ソケットを寿命の短いオブジェクトに入れる必要があります。参考データキャッシュ(たぶん私が誤ってdentry/dcacheを理解したのでしょうか?)

引き続きコードを見てください。ソケット構造定義。私たちはまだ古いものを維持していることがわかります文書struct as field(上記の理由でVFS - > TCP / IP関係をクリアし、これらの方向でTCP / IP - > VFS関係を維持する方が合理的です。)しかし、問題はこれが本当に消えるかということです。私は何も止まらないのを見たFD生成すべての種類のコンセントで以下を参照してください。ソックス_マップ_fd-ソックス割り当てファイル-擬似ファイルの割り当てしかも。そして今回の特別さはインデックスノードオブジェクトソケット - >ファイル - >アノード)はデバイスファイルシステムに属していないため、メモリにのみ存在する必要があります。しかし、スーパーブロックは誰ですか? 、よりインドール.sb

これはまさにTCP / IP-VFS相互作用ではありませんが、以下からinodeを取得できます。ファイル -> f_inodeまたは経由ファイル->f_path->d_inode、2つのinode間の関係は何ですか?

誰でも私が理解するのを手伝っていただければ幸いです。よろしくお願いします。

ベストアンサー1

おすすめ記事