[发明专利]一种兼容方法及装置有效
申请号: | 201310088109.0 | 申请日: | 2013-03-19 |
公开(公告)号: | CN104063234B | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 谭崇康 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/48 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 兼容 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种兼容方法及装置。
背景技术
在数据中心操作系统中,使用ABI(Application Binary Interface,应用程序二进制接口)兼容技术是解决大量遗留应用程序问题的最直接的方法。ABI兼容技术指的是在宿主操作系统中模拟一个可供目标程序执行的二进制环境。采用ABI兼容技术时,目标程序不用更改就可在相应的宿主操作系统上执行。
目前使用的ABI兼容技术主要有系统级ABI兼容技术和进程级ABI兼容技术。系统级ABI兼容技术指的是在宿主操作系统中采用虚拟机的方式模拟一个可供目标程序执行的虚拟环境;进程级ABI兼容技术指的是在宿主操作系统中采用动态链接的方式模拟一个可供目标程序执行的虚拟环境。
现有技术中的ABI兼容技术为根据目标程序的操作系统在宿主操作系统中增加对应的可供目标程序执行的二进制环境,以使得该目标程序可在宿主操作系统模拟的二进制环境中执行,从而实现该目标程序在宿主操作系统中的兼容。
然而,由于目前各个操作系统的兼容技术相对独立,因此,上述ABI兼容技术只能实现某一种操作系统的ABI兼容,而不能实现不同的多种操作系统的ABI兼容。
发明内容
本发明的实施例提供一种兼容方法及装置,能够支持多种操作系统的ABI兼容及支持已有的ABI兼容技术,并且方便以后扩展多种ABI兼容技术。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种兼容方法,包括:
若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;
对所述第一目标程序进行重映射;
生成重映射表,所述重映射表指示所述第一目标程序与重映射后的所述第一目标程序之间的对应关系;
根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;
对所述映像进行重构;
确定重构后的所述映像的重定向接口,以执行所述第一进程。
在第一方面的第一种可能的实现方式中,所述对所述第一目标程序进行重映射的方法具体包括:
对所述第一目标程序进行段重组和/或偏移计算。
结合前述的第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像具体包括:
获取所述第一目标程序中包含的符号表及重定位表;
根据所述重映射表,将重映射后的所述第一目标程序加载至所述本地内存中,并根据所述符号表及重定位表,对所述重映射后的所述第一目标程序进行重定位,以生成所述映像。
结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述对所述映像进行重构包括:
对所述映像进行映像共享重构和/或二进制翻译重构。
结合前述的第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,所述确定重构后的所述映像的重定向接口的方法具体包括:
确定重构后的所述映像的重定向目标,所述重定向目标为本地中与重构后的所述映像对应的接口;
执行所述重定向目标,以确定重构后的所述映像的重定向接口。
结合前述的第一方面或第一方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。
第二方面,本发明实施例提供一种兼容设备,包括:
创建单元,用于若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;
映射单元,用于对所述第一目标程序进行重映射;
生成单元,用于生成重映射表,所述重映射表指示所述第一目标与重映射后的所述第一目标程序之间的对应关系;
加载单元,用于根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;
处理单元,用于对所述映像进行重构;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310088109.0/2.html,转载请声明来源钻瓜专利网。