Linux/Unixでは、/proc/netファイルはどのように入力されますか?

Linux/Unixでは、/proc/netファイルはどのように入力されますか?

パケットスニッフィングなしでLinux用のネットワークモニタを開発しています。/proc/netファイルからネットワーク統計と関連データを読み取る予定です。

これは、/procカーネルの内部データ構造を反映する仮想ファイルシステムであるプロセスファイルシステムのマウントポイントであることを理解しています。

どのように記入されるか、OSの内部を直接読むことができるかどうかを知りたいです。

ベストアンサー1

/procカーネルによって「すぐに」埋められます。ディレクトリとファイルの内容は、アプリケーションがアクセスするときに動的に構成されます。したがって、それを満たすユーティリティが見つかりません。物事がどのように到達したかを知りたい場合は、読んでください。カーネルコードまたはカーネル文書。ソースコードでは、さまざまな部分から項目が生成されます。ネットワークコード。多くの項目が/proc/net次のように記録されています。ネットワーク文書

これは、オペレーティングシステムの内部を読み取る最低レベルです。より深く入る唯一の方法はカーネルドライバを書くことです。

ネットワーク関連情報を取得する別の方法は、ソケット呼び出しを使用することですioctlgetsockopt時にはこれがCでより便利な場合もあります。何らかの方法では得られますが、他の方法では得られないか、その逆の場合もあるようですが、詳細はわかりません。

おすすめ記事