发明名称 一种基于编译选项的Linux内核模块关系提取方法
摘要 本发明公开了一种基于编译选项的Linux内核模块关系提取方法。本方法为:1)将内核源代码根据其功能及逻辑关系进行划分,形成虚目录;2)对Linux内核实目录下每一个Kconfig文件进行语法分析,识别出所有的编译选项;然后从同目录下的编译文件解析出每个编译选项所需的源码文件;3)根据虚目录,以源码文件作为中介,将编译选项划分到相应的虚目录中;4)对每一源码文件进行正则分析,得到源码文件中定义的函数以及变量;5)对每一函数和变量的具体实现源码进行解析,提取出函数之间、变量之间的调用关系;6)根据上述关系构建出内核组织架构。本发明并不依赖于某一内核版本,可以清晰明了的获取内核模块间关系。
申请公布号 CN103699389A 申请公布日期 2014.04.02
申请号 CN201310746159.3 申请日期 2013.12.30
申请人 北京大学 发明人 荆琦
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 余长江
主权项 一种基于编译选项的Linux内核模块关系提取方法,其步骤为:1)将内核源代码根据其功能及逻辑关系进行划分,形成虚目录;2)对Linux内核实目录下每一个Kconfig文件进行语法分析,识别出所有的编译选项;然后对同目录下的编译文件进行语法分析,解析出每个编译选项所需的源码文件;3)根据划分好的虚目录,以源码文件作为中介,将编译选项划分到相应的虚目录中;4)对每一源码文件进行正则分析,得到源码文件中定义的函数以及变量;5)对每一函数的具体实现源码进行解析,提取出函数之间的调用关系;对每一变量的具体实现源码进行解析,提取出变量之间的调用关系;6)根据上述获取的虚目录与编译选项之间的包含关系、编译选项与源码文件之间的包含关系、源码文件与函数或变量之间的包含关系,以及函数之间的调用关系、变量之间的调用关系构建出Linux内核组织架构。
地址 100871 北京市海淀区颐和园路5号北京大学