代码之家  ›  专栏  ›  技术社区  ›  domlao

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

  •  6
  • domlao  · 技术社区  · 16 年前

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

    我读过关于Netlink在用户空间内核空间通信中的实现,这似乎是个好主意,但不确定这是否是最好的解决方案。但是我读到UDEV设备管理器使用Netlink来等待来自内核空间的“uevent”,但我不清楚如何做到这一点。

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

    谢谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   Peter O. Manuel Pinto    14 年前

    是的,投票是不明智的。这些资源:关于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

        2
  •  1
  •   Hervé    12 年前

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