在上一期中,我们介绍了如何查看Linux内核中各个模块之间的依赖关系,这一期我们将介绍一下根据模块的依赖关系如何绘制模块依赖图。

一、使用freemind绘制模块依赖图

Freemind是一款常用的思维导图绘制软件,可以使用freemind来绘制模块依赖图。在Ubuntu 16.04环境下运行命令:sudo  snap install freemind安装freemind。然后输入freemind可以打开freemind:

我们用一个简单的例子来介绍如何使用freemind软件。打开/lib/modules/4.19.94/modules.dep文件,搜索ip_tables我们可以看到如下图所示的依赖关系:

 从上图可以看出,ip_tables模块依赖x_tables模块;iptable_filter模块依赖ip_tables模块和x_tables模块。为了表示这个依赖关系,首先我们在图中加入iptable_filter节点:

然后通过insert菜单下面的New Child Node选项为iptable_filter节点增加子节点ip_tables:

为了使节点更加明显,我们可以右击ip_tables节点并在format一栏中将节点的格式设置为Bubble。用同样的方法我们可以为ip_tables节点增加子节点x_tables,表示ip_tables模块依赖于x_tables模块。

由于iptable_filter模块也依赖于x_tables模块,因此我们也需要增加一条从iptable_filter模块指向x_tables模块的边。方法为:选中x_tables模块和iptable_filter模块,然后按Ctrl+L。到这里,我们构建了一个关于iptable_filter、ip_tables和x_tables模块的简单依赖关系图。

二、结语

本期我们介绍了根据模块依赖关系使用freemind绘制模块依赖图的方法,下一期我们将介绍Linux内核分布式编译环境的搭建方法。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