运行程序的方法、终端与流程

文档序号:17089548发布日期:2019-03-13 23:17阅读:357来源:国知局
运行程序的方法、终端与流程

本发明涉及通信领域,具体而言,涉及一种运行程序的方法、终端。



背景技术:

在相关技术中,长久以来,intel(x86架构的cpu)和windows形成的wintel联盟长期占领这pc和服务器市场,建立了良好的生态环境,其它非x86架构的cpu发展受限,甚至部分架构几乎已消失。

随着移动互联相关软硬件技术飞速发展,进阶精简指令集机器(advancedriscmachine,简称为arm)架构的cpu飞速发展,在移动领域占据了主导地位,逐渐建立了自己的生态。

另一方面,在国家层面的信息安全和国产化进程的快速推进的大背景下,国产cpu(典型的有mips架构(精简指令集,microprocessorwithoutinterlockedpipedstagesarchitecture)的loongson和arm架构的飞腾,运行开源的linux系统)也得到了快速发展,并在国内特定领域替换了x86架构,并逐步延伸至其它领域。

但由于非x86架构的cpu发展起步晚,相比x86来说,生态相对较差,而由于wintel联盟繁荣已久,导致大量用户对其产生了严重依赖,而windows操作系统中的绝大部分应用程序都是已经编译完成的二进制程序,由于各种原因(比如没有源码、平台兼容性问题),导致这些应用没有相应的linux版本。所以有迫切的在非x86环境中直接运行windows上的二进制应用程序的需求。

但实际上,由于windows和其它操作系统的api接口不同,针对windows开发的应用程序无法运行于其它os之上;另一方面,由于x86架构cpu和其它架构cpu的指令集不兼容,导致x86架构cpu环境中编译好的二进制程序无法运行于其它cpu架构环境中。这两方面原因导致,针对windows在x86架构cpu环境中的二进制应用程序无法在非x86和非windows环境中运行。

可以说,windows二进制应用程序的兼容性问题,是当前非x86架构硬件和操作系统推广过程中最大的、也是最难逾越的障碍之一。

针对上述问题,相关技术中的解决方案包括以下几种:

1、虚拟机。即在非x86的主机环境中运行一个x86架构的完整的虚拟机,虚拟机中运行windows操作系统,在虚拟机中的windows系统之上运行x86的windows二进制呈现。该方案是相关技术中针对跨cpu架构、跨操作系统应用兼容问题的最主要的方案,其中,虚拟机有多种实现方式,典型的如商用的vmware,开源的kvm等,目前相关技术已经比较成熟。但该方案有如下主要问题:

1)需要硬件支持(尤其是cpu),目前仅有x86架构支持相对比较完善,非x86架构(如loongson)支持情况不太理想,在硬件支持不好的情况下,其指令模拟完全依赖软件进行,效率非常低。

2)需要模拟完整的系统(包括cpu、外设、bios等),虚拟机体量比较大,需要消耗比较多的系统资源,同时性能比较差。

2、指令模拟器+windowapi模拟器。即使用windowapi模拟器来解决windows和非windows系统之间的api兼容问题,同时使用指令模拟器来解决x86和非x86架构指令集兼容问题。其中,windowapi模拟器是一个能够在多种依从可移植的操作系统接口上运行windows应用的兼容层,目前有相应的开源技术,它将windowsapi调用翻译成为posix调用,其进行api级别的翻译,而非cpu指令的翻译;指令模拟器进行跨cpu架构的指令翻译,比如将x86指令翻译成对应的arm或mips指令,现有典型的指令模拟器如qemu、bochs等。该方案与方案1的最主要的差别在于:该方案不模拟整个系统,仅针对应用程序的用户态部分进行指令翻译,当执行到系统调用时,调转到主机内核中执行,执行完成后返回到用户态继续执行;如此,该方案更轻量级,消耗资源更少,相比纯软件模拟的虚拟机,性能更好。但该方案面临的最大问题还是性能问题,由于仅能通过软件进行指令模拟,而windowapi模拟器自身的体量也比较大(需要提供基本的windowsapi和运行环境),需要对windowapi模拟器和应用程序进行指令模拟,效率比较低。较为典型的是使用硬件指令模拟器和windowapi模拟器实现。

