`ip addr`はどこからデータを取得しますか?

`ip addr`はどこからデータを取得しますか?

私は見たソースコード2269行後に停止しました。同じ感じがあります。路線、このユーティリティはprocfsファイルシステムも使用していますが、その詳細をよく理解していません。

答え1

パスが似ていると思います。

私はrouteprocfsを使ってLinuxに実装がないとほとんど確信しています。リンクされた質問の質問は確かにそうではありません。なぜならこのコメントは説明します:

もしあなたならソースコードを見る、カーネル構造を直接読む。カーネルが提供する擬似ファイルを直接解析しません/proc/

通常、3つのタイプの実装がありますroute

  • Netlinkの導入以降に最初から作成された実装では、Netlinkを使用します。
  • Netlink が導入される前に作成された実装では ioctl を使用します。
  • いくつかの実装はroute単純なラッパーを提供しますip route

このユーティリティはprocfsファイルシステムも使用します。

完全なiproute2ツールバーはNetlinkを使用します。実際、Netlink と iproute2 はほぼ同時に開発され、Netlink は iproute2 などのネットワーク構成ツールで使用するために特別に開発されました。

実際、Netlinkとiproute2は元々Alexey Kuznetsovによって開発されました。 Alexey Kuznetsovは、Netlinkとiproute2を開発しました(彼はQoSも開発しました)。

関連情報