欢迎来到“开源操作系统”社区 登录 | 注册
文档
  • OS内核分析报告
  • OS安全趋势报告
  • Linux版本分析
  • OS安全分析报告
工具
  • Linux内核函数调用关系图
  • Android体系结构导航软件
Linux-3.19.8
调用图首页
Linux-3.5.4
调用图首页
Linux内核函数调用关系图
针对典型的Linux内核版本,展示内核函数调用关系。可按用户需求提供函数调用全图和局部子图,可生成详细的函数调用列表,为用户提供一种辅助分析的手段。
  • 使用引导页
  • 功能说明页
  • 场景展示页

linux内核函数调用关系图针对典型的Linux内核版本,提供内核函数不同层次的调用关系查看和差异比较功能
1
提供特定内核版本不同层次多个维度的内核函数调用全图和局部子图,包括看模块级、文件级和函数等多层次的调用关系
2
针对多个层次的内核函数调用关系,提供了对应的详细函数调用列表,可直接定位到源代码和相关功能描述
3
能够进行两个内核版本之间的相同模块内核函数调用图的差异比较,提供详细的差异调用列表和差异代码,从而为用户提供一种辅助分析的方法
Linux-3.5.4内核顶层模块
调用关系图展示:
可以借助顶层模块调用图轻松查看顶层调用关系和相应的调用次数
Drivers模块further graph
调用图展示:
从顶层调用图将Drivers展开一级到子模块,其他顶层模块保留,最终形成的调用图。可以从图中看出蓝色的节点为Drivers子模块的节点分布和调用情况,黄色的节点为其他顶层模块的调用情况。
Drivers模块函数调用子图(zoom)展示:
查看Drivers模块内部子模块之间调用的拓扑结构,调用次数(出度/入度)分布情况
文件系统fs/inode.c函数调用
关系子图(zoom)展示:
查看文件系统fs/inode.c文件所包含的函数内部调用关系子图,呈现节点较多内部调用较少的分布
内存管理mm/memory.c函数调用关系子图(zoom)展示:
查看内存管理mm/memory.c文件所包含的内部函数调用关系子图,呈现出两个集中的聚类和其中的关键函数。
 函数调用列表(call list)展示:
展示出调用图中函数调用次数的具体信息,可查看详细的函数定义和发生调用的位置
使用linux内核函数调用关系图的目标人群是学生或者内核爱好者、开源操作系统研究人员以及相关开发者,例如学生在学习linux内核的电源管理模块时便可获取如下信息:
Demo1
电源管理模块相关信息及调用图(linux-3.5.4)

(1)  睡眠:不断电,系统状态信息保存在内存

(2)  休眠:可断电,系统状态信息保存在磁盘

(3)  涉及源码:hibernate.c, suspend.c swap.c

而对于一个内核开发者,对内核中某个模块做升级优化时便可以使用linux内核函数调用关系图的差异比较功能。例如对电源管理模块做优化(linux-3.5.4)后升级到linux-3.8.13时,可通过差异比较查看该优化在两个版本中的差异,从而辅助进行针对性修改和升级。
Demo2
电源管理模块调用图两版本差异对比

(1) Linux-3.5.4中省电模式:(原来有两种模式:睡眠、休眠)

(2) Linux-3.8.13中新增结合模式:断电可恢复,系统状态信息同时保存在内存和磁盘中。(新增一次函数调用,新增一个函数swsusp_unmark)

预知详情,欢迎登陆使用“linux内核函数调用关系图”工具