我正计划使用netlink在两个userland进程之间进行通信。对netlink如此挑剔的部分原因是-该进程之一的大部分处理最终都将在内核空间中进行,并且可以(希望)按原样使用基于netlink的通信。
我采用的方法是-定义一个新的Generic Netlink系列(我将不得不编写一个内核模块来支持该系列-目前看来如此)。很好,我看了一些示例代码,其中内核实际上只是在不同进程之间路由消息,而实际上并没有做任何工作-这些消息的实际填充是由进程处理的。
我的问题是-是否有人在任何项目中以类似方式使用netlink?另外-上述方法有意义吗?
我阅读了有关基于Netlink的DBUS的建议。但尚未找到任何实现。那最接近我的要求。
谢谢。
最佳答案
如果要在用户空间进程之间进行通信,则您要查找的是NETLINK_USERSOCK
。
不幸的是,Netlink文档非常匮乏。这可能会有所帮助:Who can give me the latest netlink programming samples?
只要确保nl_pid为非零并且匹配绑定(bind)到哪个用户空间对等端,并且您要发送单播即可。
关于linux - 是否有人使用netlink进行IPC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26238160/