从内核空间执行用户空间函数

前端之家收集整理的这篇文章主要介绍了从内核空间执行用户空间函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在linux中编写一个自定义设备驱动程序,必须能够在中断时快速响应.用于处理此问题的代码已存在于用户空间实现中,但这种代码太慢,因为它依赖于软件不断检查中断线的状态.在做了一些研究后,我发现你可以从内核模块注册这些中断线,并执行函数指针给出的函数.但是我们想要执行的代码是在用户空间中,有没有办法从内核空间模块调用用户空间中的函数

最佳答案
你从内核调用用户空间函数是不幸的,因为内核没有并且不应该知道单独的用户空间应用程序函数和逻辑,更不用说每个用户空间应用程序都有它自己的内存布局,没有其他进程和内核被允许以这种方式入侵(共享对象在这里是例外,但你仍然无法从内核空间进入).那么安全模型呢,你不应该首先在内核上下文中运行用户空间代码(在内核上下文中自动被认为是不安全的代码),因为那样会破坏内核的安全模型.那个瞬间.现在考虑上面提到的所有内容,加上许多其他动机,你可能想重新考虑你的方法,并专注于内核< - >用户空间IPC and Interfaces,文件系统或用户模式帮助程序API(如下所示).

您可以使用usermode-helper API从内核调用用户空间应用程序.以下IBM DeveloperWorks文章应该让您开始使用usermode-helper Linux内核API:

Kernel APIs,Part 1: Invoking user-space applications from the kernel

猜你在找的Linux相关文章