(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210381739.6 (22)申请日 2022.04.13 (71)申请人 飞腾信息技 术有限公司 地址 300450 天津市滨 海新区海 洋高新技 术开发区信安创业广场5号楼 (72)发明人 黄能超 李根 吕蓊鉴 吴楠  徐霞丽  (74)专利代理 机构 北京布瑞知识产权代理有限 公司 11505 专利代理师 张欣 (51)Int.Cl. G06F 9/445(2018.01) G06F 9/448(2018.01) G06F 9/455(2006.01) G06F 8/76(2018.01) (54)发明名称 运行软件的方法、 装置及机 器可读存 储介质 (57)摘要 提供一种运行软件的方法、 装置及机器可读 存储介质。 该方法可用于将目标软件从源机器移 植至目标机器。 该目标软件为基于语 言虚拟机的 软件。 源机器的处理器基于第一指令集架构, 目 标机器的处理器基于第二指令集架构, 且第一指 令集架构与第二指令集架构不同。 该方法包括: 在目标机器上加载目标软件的主程序; 响应于该 主程序调用目标软件的专有动态库, 调用该专有 动态库的翻译代码; 其中, 目标软件的主程序基 于第二指令集架构, 专有动态库基于第一指令集 架构。 本申请实施例在目标机器上直接加载目标 软件的主程序 (与目标机器基于相同的指令集架 构) , 而不需要对该主程序进行翻译, 从而能够提 升软件在目标机 器上的执 行性能。 权利要求书3页 说明书14页 附图6页 CN 114461306 A 2022.05.10 CN 114461306 A 1.一种运行软件的方法, 其特征在于, 所述方法用于将目标软件从源机器移植至目标 机器, 所述源机器的处理器基于第一指令集架构, 所述 目标机器的处理器基于第二指令集 架构, 所述第一指令集架构与所述第二指令集架构不同, 所述方法包括: 在所述目标机器上加载 所述目标 软件的主程序; 响应于所述主程序调用所述目标软件的专有动态库, 调用所述专有动态库的翻译代 码; 其中, 所述目标软件的主程序基于所述第二指令集架构, 所述专有动态库基于所述第 一指令集架构。 2.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 响应于所述专有动态库调用所述目标软件的公共动态库, 调用所述目标机器的原生公 共动态库。 3.根据权利要求2所述的方法, 其特 征在于, 所述方法还 包括: 对所述专有动态库的导入函数的地址进行重定向, 使得所述导入函数的地址指向第 一 指令片段的地址; 所述响应于所述专有动态库调用所述目标软件的公共动态库, 调用所述目标机器的原 生公共动态库, 包括: 响应于所述专有动态库调用所述导入函数, 利用所述导入函数的地址确定所述第 一指 令片段的地址; 对所述第一指令片段进行ABI转换, 得到第二指令片段, 所述第二指令片段指向所述目 标机器的原生公共动态库; 利用所述第二指令片段调用所述目标机器的原生公共动态库。 4.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 响应于所述主程序调用所述目标软件的公共动态库, 直接调用所述目标机器的原生公 共动态库。 5.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 对所述专有动态库的导出函数的地址进行重定向, 使得所述导出函数的地址指向第 三 指令片段的地址; 所述响应于所述主程序调用所述目标软件的专有动态库, 调用所述专有动态库的翻译 代码, 包括: 响应于所述主程序调用所述导出函数, 利用所述导出函数的地址确定所述第 三指令片 段的地址; 对所述第三指令片段进行ABI转换, 得到第四指令片段, 其中, 所述第四指令片段指 向 所述翻译代码; 利用所述第四指令片段调用所述翻译代码。 6.根据权利要求1所述的方法, 其特征在于, 所述响应于所述主程序调用所述目标软件 的专有动态库, 调用所述专有动态库的翻译代码, 包括: 响应于所述主程序调用所述目标软件的专有动态库, 调用所述目标机器上的翻译引擎 动态库;权 利 要 求 书 1/3 页 2 CN 114461306 A 2利用所述翻译引擎动态库对所述专有动态库进行翻译, 得到所述专有动态库的翻译代 码; 调用所述专有动态库的翻译代码。 7.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 加载所述目标 软件的动态库; 根据所述目标软件的动态库的elf文件, 识别所述目标软件的动态库所基于的指令集 架构; 如果所述目标软件的动态库基于所述第 一指令集架构, 调用翻译引擎动态库对所述目 标软件的动态库进行翻译和重 定向, 以定位所述目标 软件的动态库的翻译代码; 如果所述目标软件的动态库基于所述第 二指令集架构, 直接定位所述目标软件的动态 库。 8.根据权利要求1所述的方法, 其特征在于, 所述主程序为所述目标机器的原生语言虚 拟机。 9.根据权利 要求8所述的方法, 其特征在于, 所述原生语言虚拟机为java虚拟机或.net 虚拟机。 10.根据权利要求1所述的方法, 其特征在于, 所述第一指令集架构与所述第二指令集 架构中的一个为x86指令集架构, 所述第一指令集架构与所述第二指令集架构中的另一个 为arm指令集架构。 11.一种运行软件的装置, 其特征在于, 所述装置用于将目标软件从源机器移植至目标 机器, 所述源机器的处理器基于第一指令集架构, 所述 目标机器的处理器基于第二指令集 架构, 所述第一指令集架构与所述第二指令集架构不同, 所述装置包括: 加载模块, 用于在所述目标机器上加载 所述目标 软件的主程序; 第一调用模块, 用于响应于所述主程序调用所述目标软件的专有动态库, 调用所述专 有动态库的翻译代码; 其中, 所述目标软件的主程序基于所述第二指令集架构, 所述专有动态库基于所述第 一指令集架构。 12.根据权利要求1 1所述的装置, 其特 征在于, 所述装置还 包括: 第二调用模块, 用于响应于所述专有动态库调用所述目标软件的公共动态库, 调用所 述目标机器的原生公共动态库。 13.根据权利要求12所述的装置, 其特 征在于, 所述装置还 包括: 第一重定向模块, 用于对所述专有动态库的导入函数的地址进行重定向, 使得所述导 入函数的地址指向第一指令片段的地址; 所述第二调用模块用于响应于所述专有动态库调用所述导入函数, 利用所述导入函数 的地址确定所述第一指 令片段的地址; 对所述第一指 令片段进 行ABI转换, 得到第二指 令片 段, 所述第二指令片段指向所述 目标机器的原生公共动态库; 利用所述第二指令片段调用 所述目标机器的原生公共动态库。 14.根据权利要求1 1所述的装置, 其特 征在于, 所述装置还 包括: 第三调用模块, 用于响应于所述主程序调用所述目标软件的公共动态库, 直接调用所权 利 要 求 书 2/3 页 3 CN 114461306 A 3

.PDF文档 专利 运行软件的方法、装置及机器可读存储介质

安全报告 > 其他 > 文档预览
中文文档 24 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共24页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 运行软件的方法、装置及机器可读存储介质 第 1 页 专利 运行软件的方法、装置及机器可读存储介质 第 2 页 专利 运行软件的方法、装置及机器可读存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常2024-03-18 00:07:47上传分享
给文档打分
您好可以输入 255 个字符
网站域名是多少( 答案:github5.com )
评论列表
  • 暂时还没有评论,期待您的金玉良言
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。