`ip addr` 从哪里获取数据?

`ip addr` 从哪里获取数据?

我看了看源代码在第 2269 行之后卡住了。我有一种感觉,就像路线,这个实用程序也正在使用 procfs 文件系统,但我不太清楚它的具体情况。

答案1

我有一种感觉,就像路线一样

我几乎可以肯定routeLinux 上没有任何实现使用 procfs。链接问题中的肯定不是,因为这个评论解释了:

如果你看源码,它直接读取内核结构。它不直接解析内核提供的伪文件/proc/

通常有三种类型的实现route

  • 引入 Netlink 后从头开始创建的实现将使用 Netlink。
  • 在引入 Netlink 之前创建的实现将使用 ioctl。
  • 一些实现提供了route一个简单的包装器ip route

该实用程序也使用 procfs 文件系统

整个 iproute2 工具套件都使用 Netlink。事实上,Netlink和iproute2大致是同时开发的,Netlink是专门为iproute2等网络配置工具使用而开发的。

事实上,Netlink 和 iproute2 最初都是由 Alexey Kuznetsov 开发的,他开发了 Netlink 和 iproute2,因为传统的网络配置工具很难扩展对 QoS 的支持(他也开发了 QoS)。

相关内容