【发布时间】:2011-02-11 00:14:40
【问题描述】:
是否可以在 Linux 中扩展 ioctl 接口,以便用户空间应用程序可以向内核空间驱动程序发送指向函数的指针?
我特别想以用户可控的方式处理流,但在内核中进行。这些操作可以附加到内核模块,但这会使开发变得更加容易,因为我不需要在开发过程中弄乱内核。
更具体地说,这将是过程:
- 驱动程序将数据读取到缓冲区中。
- 数据由这些用户定义的函数处理。
- 完成了更多处理,可能需要一些硬件块。
- 数据由用户空间应用程序使用。
【问题讨论】:
-
在内核空间运行用户提供的代码会在系统中打开一个巨大的安全漏洞。
-
我知道,但即使这只是用于初始开发,它也会非常有用。
-
@stsquad 我不认为他想在内核上下文中运行用户模式代码,而是从用户代码调用他的系统调用,将回调处理程序指针传递给它,内核返回给用户-mode 每次调用它,所以它看起来就像从用户代码的角度来看的常规回调。
-
这就是我的想法,j_kubik。
标签: linux-kernel kernel linux-device-driver ioctl