作者:罗宇哲,中国科学院软件研究所智能软件研究中心
在上一期中,我们以 Linux 网络模块中的 CAKE 系统为例,介绍了对 Linux 补丁源码的分析方法,这一期中我们将介绍如何查看 Linux 内核中各模块的依赖关系。
一、查看Linux内核模块依赖关系
Linux 内核中各个模块之间有相互依赖的关系,表现为一个模块中的文件可以包含另一个模块中的头文件,从而实现对其它模块中定义的函数和变量的调用。
为了查看模块之间的依赖关系,我们可以使用 lsmod 命令,该命令展示了内核已装载模块的模块列表和各个模块所依赖的模块。如果读者已经按照“Linux内核编程环境”小节中所介绍的方法安装了 Linux 4.19.94 版的内核,那么使用 lsmod 命令会出现如下列表:
在上图中,这个列表的第一列列出了模块的名字,第二列列出了模块的大小(以 byte 为单位),而第三列和第四列则列出了使用者的数量和名称,即使用该模块的模块的数量和名称,使用者依赖被使用者。
以 Linux 网络防火墙相关的 ip_tabl