[发明专利]一种Windows程序的运行方法、装置、电子设备及存储介质有效
申请号: | 202210016353.5 | 申请日: | 2022-01-07 |
公开(公告)号: | CN114416199B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 张纪金;刘俊云;黄勇 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 初春 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 windows 程序 运行 方法 装置 电子设备 存储 介质 | ||
本申请公开了一种Windows程序的运行方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及芯片技术。具体实现方案为:当待运行的Windows程序调用Host Wine库时,判断待运行的Windows程序的位数为第一位数或者第二位数;若待运行的Windows程序的位数为第一位数,则将待运行的Windows程序的地址转换为第二位数的地址;并将待运行的Windows程序的参数类型转换为第二位数据的参数类型;基于第二位数的地址和第二位数的参数类型,在ARM芯片服务器上运行Windows程序;其中,第一位数为32位;第二位数为64位。本申请实施例可以在64位ARM芯片的Linux系统上,通过Host Wine+Qemu技术实现Windows程序的运行。
技术领域
本公开涉及计算机技术领域,进一步涉及芯片技术,尤其是一种Windows程序的运行方法、装置、电子设备及存储介质。
背景技术
程序执行时,涉及到数据结构和内存寻址两个方面,32位和64位的Windows程序的数据类型长度和寻址空间都不同,例如:32位系统中的指针是4个字节,而64位系统中的指针是8字节;32位系统的寻址空间是2的32次方,即为4GB,而64位系统的寻址空间是2的64次方,即为8GB。
目前的Windows程序有32位和64位两种程序,都需要通过Qemu转换为ARM64位的指令执行。所以在现有的64位的ARM芯片服务器上无法兼容32位和64位的Windows程序。
发明内容
本公开提供了一种Windows程序的运行方法、装置、电子设备以及存储介质。
第一方面,本申请提供了一种Windows程序的运行方法,所述方法包括:
当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;
若所述待运行的Windows程序的位数为所述第一位数,则将所述待运行的Windows程序的地址转换为所述第二位数的地址;并将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型;
基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序;其中,所述第一位数为32位;所述第二位数为64位。
第二方面,本申请提供了一种Windows程序的运行装置,所述装置包括:判断模块、转换模块和运行模块;其中,
所述判断模块,用于当待运行的Windows程序调用Host Wine库时,判断所述待运行的Windows程序的位数为第一位数或者第二位数;
所述转换模块,用于若所述待运行的Windows程序的位数为所述第一位数,则将所述待运行的Windows程序的地址转换为所述第二位数的地址;并将所述待运行的Windows程序的参数类型转换为所述第二位数据的参数类型;
所述运行模块,用于基于所述第二位数的地址和所述第二位数的参数类型,在ARM芯片服务器上运行所述Windows程序;其中,所述第一位数为32位;所述第二位数为64位。
第三方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的Windows程序的运行方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的Windows程序的运行方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210016353.5/2.html,转载请声明来源钻瓜专利网。