4

我有一个包含中断处理程序的 Linux 内核模块,并且想在处理中断后以某种方式通知用户空间应用程序。请告诉我,怎么做?

4

3 回答 3

4
  • 您始终可以使用普通套接字,例如 UDP 或 UNIX。
  • /proc您可以通过或导出此信息/sys(请参阅问题)。
  • 您可以使用 Netlink(请参阅问题)。
于 2013-06-02T21:29:34.907 回答
3

使用网络链接

Netlink 套接字是一种特殊的 IPC,用于在内核和用户空间进程之间传输信息。它通过用于用户空间进程的标准套接字 API 和用于内核模块的特殊内核 API 在两者之间提供全双工通信链接。与 TCP/IP 套接字使用的 AF_INET 相比,Netlink 套接字使用地址族 AF_NETLINK。每个 netlink 套接字特性在内核头文件 include/linux/netlink.h 中定义了自己的协议类型。

于 2013-06-02T21:26:47.493 回答
0

我直接回答了这个问题,因为它是 Google 中“内核向用户空间发送信号”的最高结果。

我通常使用信号来终止用户空间进程以检查它的堆栈,因为它调用 ioctls。通常以下对我有用:

force_sig(SIGSEGV, current);
于 2014-03-08T04:22:30.730 回答