一种兼容方法及装置制造方法及图纸

技术编号:10465999 阅读:112 留言:0更新日期:2014-09-24 18:04
本发明专利技术实施例提供一种兼容方法及装置,涉及计算机领域,能够支持多种操作系统的ABI兼容及已有的ABI兼容技术,并且方便以后扩展多种ABI兼容技术。该兼容方法包括:若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;对所述第一目标程序进行重映射;生成重映射表,所述重映射表指示所述第一目标程序与重映射后的所述第一目标程序之间的对应关系;根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;对所述映像进行重构;确定重构后的所述映像的重定向接口,以执行所述第一进程。

【技术实现步骤摘要】
一种兼容方法及装置
本专利技术涉及计算机领域,尤其涉及一种兼容方法及装置。
技术介绍
在数据中心操作系统中,使用ABI(ApplicationBinaryInterface,应用程序二进制接口)兼容技术是解决大量遗留应用程序问题的最直接的方法。ABI兼容技术指的是在宿主操作系统中模拟一个可供目标程序执行的二进制环境。采用ABI兼容技术时,目标程序不用更改就可在相应的宿主操作系统上执行。目前使用的ABI兼容技术主要有系统级ABI兼容技术和进程级ABI兼容技术。系统级ABI兼容技术指的是在宿主操作系统中采用虚拟机的方式模拟一个可供目标程序执行的虚拟环境;进程级ABI兼容技术指的是在宿主操作系统中采用动态链接的方式模拟一个可供目标程序执行的虚拟环境。现有技术中的ABI兼容技术为根据目标程序的操作系统在宿主操作系统中增加对应的可供目标程序执行的二进制环境,以使得该目标程序可在宿主操作系统模拟的二进制环境中执行,从而实现该目标程序在宿主操作系统中的兼容。然而,由于目前各个操作系统的兼容技术相对独立,因此,上述ABI兼容技术只能实现某一种操作系统的ABI兼容,而不能实现不同的多种操作系统的ABI兼容。
技术实现思路
本专利技术的实施例提供一种兼容方法及装置,能够支持多种操作系统的ABI兼容及支持已有的ABI兼容技术,并且方便以后扩展多种ABI兼容技术。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术实施例提供一种兼容方法,包括:若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;对所述第一目标程序进行重映射;生成重映射表,所述重映射表指示所述第一目标程序与重映射后的所述第一目标程序之间的对应关系;根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;对所述映像进行重构;确定重构后的所述映像的重定向接口,以执行所述第一进程。在第一方面的第一种可能的实现方式中,所述对所述第一目标程序进行重映射的方法具体包括:对所述第一目标程序进行段重组和/或偏移计算。结合前述的第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像具体包括:获取所述第一目标程序中包含的符号表及重定位表;根据所述重映射表,将重映射后的所述第一目标程序加载至所述本地内存中,并根据所述符号表及重定位表,对所述重映射后的所述第一目标程序进行重定位,以生成所述映像。结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述对所述映像进行重构包括:对所述映像进行映像共享重构和/或二进制翻译重构。结合前述的第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,所述确定重构后的所述映像的重定向接口的方法具体包括:确定重构后的所述映像的重定向目标,所述重定向目标为本地中与重构后的所述映像对应的接口;执行所述重定向目标,以确定重构后的所述映像的重定向接口。结合前述的第一方面或第一方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。第二方面,本专利技术实施例提供一种兼容设备,包括:创建单元,用于若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;映射单元,用于对所述第一目标程序进行重映射;生成单元,用于生成重映射表,所述重映射表指示所述第一目标与重映射后的所述第一目标程序之间的对应关系;加载单元,用于根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;处理单元,用于对所述映像进行重构;所述处理单元,还用于确定重构后的所述映像的重定向接口,以执行所述第一进程。在第二方面的第一种可能的实现方式中,所述映射单元,具体用于对所述第一目标程序进行段重组和/或偏移计算。结合前述的第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元,具体用于获取所述第一目标程序中包含的符号表及重定位表;以及所述加载单元,具体用于根据所述重映射表,将重映射后的所述第一目标程序加载至所述本地内存中,并根据所述符号表及重定位表,对所述重映射后的所述第一目标程序进行重定位,以生成所述映像。结合前述的第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述处理单元,用于对所述映像进行映像共享重构和/或二进制翻译重构。结合前述的第二方面或第二方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,所述处理单元,具体用于确定重构后的所述映像的重定向目标,以及执行所述重定向目标,以确定重构后的所述映像的重定向接口,所述重定向目标为本地中与重构后的所述映像对应的接口。结合前述的第二方面或第二方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,所述加载单元,还用于在所述处理单元执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。本专利技术实施例提供一种兼容方法及装置,通过若第一目标程序为本地已注册的目标程序,则为第一目标程序创建第一进程,并对第一目标程序进行重映射,以生成重映射表,重映射表指示第一目标程序与重映射后的第一目标程序之间的对应关系,然后根据重映射表,将重映射后的第一目标程序加载至第一进程对应的本地内存中,以生成重映射后的第一目标程序的映像,以及对映像进行重构,并确定重构后的映像的重定向接口,进而以执行第一进程。通过该方案,若第三方操作系统的第一目标程序需在宿主计算机的操作系统中执行,且第一目标程序为宿主计算机的操作系统已注册的目标程序,则上述兼容方法可用于支持该第一目标程序在宿主计算机的操作系统中的兼容,同时能够支持多种操作系统的ABI兼容及已有的ABI兼容技术,并且方便以后扩展多种ABI兼容技术。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种兼容方法的方法流程图一;图2为本专利技术实施例提供的一种兼容方法的方法流程图二;图3为本专利技术实施例提供的兼容设备的结构示意图一;图4为本专利技术实施例提供的兼容设备的结构示意图二;图5为本专利技术实施例提供的ABI兼容接口的架构示意图;图6为本专利技术实施例提供的兼容状态机的架构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例本文档来自技高网...
一种兼容方法及装置

