[发明专利]一种Linux系统上动态链接库可视化依赖树的生成方法有效
申请号: | 202211552765.7 | 申请日: | 2022-12-06 |
公开(公告)号: | CN115543294B | 公开(公告)日: | 2023-03-17 |
发明(设计)人: | 李婷;魏炯超;张赛丹;吕沙 | 申请(专利权)人: | 麒麟软件有限公司 |
主分类号: | G06F8/34 | 分类号: | G06F8/34;G06F8/41 |
代理公司: | 北京汇智英财专利代理有限公司 11301 | 代理人: | 陈雅静 |
地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 系统 动态 链接 可视化 依赖 生成 方法 | ||
本发明涉及一种Linux系统上动态链接库可视化依赖树的生成方法,步骤为:S1、执行脚本程序generate_input函数,生成C程序的输入文件result.output;S2、将result.output输入二进制执行程序elf_parser进行分析,生成C程序的输出文件library.dot;S3、执行脚本程序handle_output函数,解析library.dot,最终画出依赖树结构图。本发明通过程序解析elf文件,将依赖层次关系保存到dot格式文件中,并结合脚本的方式,将引用次数加到数据节点中,从而实现了可视化树形结构的生成。
技术领域
本专利申请属于依赖树生成技术领域,更具体地说,是涉及一种Linux系统上动态链接库可视化依赖树的生成方法。
背景技术
应用兼容性是国内外操作系统厂商重点攻克的难题之一,是影响应用生态的关键因素。红帽、欧拉等服务器操作系统通过包的依赖关系划分,给出了系统上一些核心组件的重要性定义。麒麟桌面操作系统在统型工作中,为了能全面准确的定义系统中依赖库与应用程序的影响关系,除了借鉴红帽等发行版的核心组件定义思想外,还从依赖库的被依赖层次、被引用计数、ABI兼容率等多个维度去分析操作系统重要核心组件。
本发明开发的工具就是统型依赖库工作中的一个重要参考维度,我们考虑应用程序的依赖关系通常包括编译依赖和运行时依赖,应用程序的兼容主要从 API 和 ABI 的维度去进行分析。本发明开发了一套操作系统依赖库树形结构生成工具,可视化的标示出所有动态库的依赖层级关系与引用频次。
考虑到需要解析的库文件数量很大,使用 mmap 将磁盘文件映射到虚拟内存,程序可以采用指针的方式读写操作内存,完成对于依赖库文件的解析操作,避免频繁的 I/O操作。
与本专利申请最接近的现有技术是:一种软件包依赖关系检测方法,专利号:CN114327473A。
该技术指出,在软件安装过程中,常常会面临软件依赖的问题。通常情况下,安装时检测某版本软件依赖,会单独去检索这个版本的软件依赖包,如果还有依赖,就继续往下检索。当检索到没有依赖后,倒着把软件包进行安装,即可顺利完成所有软件和依赖的安装。这种做法存在一个无法解决的问题,即当往下检索时,可能会出现后面的软件包依赖前面的软件包的情况,从而形成死锁。
软件包依赖分析的现有方法包括基于集合分析的方法、基于分层图分析的方法等,其中效果较好的分层图分析方法的大致思路为:针对指定操作系统构建分层图,针对用户给定的某个软件,在图中查找依赖关系,最后将依赖关系进行导出。
该专利虽然也是分析操作系统中的依赖关系,但是它分析的维度是软件包,在生成的有向图中标示出包的依赖关系,无法计算动态库的被引用次数。这个专利接收输入是一组软件包,根据生成的有向关系依次安装各个软件包,与本发明的想要解决的问题场景不符。
为了能全面准确的定义系统中依赖库与应用程序的影响关系,在统型工作中提供新的维度去分析操作系统重要核心组件。本发明开发了一套操作系统依赖库树形结构生成工具,可视化的标示出所有动态库的依赖层级关系与引用频次。
发明内容
本发明需要解决的技术问题是提供一种Linux系统上动态链接库可视化依赖树的生成方法,可以可视化地标示出所有动态库的依赖层级关系与引用频次,直观性更好。
为了解决上述问题,本发明所采用的技术方案是:
一种Linux系统上动态链接库可视化依赖树的生成方法,包括如下步骤:
S1、编写脚本程序,执行脚本程序中的generate_input函数,生成C程序的输入文件result.output,输入文件result.output存储有应用程序的依赖库合集;
S2、将输入文件result.output输入二进制执行程序elf_parser进行分析,生成C程序的输出文件library.dot;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211552765.7/2.html,转载请声明来源钻瓜专利网。