簡體   English   中英

如何從內核模塊向用戶空間應用程序發送“信號”?

[英]How to send a “signal” from kernel module to user-space application?

我有一個Linux內核模塊,其中包含中斷處理程序,並希望在處理完中斷后以某種方式通知用戶空間應用程序。 請告訴我,怎么做?

使用netlink

Netlink套接字是一種特殊的IPC,用於在內核和用戶空間進程之間傳輸信息。 它通過用於用戶空間進程的標准套接字API和用於內核模塊的特殊內核API在兩者之間提供全雙工通信鏈接。 與TCP / IP套接字使用的AF_INET相比,Netlink套接字使用地址族AF_NETLINK。 每個netlink套接字功能在內核頭文件include / linux / netlink.h中定義自己的協議類型。

  • 您始終可以使用普通套接字,如UDP或UNIX。
  • 您可以通過/proc/sys導出此信息(請參閱問題)。
  • 您可以使用Netlink(請參閱問題)。

我正在直接回答這個問題,因為這是谷歌“向用戶空間發送內核信號”的最佳結果。

我通常使用signal來殺死用戶空間進程,以便在調用ioctl時檢查它的堆棧。 通常,以下內容適用於我:

force_sig(SIGSEGV, current);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM