Netlink用户空间和内核空间通信

dom*_*lao 6 linux

我正在学习使用Linux作为主要平台的嵌入式系统编程.我想创建一个设备事件管理服务.此服务是一个用户空间应用程序/守护程序,它将检测连接的硬件模块是否触发了事件.但我的问题是我不知道我应该从哪里开始.

我阅读了有关用户空间 - 内核空间通信的Netlink实现,看起来这是一个好主意,但不确定它是否是最佳解决方案.但我读到UDEV设备管理器使用Netlink等待来自内核空间的"uevent",但我不清楚如何做到这一点.

我读到了关于轮询sysfs但看起来轮询文件系统不是一个好主意.

你认为我应该在我的服务中使用什么实现?我应该使用netlink(硬/不知道如何)或只是轮询sysfs(不确定它是否有效)?

谢谢

Bri*_*ain 1

是的,民意调查是不明智的。这些资源:LJ 关于 Netlink 的文章“理解和使用 Netlink 套接字进行编程”使 netlink 看起来并不那么难。这是 python 中的 netlink 套接字的示例。

udevtrigger 是一个用于响应 udev 更改的出色实用程序。

http://www.linuxjournal.com/article/7356

http://smacked.org/docs/netlink.pdf

http://guichaz.free.fr/misc/iotop.py

http://manpages.ubuntu.com/manpages/gutsy/man8/udevtrigger.8.html