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

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

我阅读了有关用户空间 – 内核空间通信的Netlink实现,这似乎是一个好主意,但不知道它是否是最好的解决scheme。 但是我读到UDEV设备pipe理器使用Netlink从内核空间等待“uevent”,但是我不清楚该怎么做。

我读了关于轮询sysfs,但似乎轮询文件系统不是一个好主意。

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

谢谢

是的,投票是不明智的。 这些资源:Netlink上的LJ文章,“使用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

如果你只是在等待一个事件,你可以使用sysfs,这将比netlink简单得多。 一个例子是GPIO系统的边缘文件。