Please enable JavaScript.
Coggle requires JavaScript to display documents.
Module (内核空间中运行 (使用linux内核定义的函数 (:icecream:printk, :question:什么叫做内核定义的函数),…
Module
内核空间中运行
-
-
init_module
和cleanup_module
是入口函数和出口函数,前者类似于C语言中的main函数
-
-
-
:wrench:use
-
-
modutils
:icecream:insmod, rmmod, ksyms, lsmod, modprobe
-
modprobe
自动根据模块之间的依赖性插入模块的程序
如果模块A依赖模块B,当请求加载模块A的时候,modprobe会自动加载模块B
通过depmod程序(检查modules.dep文件)来了解依赖关系,从而调用insmod
内核符号表
-
-
/proc/kallsyms
-
内核编程中,利用符号名称从这个文件中检索出该符号在内存中的地址,然后直接对该地址内存访问从而获得内核数据
对于通过内核模块方式导出的符号,会包含第四列"所属模块",用来标志这个符号所属的模块名称;而对于从内核中释放出的符号就不存在这一列的数据了
-
:pineapple:模块依赖
如果模块A引用模块B的符号,就说模块B被模块A引用,或者说模块A装载在模块B上
-
-