针对上述存在的性能问题,相关技术中对其实现进行了改进,主要改进思路均为:将整个windowapi模拟器运行于模拟器之外,使用本地编译的windowapi模拟器,仅模拟应用程序依赖的windows库,如此,可以减少软件指令翻译的工作量,提升应用程序运行效率。其实现思路为:在执行指令模拟时,通过一定的手段(例如通过判断call和jmp指令;或者在兼容库各函数入口插入异常指令,在异常处理函数中)判断被调用的接口是否为windows兼容接口,如果是,则直接调转到本地编译的相应库(windowapi模拟器中提供)中的相应位置执行,执行完成后再做类似的跳转,回到原有流程执行。类似的改进从原理上,确实能提升该方案的性能,但其存在的主要问题为:实现太复杂,需要对模拟器和windowapi模拟器进行深度改造,在指令级别的处理流程上进行改造和优化,需要考虑参数处理、地址翻译跳转以及各种异常等相当复杂的逻辑处理,极易出现问题,稳定性堪忧,难以达到真实可用的标准。

针对相关技术中非x86架构主机环境中运行windows程序稳定性差的问题,目前还没有有效的解决方案。



技术实现要素:

本发明实施例提供了一种运行程序的方法、终端,以至少解决相关技术中非x86架构主机环境中运行windows程序稳定性差的问题。

根据本发明的一个实施例,提供了一种运行程序的方法,包括:非x86架构的主机使用视图操作系统应用程序编程接口windowsapi模拟器运行windows应用程序;其中,所述windowsapi模拟器包括:位于虚拟机之内windowsapi模拟器客户端,位于所述虚拟机之外的windowsapi模拟器服务端,其中,所述虚拟机用于模拟所述windows应用程序的指令。

可选地,非x86架构的主机使用视图操作系统应用程序编程接口windowsapi模拟器运行windows应用程序,包括:所述windowsapi模拟器客户端执行所述windows应用程序,将所述windows应用程序调用windows系统的api接口的调用请求发送至所述windowsapi模拟器服务端;所述windowsapi模拟器服务端在所述主机的本地接口实现所述调用请求获得实现结果,其中,所述本地接口由所述windowsapi模拟器客户端向所述windowsapi模拟器服务端指示;所述windowsapi模拟器客户端接收所述实现结果,继续执行所述windows应用程序。

可选地,所述虚拟机为硬件指令模拟器,将所述调用请求发送至所述windowsapi模拟器服务端,包括:使用所述硬件指令模拟器模拟所述调用请求为所述主机所属架构的指令;发送所述指令至所述windowsapi模拟器服务端。

可选地,非x86架构的主机使用windowsapi模拟器运行windows应用程序之前,所述方法包括:所述主机检测待执行程序的格式;依据所述格式为所述待执行格式指定模拟器,其中,在确定所述格式为windows应用程序的情况下,使用windowsapi模拟器运行windows应用程序。

可选地,在所述主机为进阶精简指令集机器arm架构时,所述虚拟机用于实现x86架构指令到arm指令的模拟。

在所述主机为精简指令集mips架构时,所述虚拟机用于实现x86架构指令到mips指令的模拟。

根据本发明的另一个实施例,提供了一种终端,安装有非x86架构的主机,包括:视图操作系统应用程序编程接口windowsapi模拟器,用于运行windows应用程序;其中,所述windowsapi模拟器包括:位于虚拟机之内windowsapi模拟器客户端,位于所述虚拟机之外的windowsapi模拟器服务端,其中,所述虚拟机用于模拟所述windows应用程序的指令。

可选地,所述windowsapi模拟器客户端,用于执行所述windows应用程序,将所述windows应用程序调用windows系统的api接口的调用请求发送至所述windowsapi模拟器服务端;所述windowsapi模拟器服务端,用于在所述主机的本地接口实现所述调用请求获得实现结果,其中,所述本地接口由所述windowsapi模拟器客户端向所述windowsapi模拟器服务端指示;所述windowsapi模拟器客户端,还用于接收所述实现结果,继续执行所述windows应用程序。

可选地,在所述虚拟机为硬件指令模拟器时,所述硬件指令模拟器,用于模拟所述调用请求为所述主机所属的指令;所述windowsapi模拟器客户端发送模拟后的指令至所述windowsapi模拟器服务端。

根据本发明的另一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述可选实施例任一项中所述的方法。

根据本发明的另一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述可选实施例任一项中所述的方法。

通过本发明,非x86架构的主机包括位于虚拟机之内windowsapi模拟器客户端,位于该虚拟机之外的windowsapi模拟器服务端,在主机需要执行windows程序时,由虚拟机内的windowsapi模拟器客户端调用windows程序,结合虚拟机外的windowsapi模拟器服务端,二者使用当前主机的接口资源运行windows程序,即虚拟机内的windowsapi模拟器客户端调用windows程序仅进行程序调用,并将windows指令转换至当前主机架构的指令,使用虚拟机外的windowsapi模拟器服务端来执行程序实现。采用上述方案,解决了相关技术中非x86架构主机环境中运行windows程序稳定性差的问题,在保证在非x86主机中运行windows程序的基础上,提升了程序运行的稳定性,降低了虚拟机性能要求,节省了主机功耗。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的运行程序的方法流程图;

图2是根据本优选实施例的运行装置的模块示意图;

图3是根据优选实施例的实施方式一的流程示意图;

图4是根据优选实施例的实施方式二的流程示意图;

图5是根据优选实施例的实施方式三的流程示意图;

图6是根据优选实施例的硬件指令模拟器的工作流程图;

图7是根据优选实施例的windowsapi模拟器的工作流程图;

图8是根据优选实施例的本地操作系统的工作流程图;

图9是本发明实施例的一种运行程序的方法的移动终端的硬件结构框图。

具体实施方式

实施例一

在本实施例中提供了一种运行于终端的运行程序的方法,图1是根据本发明实施例的运行程序的方法流程图,如图1所示,该流程包括如下步骤:

步骤s102,非x86架构的主机使用视图操作系统应用程序编程接口windowsapi模拟器运行windows应用程序;

步骤s104,其中,该windowsapi模拟器包括:位于虚拟机之内windowsapi模拟器客户端,位于该虚拟机之外的windowsapi模拟器服务端,其中,该虚拟机用于模拟该windows应用程序的指令。

通过本发明,非x86架构的主机包括位于虚拟机之内windowsapi模拟器客户端,位于该虚拟机之外的windowsapi模拟器服务端,在主机需要执行windows程序时,由虚拟机内的windowsapi模拟器客户端调用windows程序,结合虚拟机外的windowsapi模拟器服务端,二者使用当前主机的接口资源运行windows程序,即虚拟机内的windowsapi模拟器客户端调用windows程序仅进行程序调用,并将windows指令转换至当前主机架构的指令,使用虚拟机外的windowsapi模拟器服务端来执行程序实现。采用上述方案,解决了相关技术中非x86架构主机环境中运行windows程序稳定性差的问题,在保证在非x86主机中运行windows程序的基础上,提升了程序运行的稳定性,降低了虚拟机性能要求,节省了主机功耗。

可选地,非x86架构的主机使用视图操作系统应用程序编程接口windowsapi模拟器运行windows应用程序,包括:该windowsapi模拟器客户端执行该windows应用程序,将该windows应用程序调用windows系统的api接口的调用请求发送至该windowsapi模拟器服务端;该windowsapi模拟器服务端在该主机的本地接口实现该调用请求获得实现结果,其中,该本地接口由该windowsapi模拟器客户端向该windowsapi模拟器服务端指示;该windowsapi模拟器客户端接收该实现结果,继续执行该windows应用程序。

可选地,该虚拟机为硬件指令模拟器,将该调用请求发送至该windowsapi模拟器服务端,包括:使用该硬件指令模拟器模拟该调用请求为该主机所属架构的指令;发送该指令至该windowsapi模拟器服务端。

可选地,非x86架构的主机使用windowsapi模拟器运行windows应用程序之前,该方法包括:该主机检测待执行程序的格式;依据该格式为该待执行格式指定模拟器,其中,在确定该格式为windows应用程序的情况下,使用windowsapi模拟器运行windows应用程序。

可选地,在该主机为进阶精简指令集机器arm架构时,该虚拟机用于实现x86架构指令到arm指令的模拟;在该主机为精简指令集mips架构时,该虚拟机用于实现x86架构指令到mips指令的模拟。需要补充的是,不局限于arm结构和mips结构,还可以包括其他非x86架构。

下面结合本发明优选实施例进行详细说明。

