一种Windows程序的运行方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33287888 阅读:55 留言:0更新日期:2022-04-30 23:59
本申请公开了一种Windows程序的运行方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及芯片技术。具体实现方案为:当待运行的Windows程序调用Host Wine库时,判断待运行的Windows程序的位数为第一位数或者第二位数;若待运行的Windows程序的位数为第一位数,则将待运行的Windows程序的地址转换为第二位数的地址;并将待运行的Windows程序的参数类型转换为第二位数据的参数类型;基于第二位数的地址和第二位数的参数类型,在ARM芯片服务器上运行Windows程序;其中,第一位数为32位;第二位数为64位。本申请实施例可以在64位ARM芯片的Linux系统上,通过Host Wine+Qemu技术实现Windows程序的运行。术实现Windows程序的运行。术实现Windows程序的运行。

【技术实现步骤摘要】
一种Windows程序的运行方法、装置、电子设备及存储介质


[0001]本公开涉及计算机
,进一步涉及芯片技术,尤其是一种Windows程序的运行方法、装置、电子设备及存储介质。

技术介绍

[0002]程序执行时,涉及到数据结构和内存寻址两个方面,32位和64位的Windows程序的数据类型长度和寻址空间都不同,例如:32位系统中的指针是4个字节,而64位系统中的指针是8字节;32位系统的寻址空间是2的32次方,即为4GB,而64位系统的寻址空间是2的64次方,即为8GB。
[0003]目前的Windows程序有32位和64位两种程序,都需要通过Qemu转换为ARM64位的指令执行。所以在现有的64位的ARM芯片服务器上无法兼容32位和64位的Windows程序。

技术实现思路

[0004]本公开提供了一种Windows程序的运行方法、装置、电子设备以及存储介质。
[0005]第一方面,本申请提供了一种Windows程序的运行方法,所述方法包括:
[0006]当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;
[0007]若所述待运行的Windows程序的位数为所述第一位数,则将所述待运行的Windows程序的地址转换为所述第二位数的地址;并将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型;
[0008]基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序;其中,所述第一位数为32位;所述第二位数为64位。
[0009]第二方面,本申请提供了一种Windows程序的运行装置,所述装置包括:判断模块、转换模块和运行模块;其中,
[0010]所述判断模块,用于当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;
[0011]所述转换模块,用于若所述待运行的Windows程序的位数为所述第一位数,则将所述待运行的Windows程序的地址转换为所述第二位数的地址;并将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型;
[0012]所述运行模块,用于基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序;其中,所述第一位数为32位;所述第二位数为64位。
[0013]第三方面,本申请实施例提供了一种电子设备,包括:
[0014]一个或多个处理器;
[0015]存储器,用于存储一个或多个程序,
[0016]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的Windows程序的运行方法。
[0017]第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的Windows程序的运行方法。
[0018]第五方面,提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时实现本申请任意实施例所述的Windows程序的运行方法。
[0019]根据本申请的技术解决了现有技术中的Windows程序有32位和64位两种程序都需要通过Qemu转换为ARM64位的指令执行,在现有的64位的ARM芯片服务器上无法兼容32位和64位的Windows程序的技术问题。本申请提供的技术方案,可以在64位ARM芯片的Linux系统上,通过Host Wine+Qemu技术实现Windows程序的运行。
[0020]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0021]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0022]图1是本申请实施例提供的Windows程序的运行方法的第一流程示意图;
[0023]图2是本申请实施例提供的Windows程序的运行方法的第二流程示意图;
[0024]图3是本申请实施例提供的Windows程序的运行方法的第三流程示意图;
[0025]图4是本申请实施例提供的64位ARM芯片的Linux系统的结构示意图;
[0026]图5是本申请实施例提供的Windows程序的运行装置的结构示意图;
[0027]图6是用来实现本申请实施例的Windows程序的运行方法的电子设备的框图。
具体实施方式
[0028]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0029]实施例一
[0030]图1是本申请实施例提供的Windows程序的运行方法的第一流程示意图,该方法可以由Windows程序的运行装置或者电子设备来执行,该装置或者电子设备可以由软件和/或硬件的方式实现,该装置或者电子设备可以集成在任何具有网络通信功能的智能设备中。如图1所示,Windows程序的运行方法可以包括以下步骤:
[0031]S101、当待运行的Windows程序调用Host Wine库时,判断待运行的Windows程序的位数为第一位数或者第二位数。
[0032]在本步骤中,当待运行的Windows程序调用Host Wine库时,电子设备可以判断待运行的Windows程序的位数为第一位数或者第二位数;其中,第一位数为32位;第二位数为64位。现有的Windows程序有两种,分别为32位的Windows程序和64位的Windows程序。本申请实施例针对不同位数的Windows程序分别进行不同的运行方法,从而可以在一套程序中兼容32位和64位的Windows程序。
[0033]S102、若待运行的Windows程序的位数为第一位数,则将待运行的Windows程序的地址转换为第二位数的地址;并将待运行的Windows程序的参数类型转换为第二位数据的
参数类型。
[0034]在本步骤中,若待运行的Windows程序的位数为第一位数,则电子设备可以将待运行的Windows程序的地址转换为第二位数的地址;同时将待运行的Windows程序的参数类型转换为第二位数据的参数类型。具体地,电子设备可以将32位的Windows程序的地址转换为64位的地址;同时将32位的Windows程序的参数类型转换位64位的参数类型。
[0035]S103、基于第二位数的地址和第二位数的参数类型,在ARM芯片服务器上运行Windows程序;其中,第一位数为32位;第二位数为64位。
[0036]在本步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Windows程序的运行方法,所述方法包括:当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;若所述待运行的Windows程序的位数为所述第一位数,则将所述待运行的Windows程序的地址转换为所述第二位数的地址;并将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型;基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序;其中,所述第一位数为32位;所述第二位数为64位。2.根据权利要求1所述的方法,所述方法还包括:若所述待运行的Windows程序的位数为所述第二位数,则将所述待运行的Windows程序的内存分配空间映射到所述所述第一位数对应的内存分配空间中,生成所述第二位数的地址;基于所述第二位数的地址和所述待运行的Windows程序的参数类型,在ARM芯片服务器上运行所述Windows程序。3.根据权利要求1所述的方法,其中,所述将所述待运行的Windows程序的地址转换为所述第二位数的地址,包括:将所述Windows程序的地址传送至Qemu,通过所述Qemu将所述Windows程序的地址转换为所述第二位数的地址。4.根据权利要求3所述的方法,其中,所述将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型,包括:将所述Windows程序的参数类型传送至所述Qemu,通过所述Qemu将Windows程序的参数类型转换为所述第二位数据的参数类型。5.根据权利要求4所述的方法,其中,所述基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序,包括:通过所述Qemu将第二位数的地址和所述第二位数的参数类型传送至Host Wine,通过所述Host Wine在ARM芯片服务器上运行所述Windows程序。6.一种Windows程序的运行装置,所述装置包括:判断模块、转换模块和运行模块;其中,所述判断模块,用于当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;所述转换模块,用于若所述待运...

【专利技术属性】
技术研发人员:张纪金刘俊云黄勇
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1