在udev 维基页面,它有这样的图片:
Kernel -> udev -> NetworkManager <-> DBus <-> Firefox
。
内核通过 netlink 套接字将 uevent 发送到 udevd。 NetworkManager 通过 dbus 与 Firefox 对话。都好。
udev(我假设它是udevd守护进程)和NetworkManager之间的通信机制是什么?我可以看到,除了配置链接/路由等所必需的 NETLINK_ROUTE 之外,NetworkManager 本身还打开了几个 NETLINK_KOBJECT_UEVENT 套接字。这是否意味着 wiki 图片已经过时,并且 NetworkManager 直接从内核 uevent 监听/收集设备信息?
否则,如果 udevd 负责将所有设备相关信息传播给所有用户应用程序(守护程序),那么它是如何做到的呢?也许是一个 unix 域套接字,如果是的话,它的名字是什么?
而且,它/run/udev/control
到底是做什么的?