本优选实施例要解决的技术问题在于:相关技术中的针对跨cpu架构、跨操作系统的应用兼容性问题的实现方案存在不同程度的缺陷,无法满足实用需求。

为解决上述问题,本优选实施例提供一种在非x86环境中运行windows二进制程序的方法。该方法利用硬件指令模拟器接近跨cpu的指令兼容性问题;利用windowsapi模拟器(包括windowsapi模拟客户端和本地windowsapi模拟服务器)解决跨操作系统的api兼容性问题;同时,通过本地windowsapi模拟服务器将主要的windowsapi模拟工作置于硬件指令模拟器之外,仅让硬件指令模拟器模拟windows二进制程序(及其相关库)的用户态部分指令和windowsapi模拟客户端,如此,可大幅提升模拟效率。

图2是根据本优选实施例的运行装置的模块示意图,如图2所示,本优选实施例提出的一种在非x86环境中运行windows二进制程序的方法包括以下模块:硬件指令模拟器、windowsapi模拟器(包括windowsapi模拟客户端和本地windowsapi模拟服务器)、windows二进制应用程序、本地操作系统。如下分别进行说明:

1、硬件指令模拟器。进行硬件指令的翻译(或模拟),主要实现x86架构指令到非x86架构指令的翻译如:

1)当物理主机为arm架构时,硬件指令模拟器拥有实现x86架构指令到arm指令的翻译。

1)当物理主机为mips架构时,硬件指令模拟器拥有实现x86架构指令到mips指令的翻译。

其使用物理主机提供的工具链编译,运行于本地操作系统之上;且并不模拟完整的系统,而仅针对具体的应用程序用户态部分指令进行动态翻译(或模拟)。

2、windowsapi模拟器,包括windowsapi模拟客户端和本地windowsapi模拟服务器两个部分:

1)windowsapi模拟客户端,使用x86工具链编译,运行于硬件指令模拟器之内,需要进行指令模拟。主要功能包括:

a、解析和加载windowspe格式可执行文件和动态链接库。

b、向windows二进制应用程序提供与windows系统一致的api接口,供其直接调用。

c、将windows二进制应用程序调用的windowsapi封装成请求,并向本地windowsapi模拟服务器发送windowsapi模拟请求。

d、接收服务器的模拟结果,返回给windows二进制应用程序。

2)本地windowsapi模拟服务端,使用物理主机提供的本地工具链编译,运行于硬件指令模拟器之外,不需要作进行指令翻译。主要功能包括:

a、接收windowsapi模拟客户端发来的请求

b、调用物理主机中运行的操作系统提供的本地接口实现相应功能。

c、将执行结果发回windowsapi模拟客户端。

3、本地操作系统,即运行于物理主机上的操作系统。主要用途包括:

a、为向上层应用(包括windowsapi服务端和硬件指令模拟器)提供接口,实现对应windowsapi需要提供的功能。

b、提供环境供硬件指令模拟器运行。

c、提供配置,针对可执行程序的格式,指定其执行时使用的硬件指令模拟器。

d、识别运行的可执行程序的格式,在执行可执行程序时,根据配置使用相应的模拟器进行模拟。

4、windows二进制应用程序,即原运行于x86架构windows系统中的二进制应用程序,使用x86工具链编译,需要进行指令模拟,由物理指令模拟器进行指令翻译(或模拟)。

本优选实施例提出的一种在非x86环境中运行windows二进制程序的方法,典型的操作步骤如下:

步骤一、在非x86架构的主机环境中使用windowsapi模拟器运行使用x86工具链编译的windows二进制应用程序。

步骤二、本地操作系统根据配置,使用相应的硬件指令模拟器进行模拟每条指令的执行。每条指令执行时,都会由硬件指令模拟器对每条指令进行模拟(或翻译),实际执行的是模拟(或翻译)后的指令。这个模拟(或翻译)过程贯穿始终。

步骤三、启动windowsapi模拟器客户端,解析、链接和加载相应的可执行文件及其依赖的动态库。

步骤四、windowsapi模拟器客户端启动本地windowsapi模拟器服务端。

步骤五、windowsapi模拟器客户端跳转到应用程序的入口处开始执行。

步骤六、确定应用程序调用windows系统提供的api接口。

步骤七、windowsapi模拟器客户端封装调用请求,并发送给本地windowsapi模拟器服务端。

