CN103136060B - 运行控制方法和运行控制装置 - Google Patents
运行控制方法和运行控制装置 Download PDFInfo
- Publication number
- CN103136060B CN103136060B CN201110376727.6A CN201110376727A CN103136060B CN 103136060 B CN103136060 B CN 103136060B CN 201110376727 A CN201110376727 A CN 201110376727A CN 103136060 B CN103136060 B CN 103136060B
- Authority
- CN
- China
- Prior art keywords
- executable program
- hardware structure
- operating system
- run
- electronic equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种运行控制方法及运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,所述运行控制方法具体包括:确定待运行的可执行程序;分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错。本发明避免了同一版本的操作系统对应用程序的处理报错的问题。
Description
技术领域
本发明属于电子领域,特别涉及一种运行控制方法和运行控制装置。
背景技术
目前,已经出现了多种多样的硬件架构,如X86架构、ARM架构,而操作系统也存在各种各样的版本,如Window版本的操作系统、Linux版本的操作系统、Android版本的操作系统、iOS版本的操作系统等。
不同版本的操作系统为了占领更多的市场,每个版本的操作系统都会针对不同的硬件架构衍生出多个分支,如即将推出的Win8操作系统就会针对X86架构和ARM架构推出两个分支,分别应用于X86架构和ARM架构。
发明人在实现本发明实施例的过程中发现,现有技术至少存在如下的缺点。
对于同一版本的操作系统,从用户角度来看,其可执行程序的表现形式相同(如图标、后缀等),但对可执行程序而言,虽然其对应于同一个操作系统版本,但在操作系统的一个分支/硬件架构下能够运行的可执行程序在同一操作系统的另一分支下,会出现无法运行并报错的情况,导致用户感受下降。
发明内容
本发明实施例的目的在于提供一种运行控制方法和运行控制装置,以保证不同硬件架构下的应用程序的正确处理。
为了实现上述目的,本发明实施例提供了一种运行控制方法,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,所述运行控制方法具体包括:
确定待运行的可执行程序;
分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错。
上述的运行控制方法,其中,所述第一操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台;
基于所述模拟平台运行所述第一操作系统;
利用基于所述模拟平台运行的第一操作系统执行所述可执行程序。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中;
接收所述第二电子设备运行所述可执行程序产生的运行数据;
根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
阻止所述可执行程序启动;
在所述第一电子设备输出所述可执行程序对应的硬件架构。
上述的运行控制方法,其中,所述分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果的步骤中,具体根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
上述的运行控制方法,其中,所述分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果的步骤具体包括:
获取所述可执行程序中的代码段;
解析所述代码段中包括的字节的机器码;
判断在所述第一硬件架构下所述机器码是否为有效的指令,获取所述第一分析结果;
其中,在所述第一硬件架构下所述机器码为有效的指令时,所述第一分析结果为是,否则为否。
为了实现上述目的,本发明实施例提供了一种运行控制方法,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述运行控制方法具体包括:
确定待运行的可执行程序;
分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错。
上述的运行控制方法,其中,所述第一操作系统和第二操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台;
基于所述模拟平台运行所述第二操作系统;
利用基于所述模拟平台运行的第二操作系统执行所述可执行程序。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
发送所述可执行程序到具有第二硬件架构,且安装有所述第二操作系统的第二电子设备中;
接收所述第二电子设备运行所述可执行程序产生的运行数据;
根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果。
上述的运行控制方法,其中,所述控制所述可执行程序的运行具体为:
阻止所述可执行程序启动;
在所述第一电子设备输出所述可执行程序对应的硬件架构。
上述的运行控制方法,其中,所述分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果的步骤中,具体根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否为应运行于第二操作系统的可执行程序。
上述的运行控制方法,其中,所述分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果的步骤具体包括:
获取所述可执行程序中的代码段;
解析所述代码段中包括的字节的机器码;
判断在所述第二硬件架构下所述机器码是否为有效的指令,获取所述第二分析结果;
其中,在所述第二硬件架构下所述机器码为有效的指令时,所述第二分析结果为是,否则为否。
为了实现上述目的,本发明实施例提供了一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第一分析模块,用于分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
第一控制模块,用于在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错。
上述的运行控制装置,其中,所述第一操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
上述的运行控制装置,其中,所述第一控制模块具体用于:
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
上述的运行控制装置,其中,所述第一分析模块具体用于所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
上述的运行控制装置,其中,所述第一分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第一判断单元,用于判断在所述第一硬件架构下所述机器码是否为有效的指令,获取所述第一分析结果;
其中,在所述第一硬件架构下所述机器码为有效的指令时,所述第一分析结果为是,否则为否。
为了实现上述目的,本发明实施例提供了一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第二分析模块,用于分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
第二控制模块,用于在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错。
上述的运行控制装置,其中,所述第一操作系统和第二操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
上述的运行控制装置,其中,所述第二控制模块具体用于:
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
上述的运行控制装置,其中,所述第二分析模块具体用于根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否为应运行于第二操作系统的可执行程序。
上述的运行控制装置,其中,所述第二分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第二判断单元,用于判断在所述第二硬件架构下所述机器码是否为有效的指令,获取所述第二分析结果;
其中,在所述第二硬件架构下所述机器码为有效的指令时,所述第二分析结果为是,否则为否。
本发明实施例具有以下有益效果:
本发明具体实施例中,当存在一可执行程序时,首先会通过分析该可执行程序,判断其是否能够运行于所述第一硬件架构(如X86架构,又或者ARM架构),当其不能在所述第一硬件架构运行时,会自行一控制处理,使其在用户指示运行时,不会报错,提高了用户体验。
附图说明
图1为本发明实施例的一种运行控制方法的流程示意图;
图2为本发明实施例的另一种运行控制方法的流程示意图;
图3为本发明实施例的一种运行控制装置的结构示意图;
图4为本发明实施例的另一种运行控制装置的结构示意图。
具体实施方式
本发明实施例的运行控制方法及运行控制装置中,首先分析待运行的可执行程序来确定其适应的硬件架构/操作系统,进而根据分析结果来对待运行的可执行程序进行相应处理,避免报错。
本发明其中一个实施例的一种运行控制方法应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,如图1所示,所述运行控制方法具体包括:
步骤11,确定待运行的可执行程序;
步骤12,分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
步骤13,在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错。
本发明具体实施例中,当存在一可执行程序时,首先会通过分析该可执行程序,判断其是否能够运行于所述第一硬件架构(如X86架构,又或者ARM架构),当其不能在所述第一硬件架构运行时,会自行一控制处理,使其在用户指示运行时,也不会出错。
在本发明的具体实施例中,上述的操作系统可以是已有的能够运行于多个硬件架构的操作系统(如Win8操作系统),也可以是将来现在只能运行于一个硬件架构,但具备扩展到在多个硬件架构下运行的操作系统。
而本发明的具体实施例中的硬件架构可以是目前应用非常广泛的X86架构、ARM架构,也可以是未来出现的硬件架构。
总之,本发明实施例适用于能够在至少两个硬件架构下运行的操作系统。
在本发明的一个实施例中,第一操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构为例进行详细说明。
在本发明的一个实施例中,控制所述可执行程序的运行,避免报错可以是通过多种方式来实现,分别说明如下。
<方式一>
在方式一中,以模拟平台的方式来实现。
这种方式下,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台;
基于所述模拟平台运行所述第一操作系统;
利用基于所述模拟平台运行的第一操作系统执行所述可执行程序。
下面以虚拟机这种模拟平台为例详细说明如下。
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
通过虚拟机软件,可以基于第一硬件架构模拟出另一个基于第二硬件架构的电子设备,这些虚拟机完全就像真正的计算机那样进行工作,可以安装操作系统、安装应用程序、访问网络资源等等。
目前流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和VirtualPC等,都能在Windows系统上虚拟出多个计算机。
因此,在方式一中,在判断出可执行程序无法运行于所述第一硬件架构时,则进一步判断该可执行程序是否能够运行于第二硬件架构,当可执行程序能够运行于第二硬件架构时,利用第一硬件架构的硬件启动一虚拟机,该虚拟机为第二硬件架构,然后基于该第二硬件架构的虚拟机来加载运行操作系统的另一个分支,然后利用该运行的操作系统分支来执行所述可执行程序。
对于在虚拟机中运行的应用程序而言,它就是一台真正的计算机,因此该应用程序能够得到正确的运行,而不会报错。
<方式二>
方式一中所采用的方案是一种在本地通过虚拟机来解决报错问题的方式,在方式二中,可以通过外部设备来处理。
这种方式下,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中;
接收所述第二电子设备运行所述可执行程序产生的运行数据;
根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果。
详细说明如下。
在方式二中,在判断出可执行程序无法运行于所述第一硬件架构时,则进一步判断该可执行程序是否能够运行于第二硬件架构,当可执行程序能够运行于第二硬件架构时,则寻找另一个电子设备,该电子设备具有第二硬件架构且安装有第一操作系统即可,并将所述可执行程序发送到寻找到的第二电子设备中,由第二电子设备来执行该可执行程序。
同时,该第二电子设备在接收到该可执行程序之后,即可利用基于第二硬件架构运行的第一操作系统来执行该可执行程序。
第二电子设备执行过程中,随时将数据返回第一电子设备,而第一电子设备接收所述第二电子设备运行所述可执行程序产生的运行数据后,即可基于该数据进行显示,使用户可以在第一电子设备上看到应用程序的运行情况。从用户角度来看,该应用程序得到了正确的运行,而不会报错。
<方式三>
上述两种方式下最终都执行了该可执行程序,但在方式三中通过提示用户的方式来避免报错。
这种方式下,所述控制所述可执行程序的运行具体为:
阻止所述可执行程序启动;
在所述第一电子设备输出所述可执行程序对应的硬件架构。
这种方式下,仅仅是阻止可执行程序的继续执行,而向用户通知所述可执行程序对应的硬件架构,而这种输出可以是音频的输出,也可以是显示的输出,在此不作具体限定。
本发明另一个实施例的一种运行控制方法,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,如图2所示,所述运行控制方法具体包括:
步骤21,确定待运行的可执行程序;
步骤22,分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
步骤23,在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错。
在此,先对相同的操作系统版本举例说明如下:
如用于x86架构的Win8系统和用于ARM架构的Win8系统具有相同的操作系统版本。
从另一个角度来看,所谓版本相同的操作系统就是同一个操作系统的针对不同硬件架构的不同分支。
在上述的实施方式中涉及到的硬件架构、操作系统与之前的硬件架构和操作系统完全相同,在此不作详细描述。
而控制所述可执行程序的运行与之前描述的实施方式的差异之处在于,其并不需要进一步分析可执行程序能够运行的硬件架构,其他处理完全相同,在此也不作进一步详细描述。
在本发明之前的两个实施方式中,其中一种需要判断可执行程序是否能够运行于所述第一硬件架构,而另一种实施方式需要判断是否为应运行于第二操作系统的可执行程序,可以发现,二者只不过对象的差异,所以可以采用相同的方式进行判断,而具体的判断可以通过多种方式实现,具体说明如下。
<方式一>
在方式一中,通过可执行程序的文件头的字段来进行判断,这种方式下具体根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
以Windows操作系统为例说明如下。
Windows操作系统下,可执行程序(.exe文件)符合PE的文件映像结构,其中包括有PE文件头部分。
而其中PE文件头结构定义为C语言格式,如下:
typedef struct_IMAGE_FILE_HEADER
{
WORD Machine;//该文件运行所需要的CPU
WORD NumberOfSections;//文件的节数目
DWORD TimeDateStamp;//文件创建日期和时间
DWORD PointerToSymbolTable;//用于调试
DWORD NumberOfSymbols;//符号表中符号个数
WORD SizeOfOptionalHeader;//OptionalHeader结构大小
WORD Characteristics;//文件信息标记,区分文件是exe还是dll
}IMAGE_FILE_HEADER,*PIMAGE_FILE_HEADER;
其中的Machine字段的赋值含义如下表所示,其中第一列为标志,第二列为取值,第三列为含义:
标志 | 值 | 含义 |
IMAGE_FILE_MACHINE-AM33 | 1d3 | 松下AM33 |
IMAGE_FILE_MACHINE_AMD64 | 8664 | X64 |
IMAGE_FILE_MACHINE_ARM | 1c0 | ARM小端 |
IMAGE_FILE_MACHINE_I386 | 14c | Intel 386家族及其兼容CPU |
…… | …… | …… |
从上表即可确定可执行程序对应的硬件架构,如取值为1c0,则对应的硬件架构为ARM,取值为14c,则对应的硬件架构为X86。
<方式二>
在方式二中,通过解析代码段来判断,这种方式下,所述分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果的步骤具体包括:
获取所述可执行程序中的代码段;
解析所述代码段中包括的字节的机器码;
判断在所述第一/第二硬件架构下所述机器码是否为有效的指令,获取所述第一/二分析结果;
其中,在所述第一/二硬件架构下所述机器码为有效的指令时,所述第一/二分析结果为是,否则为否。
每一个可执行程序都包括大量的代码段,这些代码段在执行时会被翻译为机器码,最终由硬件来执行这些机器码实现可执行程序的运行,因此,如果代码段中的字节解析后不是有效的指令,则表示可执行程序不是该硬件架构下的可执行程序。
在某些可执行程序不包括上述的Machine字段或具有类似功能的字段时,则可通过这种方式可以实现对应硬件架构的判断。
当然,在本发明的具体实施例中,需要在判断结果出来之前阻止可执行程序按照现有的方法运作,其可以通过修改注册表项的方式来实现,如下:
hkey_classes_root\exefile\shell\open\command,指向一个可执行程序,这个可执行程序完成硬件架构检测,并根据检测结果来确定采取何种处理方式。
本发明实施例还提供了一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,如图3所示,所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第一分析模块,用于分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
第一控制模块,用于在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错。
所述第一控制模块可以通过多种方式避免报错,如下:
<模拟平台方式>
在所述可执行程序能够运行于所述第二硬件架构时,在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
<借助其他电子设备的方式>
在所述可执行程序能够运行于所述第二硬件架构时,发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
<提示用户方式>
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
而判断可执行程序是否能够运行于某一硬件架构可以通过可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
也可以通过如下的代码解析方式,所述第一分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第一判断单元,用于判断在所述第一硬件架构下所述机器码是否为有效的指令,获取所述第一分析结果;
其中,在所述第一硬件架构下所述机器码为有效的指令时,所述第一分析结果为是,否则为否。
本发明实施例的另一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,如图4所示所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第二分析模块,用于分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
第二控制模块,用于在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错。
所述第二控制模块可以通过多种方式避免报错,如下:
<模拟平台方式>
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
<借助其他电子设备的方式>
发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
<提示用户方式>
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
所述第二分析模块具体用于根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否为应运行于第二操作系统的可执行程序。
也可以通过如下的代码解析方式来判断对应的硬件架构,所述第二分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第二判断单元,用于判断在所述第二硬件架构下所述机器码是否为有效的指令,获取所述第二分析结果;
其中,在所述第二硬件架构下所述机器码为有效的指令时,所述第二分析结果为是,否则为否。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种运行控制方法,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,其特征在于,所述运行控制方法具体包括:
确定待运行的可执行程序;
分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错;
所述分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果的步骤具体包括:
获取所述可执行程序中的代码段;
解析所述代码段中包括的字节的机器码;
判断在所述第一硬件架构下所述机器码是否为有效的指令,获取所述第一分析结果;
其中,在所述第一硬件架构下所述机器码为有效的指令时,所述第一分析结果为是,否则为否。
2.根据权利要求1所述的运行控制方法,其特征在于,所述第一操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
3.根据权利要求1或2所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台;
基于所述模拟平台运行所述第一操作系统;
利用基于所述模拟平台运行的所述第一操作系统执行所述可执行程序。
4.根据权利要求1或2所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
在所述可执行程序能够运行于所述第二硬件架构时,发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中;
接收所述第二电子设备运行所述可执行程序产生的运行数据;
根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果。
5.根据权利要求1或2所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
阻止所述可执行程序启动;
在所述第一电子设备输出所述可执行程序对应的硬件架构。
6.根据权利要求2所述的运行控制方法,其特征在于,所述分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果的步骤中,具体根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
7.一种运行控制方法,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,其特征在于,所述运行控制方法具体包括:
确定待运行的可执行程序;
分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错;
所述分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果的步骤具体包括:
获取所述可执行程序中的代码段;
解析所述代码段中包括的字节的机器码;
判断在所述第二硬件架构下所述机器码是否为有效的指令,获取所述第二分析结果;
其中,在所述第二硬件架构下所述机器码为有效的指令时,所述第二分析结果为是,否则为否。
8.根据权利要求7所述的运行控制方法,其特征在于,所述第一操作系统和第二操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
9.根据权利要求7或8所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台;
基于所述模拟平台运行所述第二操作系统;
利用基于所述模拟平台运行的第二操作系统执行所述可执行程序。
10.根据权利要求7或8所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
发送所述可执行程序到具有第二硬件架构,且安装有所述第二操作系统的第二电子设备中;
接收所述第二电子设备运行所述可执行程序产生的运行数据;
根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果。
11.根据权利要求7或8所述的运行控制方法,其特征在于,所述控制所述可执行程序的运行具体为:
阻止所述可执行程序启动;
在所述第一电子设备输出所述可执行程序对应的硬件架构。
12.根据权利要求8所述的运行控制方法,其特征在于,所述分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果的步骤中,具体根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否为应运行于第二操作系统的可执行程序。
13.一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述第一操作系统至少能够运行于所述第一硬件架构和第二硬件架构,所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第一分析模块,用于分析所述可执行程序,确定所述可执行程序是否能够运行于所述第一硬件架构,获取一第一分析结果;
第一控制模块,用于在所述第一分析结果为否的时候,控制所述可执行程序的运行,避免报错;
所述第一分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第一判断单元,用于判断在所述第一硬件架构下所述机器码是否为有效的指令,获取所述第一分析结果;
其中,在所述第一硬件架构下所述机器码为有效的指令时,所述第一分析结果为是,否则为否。
14.根据权利要求13所述的运行控制装置,其特征在于,所述第一操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
15.根据权利要求13或14所述的运行控制装置,其特征在于,所述第一控制模块具体用于:
在所述可执行程序能够运行于所述第二硬件架构时,在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
在所述可执行程序能够运行于所述第二硬件架构时,发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
16.根据权利要求13或14所述的运行控制装置,其特征在于,所述第一分析模块具体用于所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否能够运行于所述第一硬件架构。
17.一种运行控制装置,应用于一具有第一硬件架构的第一电子设备中,所述第一电子设备中安装有第一操作系统,所述运行控制装置具体包括:
确定模块,用于确定待运行的可执行程序;
第二分析模块,用于分析所述可执行程序,确定所述可执行程序是否为应运行于第二操作系统的可执行程序,获取第二分析结果;所述第二操作系统与所述第一操作系统具有相同的操作系统版本,且所述第二操作系统能够运行于第二硬件架构;
第二控制模块,用于在所述第二分析结果为是的时候,控制所述可执行程序的运行,避免报错;
所述第二分析模块具体包括:
获取单元,用于获取所述可执行程序中的代码段;
解析单元,用于解析所述代码段中包括的字节的机器码;
第二判断单元,用于判断在所述第二硬件架构下所述机器码是否为有效的指令,获取所述第二分析结果;
其中,在所述第二硬件架构下所述机器码为有效的指令时,所述第二分析结果为是,否则为否。
18.根据权利要求17所述的运行控制装置,其特征在于,所述第一操作系统和第二操作系统为Windows操作系统,所述第一硬件架构为X86架构,所述第二硬件架构为先进精简指令集机器ARM架构。
19.根据权利要求17或18所述的运行控制装置,其特征在于,所述第二控制模块具体用于:
在所述第一电子设备启动一与所述第二硬件架构对应的模拟平台,并在基于所述模拟平台运行所述第一操作系统后,利用基于所述模拟平台运行的第一操作系统执行所述可执行程序;或
发送所述可执行程序到具有第二硬件架构,且安装有所述第一操作系统的第二电子设备中,并在接收到所述第二电子设备运行所述可执行程序产生的运行数据后,根据所述运行数据在所述第一电子设备显示所述可执行程序的运行结果;或
阻止所述可执行程序启动,并在所述第一电子设备输出所述可执行程序对应的硬件架构。
20.根据权利要求18所述的运行控制装置,其特征在于,所述第二分析模块具体用于根据所述可执行程序的文件头中的机器Machine字段确定所述可执行程序是否为应运行于第二操作系统的可执行程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110376727.6A CN103136060B (zh) | 2011-11-23 | 2011-11-23 | 运行控制方法和运行控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110376727.6A CN103136060B (zh) | 2011-11-23 | 2011-11-23 | 运行控制方法和运行控制装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136060A CN103136060A (zh) | 2013-06-05 |
CN103136060B true CN103136060B (zh) | 2016-10-05 |
Family
ID=48495915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110376727.6A Active CN103136060B (zh) | 2011-11-23 | 2011-11-23 | 运行控制方法和运行控制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136060B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136004B (zh) * | 2011-11-25 | 2018-07-06 | 联想(北京)有限公司 | 一种应用程序硬件架构显示方法及装置 |
CN103885814B (zh) * | 2014-03-20 | 2017-05-17 | 百度在线网络技术(北京)有限公司 | 在x86架构上运行ARM APK的模拟器装置和方法 |
CN115145696B (zh) * | 2022-08-30 | 2022-11-29 | 统信软件技术有限公司 | 确定进程虚拟机运行差异的方法、系统及计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1047407A (zh) * | 1989-05-17 | 1990-11-28 | 国际商业机器公司 | 在数据处理系统提供附加系统特性的方法和装置 |
US6091414A (en) * | 1996-10-31 | 2000-07-18 | International Business Machines Corporation | System and method for cross-environment interaction in a computerized graphical interface environment |
CN101118499A (zh) * | 2006-08-04 | 2008-02-06 | 深圳市研祥智能科技股份有限公司 | 异构硬件体系间软件移植的系统 |
CN101382906A (zh) * | 2007-09-06 | 2009-03-11 | 戴尔产品有限公司 | 处理器架构之间的虚拟机迁移 |
CN101986266A (zh) * | 2010-10-22 | 2011-03-16 | 浙江大学 | Android手机操作系统移植到凌动处理器开发板的方法 |
-
2011
- 2011-11-23 CN CN201110376727.6A patent/CN103136060B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1047407A (zh) * | 1989-05-17 | 1990-11-28 | 国际商业机器公司 | 在数据处理系统提供附加系统特性的方法和装置 |
US6091414A (en) * | 1996-10-31 | 2000-07-18 | International Business Machines Corporation | System and method for cross-environment interaction in a computerized graphical interface environment |
CN101118499A (zh) * | 2006-08-04 | 2008-02-06 | 深圳市研祥智能科技股份有限公司 | 异构硬件体系间软件移植的系统 |
CN101382906A (zh) * | 2007-09-06 | 2009-03-11 | 戴尔产品有限公司 | 处理器架构之间的虚拟机迁移 |
CN101986266A (zh) * | 2010-10-22 | 2011-03-16 | 浙江大学 | Android手机操作系统移植到凌动处理器开发板的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103136060A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zaddach et al. | Embedded devices security and firmware reverse engineering | |
US9665469B2 (en) | System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices | |
US10360322B2 (en) | Simulation of virtual processors | |
US9921949B2 (en) | Software testing | |
US10108763B2 (en) | Method and simulation arrangement for simulating an automated industrial plant | |
CN105204913A (zh) | 一种在Android操作系统上运行Linux应用程序的方法及系统 | |
US11250193B1 (en) | Productivity platform using system-on-chip with programmable circuitry | |
CN104460646A (zh) | 用于对虚拟控制器进行实时测试的测试装置 | |
CN113901745A (zh) | 芯片测试方法、装置、电子设备及计算机可读存储介质 | |
CN103136060B (zh) | 运行控制方法和运行控制装置 | |
CN113076143A (zh) | 一种国产平台人工智能环境适配方法及兼容性测试方法 | |
CN108090352B (zh) | 检测系统及检测方法 | |
CN103810222A (zh) | 样本文件的处理方法及装置 | |
CN116090376B (zh) | 芯片集成验证组件开发方法、装置及计算机设备 | |
CN108874656A (zh) | 代码测试方法、装置、可读存储介质及计算机设备 | |
WO2012069883A1 (en) | Method of debugging software and corresponding computer program product | |
CN102054088B (zh) | 用于原型制作片上系统设计的虚拟平台 | |
CN105224453A (zh) | 系统兼容性的自动测试方法及装置 | |
US20170140080A1 (en) | Performing And Communicating Sheet Metal Simulations Employing A Combination Of Factors | |
CN107229506B (zh) | 一种虚拟机迁移方法及装置 | |
CN104731557A (zh) | 指令执行的控制方法及装置 | |
JP2019179284A (ja) | シミュレーションシステム、及びシミュレーションプログラム | |
JP6934044B2 (ja) | ハイブリッド命令アーキテクチャのテスト | |
CN113792522A (zh) | 仿真验证方法、装置及计算设备 | |
Kovač et al. | Development of Programmable Logic Controller Emulator With QEMU |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |