[发明专利]一种基于编译选项的Linux内核模块关系提取方法有效
申请号: | 201310746159.3 | 申请日: | 2013-12-30 |
公开(公告)号: | CN103699389B | 公开(公告)日: | 2016-11-16 |
发明(设计)人: | 荆琦 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 编译 选项 linux 内核 模块 关系 提取 方法 | ||
1.一种基于编译选项的Linux内核模块关系提取方法,其步骤为:
1)将内核源代码根据其功能及逻辑关系进行划分,形成虚目录;
2)对Linux内核实目录下每一个Kconfig文件进行语法分析,识别出所有的编译选项;然后对同目录下的编译文件进行语法分析,解析出每个编译选项所需的源码文件;
3)根据划分好的虚目录,以源码文件作为中介,将编译选项划分到相应的虚目录中;
4)对每一源码文件进行正则分析,得到源码文件中定义的函数以及变量;
5)对每一函数的具体实现源码进行解析,提取出函数之间的调用关系;对每一变量的具体实现源码进行解析,提取出变量之间的调用关系;
6)根据上述获取的虚目录与编译选项之间的包含关系、编译选项与源码文件之间的包含关系、源码文件与函数或变量之间的包含关系,以及函数之间的调用关系、变量之间的调用关系构建出Linux内核组织架构。
2.如权利要求1所述的方法,其特征在于根据函数之间的调用关系、变量之间的调用关系获取到编译选项之间的依赖关系。
3.如权利要求1所述的方法,其特征在于采用php语言读取虚目录与编译选项之间的包含关系、编译选项与源码文件之间的包含关系、源码文件与函数或变量之间的包含关系,以及函数之间的调用关系、变量之间的调用关系;然后调用raphael插件和jquery库来在网页上渲染出相应的Linux内核组织架构图。
4.如权利要求3所述的方法,其特征在于当在所述Linux内核组织架构图上选取某一编译选项时,根据该编译选项的名称查询该编译选项所包含的源码文件,并返回给前台界面。
5.如权利要求3所述的方法,其特征在于当在所述Linux内核组织架构图上选取某一源码文件时,根据该文件在源码目录下的路径名搜索该文件中定义的函数和变量,并返回给前台。
6.如权利要求3所述的方法,其特征在于当在所述Linux内核组织架构图上选取一函数时,根据该函数的函数名和文件路径查询该函数所依赖的函数,发送给前台并画出对应的矢量图。
7.如权利要求1所述的方法,其特征在于根据内核源代码的功能及逻辑关系划分虚目录,并建立源码文件在虚目录下的全路径与内核源码中全路径的一一对应关系。
8.如权利要求1或7所述的方法,其特征在于所述虚目录包括:进程管理,内存管理,系统运行,文件系统,网络模块,安全模块,设备管理和虚拟化。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310746159.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防粘的饭盒
- 下一篇:溢油跟踪定位实时监测水面油膜污染浮标装置