步骤八、本地windowsapi模拟器服务端收到请求,并调用本地操作系统提供的接口实现相应功能,并将执行结果发回给客户端。

步骤九、windowsapi模拟器客户端将执行结果反馈给windows二进制应用程序。

步骤十、应用程序继续执行。

下面是本优选实施例的具体实施方式

为使本优选实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

图3是根据优选实施例的实施方式一的流程示意图,如图3所示,具体包括如下步骤:

步骤31,在loongsoncpu的主机环境(安装linux操作系统)中使用windowsapi模拟器运行使用x86工具链编译的windows二进制应用程序。

步骤301,本地操作系统(例如:linux系统)根据配置,使用相应的硬件指令模拟器进行模拟每条指令的执行。每条指令执行时,都会由硬件指令模拟器对每条指令进行模拟(或翻译)。

步骤302,然后cpu执行模拟(或翻译)后的指令。这个模拟(或翻译)过程贯穿始终。

步骤32,启动windowsapi模拟器客户端,解析、链接和加载相应的可执行文件及其依赖的动态库。

步骤33,启动本地windowsapi模拟器服务端。

步骤34,跳转到应用程序的入口处开始执行。

步骤35,应用程序调用windows系统提供的api接口。

步骤36,windowsapi模拟器客户端封装调用请求,并发送给本地windowsapi模拟器服务端。

步骤37,本地windowsapi模拟器服务端收到请求,并调用本地操作系统(linux系统)提供的接口实现相应功能,并将执行结果发回给客户端。

步骤38,windowsapi模拟器客户端将执行结果反馈给windows二进制应用程序。

步骤39,应用程序继续执行。

图4是根据优选实施例的实施方式二的流程示意图,具体包括如下步骤:

步骤41,在飞腾cpu的主机环境(安装linux系统)中,使用windowsapi模拟器运行使用x86工具链编译的windows二进制应用程序。

步骤401,本地操作系统(linux系统)根据配置,使用相应的硬件指令模拟器进行模拟每条指令的执行。每条指令执行时,都会由硬件指令模拟器对每条指令进行模拟(或翻译)。

步骤402,然后cpu执行模拟(或翻译)后的指令。这个模拟(或翻译)过程贯穿始终。

步骤42,启动windowsapi模拟器客户端,解析、链接和加载相应的可执行文件及其依赖的动态库。

步骤43,启动本地windowsapi模拟器服务端。

步骤44,跳转到应用程序的入口处开始执行。

步骤45,应用程序调用windows系统提供的api接口。

步骤46,windowsapi模拟器客户端封装调用请求,并发送给本地windowsapi模拟器服务端。

步骤47,本地windowsapi模拟器服务端收到请求,并调用本地操作系统(linux系统)提供的接口实现相应功能,并将执行结果发回给客户端。

步骤48,windowsapi模拟器客户端将执行结果反馈给windows二进制应用程序。

步骤49,应用程序继续执行。

图5是根据优选实施例的实施方式三的流程示意图,具体包括如下步骤

步骤51,在armcpu的终端(如手机、机顶盒等)环境中(安装andriod操作系统),使用windowsapi模拟器运行windowsce二进制应用程序。

步骤501,本地操作系统(andriod系统)根据配置,使用相应的硬件指令模拟器进行模拟每条指令的执行。每条指令执行时,都会由硬件指令模拟器对每条指令进行模拟(或翻译)。

步骤502,然后cpu执行模拟(或翻译)后的指令。这个模拟(或翻译)过程贯穿始终。

步骤52,启动windowsapi模拟器客户端,解析、链接和加载相应的可执行文件及其依赖的动态库。

步骤53,启动本地windowsapi模拟器服务端。

步骤55,跳转到应用程序的入口处开始执行。

步骤55,应用程序调用windows系统提供的api接口。

步骤56,windowsapi模拟器客户端封装调用请求,并发送给本地windowsapi模拟器服务端。

步骤57,本地windowsapi模拟器服务端收到请求,并调用本地操作系统(linux系统)提供的接口实现相应功能,并将执行结果发回给客户端。

步骤58,windowsapi模拟器客户端将执行结果反馈给windows二进制应用程序。

步骤59,应用程序继续执行。

图6是根据优选实施例的硬件指令模拟器的工作流程图,如图6所示,包括如下步骤:

