如何从用户空间程序中调用内核模块中定义的函数

时间:2014-03-31 06:57:26

标签: linux-kernel linux-device-driver

我创建了一个内核模块。我在模块中定义了一些函数,如function1(int n)function2()。 编译和插入模块时没有错误。我不明白的是如何从用户空间计划中调用function1(n)function2()

1 个答案:

答案 0 :(得分:1)

我认为没有直接的方法可以做到这一点,你可以像使用库一样将用户空间代码与内核联系起来。首先,您必须将您的函数注册为syscall,然后使用syscall()函数调用syscall。

请参阅here

也可以使用套接字通信查看内核和用户空间之间的某些接口 这link

并在页面右侧找到与此主题相关的完整链接。

您可以让驱动程序对写入/ dev / file文件或/ proc / file文件做出反应。

修改

表单名称文件我的观点是设备是内核中的文件,您可以通过ioctl()访问  很好的解释是http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN885

请参阅Link