我正在学习使用Linux作为主要平台的嵌入式系统编程.我想创建一个设备事件管理服务.此服务是一个用户空间应用程序/守护程序,它将检测连接的硬件模块是否触发了事件.但我的问题是我不知道我应该从哪里开始.
我阅读了有关用户空间 – 内核空间通信的Netlink实现,看起来这是一个好主意,但不确定它是否是最佳解决方案.但我读到UDEV设备管理器使用Netlink等待来自内核空间的“uevent”,但我不清楚如何做到这一点.
我读到了关于轮询sysfs但看起来轮询文件系统不是一个好主意.
你认为我应该在我的服务中使用什么实现?我应该使用netlink(硬/不知道如何)或只是轮询sysfs(不确定它是否有效)?
谢谢
最佳答案
是的,民意调查是不明智的.这些资源:关于Netlink的LJ文章“使用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