Linux 如何调用任何内核函数?
我知道Kprobes可以用来探测任何内核函数。但在查阅了它的文件后,我意识到它基本上是一种被动实体。它只是将探针放在执行序列的中间。 但是,如果我想直接调用任何内核函数,而不考虑执行顺序,该怎么办呢 我怎样才能做到这一点 已更新:Linux 如何调用任何内核函数?,linux,linux-kernel,kprobe,Linux,Linux Kernel,Kprobe,我知道Kprobes可以用来探测任何内核函数。但在查阅了它的文件后,我意识到它基本上是一种被动实体。它只是将探针放在执行序列的中间。 但是,如果我想直接调用任何内核函数,而不考虑执行顺序,该怎么办呢 我怎样才能做到这一点 已更新: 注意:我希望调用内核模块内的任何内核函数,而不是从任何用户空间应用程序调用。不能简单地从用户空间中的应用程序调用内核函数。系统调用是用户空间中唯一可以请求内核服务的函数 要直接调用内核函数,如果您对内核编程感兴趣,则必须实现内核模块。这是一个起点 编辑 因为您已经指
注意:我希望调用内核模块内的任何内核函数,而不是从任何用户空间应用程序调用。不能简单地从用户空间中的应用程序调用内核函数。系统调用是用户空间中唯一可以请求内核服务的函数 要直接调用内核函数,如果您对内核编程感兴趣,则必须实现内核模块。这是一个起点 编辑
因为您已经指定要从模块内调用内核函数,所以根本没有问题。只需按照我上面发布的文档链接进行操作 如果我想直接调用任何内核函数呢 至少不是所有函数都可以直接使用 在本例中调用内核函数时,请考虑以下几点
- 只有使用宏系列导出不同模块的内核函数时,才能使用该函数
- 函数不能直接在该文件之外使用
此处使用
是的,我只是在构建内核模块。所以,如果我想从我的模块中调用任何其他内核函数,我将如何实现呢?我知道用户空间应用程序不能直接调用内核函数。我明白了,我想Kprobes已经被实现用于内核模块,不是吗?我试图重新表述我的答案。
我想调用我的内核模块中的任何内核函数
-所以,这样做吧。在内核模块内部调用内核函数有什么问题?我可以只调用任何内核函数而不在模块中包含任何与该函数相关的头文件吗?是的。。但是你可能会说它是错误的这里是帮助:这解释了关于编写Linux内核模块的大部分内容,并提供了一些示例。