kesarling He-Him Asked: 2024-01-22 10:15:01 +0800 CST2024-01-22 10:15:01 +0800 CST 2024-01-22 10:15:01 +0800 CST `ip addr` 从哪里获取数据? 772 我查看了源代码,在第 2269 行之后卡住了。我有一种感觉,就像route一样,这个实用程序也在使用procfs文件系统,但我不能完全确定它。 iproute 1 个回答 Voted Best Answer Jörg W Mittag 2024-01-23T07:18:31+08:002024-01-23T07:18:31+08:00 我有一种感觉,就像路线一样 我几乎可以肯定 Linux 上没有任何实现route使用 procfs。链接问题中的肯定不是,正如此评论所解释的那样: 如果你查看源代码,它会直接读取内核结构。它不直接解析内核提供的伪文件/proc/。 通常有三种类型的实现route: 引入 Netlink 后从头开始创建的实现将使用 Netlink。 在引入 Netlink 之前创建的实现将使用 ioctl。 一些实现提供了route一个简单的包装器ip route。 该实用程序也使用 procfs 文件系统 整个 iproute2 工具套件都使用 Netlink。事实上,Netlink和iproute2大致是同时开发的,Netlink是专门为iproute2等网络配置工具使用而开发的。 事实上,Netlink 和 iproute2 最初都是由 Alexey Kuznetsov 开发的,他开发了 Netlink 和 iproute2,因为传统的网络配置工具很难扩展支持 QoS(他也开发了)。
我几乎可以肯定 Linux 上没有任何实现
route
使用 procfs。链接问题中的肯定不是,正如此评论所解释的那样:通常有三种类型的实现
route
:route
一个简单的包装器ip route
。整个 iproute2 工具套件都使用 Netlink。事实上,Netlink和iproute2大致是同时开发的,Netlink是专门为iproute2等网络配置工具使用而开发的。
事实上,Netlink 和 iproute2 最初都是由 Alexey Kuznetsov 开发的,他开发了 Netlink 和 iproute2,因为传统的网络配置工具很难扩展支持 QoS(他也开发了)。