Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 获取运行模块中的Linux内核模块ko文件名_C_Linux_Linux Kernel_Kernel Module - Fatal编程技术网

C 获取运行模块中的Linux内核模块ko文件名

C 获取运行模块中的Linux内核模块ko文件名,c,linux,linux-kernel,kernel-module,C,Linux,Linux Kernel,Kernel Module,在运行的Linux内核模块中,是否有一种简单的方法来确定与模块关联的.ko文件(即:/lib/modules/$(uname-r)/kernel/drivers/mymodule.ko)的完整文件名,而无需遍历procfs,而是,仅仅依靠内核空间代码中可用的内部结构/列表?您无法获得内核中模块文件的路径:内核不存储它。此外,内核甚至不知道该路径 加载内核模块有两个系统调用:init_模块和finit_模块(两者都在kernel/module.c中定义)。第一个接受指向用户空间区域的指针,模块映像

在运行的Linux内核模块中,是否有一种简单的方法来确定与模块关联的
.ko
文件(即:
/lib/modules/$(uname-r)/kernel/drivers/mymodule.ko
)的完整文件名,而无需遍历procfs,而是,仅仅依靠内核空间代码中可用的内部结构/列表?

您无法获得内核中模块文件的路径:内核不存储它。此外,内核甚至不知道该路径

加载内核模块有两个系统调用:
init_模块
finit_模块
(两者都在
kernel/module.c
中定义)。第一个接受指向用户空间区域的指针,模块映像驻留在该区域(用户空间应该先将模块文件读入该区域)。第二个接受模块文件的描述符,但此描述符仅用于读取文件内容,不存储。

第一:您的模块可能已编译到内核中,因此没有文件路径

第二:从文件中加载内核模块是在用户空间中进行的。内核通过
init_module
系统调用被传递一个模块作为数据缓冲区——从理论上讲,该数据可能从未从文件加载过。(例如,可以想象一个模块加载器从网络或压缩档案加载模块。)