步骤61,硬件指令模拟器执行指定x86指令。

步骤62,在缓存中查找是否已有相应的指令(或连续的多条指令)翻译(或模拟)结果(翻译后的指令可以被非86架构执行)。

步骤63,如果有,直接从缓存中读取相应结果,然后执行。

步骤64,如果没有,则对相应的指令(或连续的多条指令)进行翻译(或模拟),并将结果进行缓存。

步骤65,主机cpu硬件执行翻译(或模拟)后的本地cpu指令。

图7是根据优选实施例的windowsapi模拟器的工作流程图,如图7所示,包括如下步骤:

步骤71,应用程序调用windows系统提供的api接口。

步骤72,windowsapi模拟器客户端封装调用请求,并发送给本地windowsapi模拟器服务端。

步骤73,本地windowsapi模拟器服务端收到请求,并调用本地操作系统(andriod系统)提供的接口实现相应功能,并将执行结果发回给客户端。

步骤74,windowsapi模拟器客户端将执行结果反馈给windows二进制应用程序。

步骤75,应用程序继续执行。

图8是根据优选实施例的本地操作系统的工作流程图,如图7所示,包括如下步骤:

步骤81,用户针对待执行程序的格式(非x86格式或者x86格式),通过本地操作系统提供的配在接口,指定其执行时使用的模拟器。需要补充的是,在待执行程序是非x86格式时,在当前非x86主机中正常运行即可,不需要通过上述的硬件指令模拟器来运行。

步骤82,在本地操作系统中运行使用x86工具链编译的windows二进制应用程序。

步骤83,本地操作系统识别运行的可执行程序的格式,在执行可执行程序时,根据配置使用相应的模拟器执行该可执行程序。

本优选实施例的上述方法的有益效果如下:

1、能实现x86架构中编译的windows二进制应用程序无需任何修改即能运行于非x86架构的环境中,能一定程度解决windows二进制应用程序兼容性问题,有助于建立和丰富非x86架构硬件的软件生态。

2、由于将windowsapi模拟服务器运行于本地,能大大减少硬件指令模拟器的负担,从而解决现有部分方案中存在的性能问题。

3、由于使用客户端/服务器模型实现,客户端和服务端之间的通信基于标准系统接口,仅需使用标准系统接口即能实现相关功能,实现复杂度较低,稳定性更能得到保障,相比相关技术更优。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例二

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图9是本发明实施例的一种运行程序的方法的移动终端的硬件结构框图。如图9所示,移动终端90可以包括一个或多个(图中仅示出一个)处理器902(处理器902可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器904、以及用于通信功能的传输装置906。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端90还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。

存储器904可用于存储应用软件的软件程序以及模块,如本发明实施例中的运行程序的方法对应的程序指令/模块,处理器902通过运行存储在存储器904内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器904可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器904可进一步包括相对于处理器902远程设置的存储器,这些远程存储器可以通过网络连接至移动终端90。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端90的通信供应商提供的无线网络。在一个实例中,传输装置906包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置906可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

根据本发明的另一个实施例,提供了一种终端,安装有非x86架构的主机,包括:视图操作系统应用程序编程接口windowsapi模拟器,用于运行windows应用程序;其中,该windowsapi模拟器包括:位于虚拟机之内windowsapi模拟器客户端,位于该虚拟机之外的windowsapi模拟器服务端,其中,该虚拟机用于模拟该windows应用程序的指令。

可选地,该windowsapi模拟器客户端,用于执行该windows应用程序,将该windows应用程序调用windows系统的api接口的调用请求发送至该windowsapi模拟器服务端;该windowsapi模拟器服务端,用于在该主机的本地接口实现该调用请求获得实现结果,其中,该本地接口由该windowsapi模拟器客户端向该windowsapi模拟器服务端指示;该windowsapi模拟器客户端,还用于接收该实现结果,继续执行该windows应用程序。

可选地,在该虚拟机为硬件指令模拟器时,该硬件指令模拟器,用于模拟该调用请求为该主机所属的指令;该windowsapi模拟器客户端发送模拟后的指令至该windowsapi模拟器服务端。

实施例三

根据本发明的另一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述可选实施例任一项中所述的方法。

实施例四

根据本发明的另一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述可选实施例任一项中所述的方法。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1