【技术保护点】
一种兼容方法,其特征在于,包括:若第一目标程序为本地已注册的目标程序,则为所述第一目标程序创建第一进程;对所述第一目标程序进行重映射;生成重映射表,所述重映射表指示所述第一目标程序与重映射后的所述第一目标程序之间的对应关系;根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;对所述映像进行重构;确定重构后的所述映像的重定向接口,以执行所述第一进程。

【技术特征摘要】
1.一种兼容方法,其特征在于,包括:若第一目标程序为本地已注册的目标程序,则宿主计算机为所述第一目标程序创建第一进程;所述第一目标程序为与所述宿主计算机所安装的操作系统不同的第三方操作系统中的目标程序;对所述第一目标程序进行重映射;生成重映射表,所述重映射表指示所述第一目标程序与重映射后的所述第一目标程序之间的对应关系;根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像;对所述映像进行重构;确定重构后的所述映像的重定向接口,以执行所述第一进程。2.根据权利要求1所述的兼容方法,其特征在于,所述对所述第一目标程序进行重映射的方法具体包括:对所述第一目标程序进行段重组和/或偏移计算。3.根据权利要求1或2所述的兼容方法,其特征在于,所述根据所述重映射表,将重映射后的所述第一目标程序加载至所述第一进程对应的本地内存中,以生成重映射后的所述第一目标程序的映像具体包括:获取所述第一目标程序中包含的符号表及重定位表;根据所述重映射表,将重映射后的所述第一目标程序加载至所述本地内存中,并根据所述符号表及重定位表,对所述重映射后的所述第一目标程序进行重定位,以生成所述映像。4.根据权利要求1-2任一项所述的兼容方法,其特征在于,所述对所述映像进行重构包括:对所述映像进行映像共享重构和/或二进制翻译重构。5.根据权利要求3所述的兼容方法,其特征在于,所述对所述映像进行重构包括:对所述映像进行映像共享重构和/或二进制翻译重构。6.根据权利要求1-2任一项所述的兼容方法,其特征在于,所述确定重构后的所述映像的重定向接口的方法具体包括:确定重构后的所述映像的重定向目标,所述重定向目标为本地中与重构后的所述映像对应的接口;执行所述重定向目标,以确定重构后的所述映像的重定向接口。7.根据权利要求3所述的兼容方法,其特征在于,所述确定重构后的所述映像的重定向接口的方法具体包括:确定重构后的所述映像的重定向目标,所述重定向目标为本地中与重构后的所述映像对应的接口;执行所述重定向目标,以确定重构后的所述映像的重定向接口。8.根据权利要求4所述的兼容方法,其特征在于,所述确定重构后的所述映像的重定向接口的方法具体包括:确定重构后的所述映像的重定向目标,所述重定向目标为本地中与重构后的所述映像对应的接口;执行所述重定向目标,以确定重构后的所述映像的重定向接口。9.根据权利要求1-2任一项所述的兼容方法,其特征在于,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。10.根据权利要求3所述的兼容方法,其特征在于,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。11.根据权利要求4所述的兼容方法,其特征在于,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。12.根据权利要求6所述的兼容方法,其特征在于,在执行所述第一进程的过程中,若所述映像缺失,则根据所述重映射表,重新将重映射后的所述第一目标程序加载至所述本地内存中,以生成所述映像。13.一种兼容设备,其特征在...

【专利技术属性】
技术研发人员:谭崇康
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1