[发明专利]将Wine从x86移植到ARM平台的方法有效
申请号: | 201110173905.5 | 申请日: | 2011-06-24 |
公开(公告)号: | CN102364442A | 公开(公告)日: | 2012-02-29 |
发明(设计)人: | 毛德操;王承志;徐鼎鼎;陈天洲;俞立呈 | 申请(专利权)人: | 浙大网新科技股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 杭州宇信知识产权代理事务所(普通合伙) 33231 | 代理人: | 张宇娟 |
地址: | 310030 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | wine x86 移植 arm 平台 方法 | ||
技术领域
本发明涉及计算机运行环境模拟器领域、操作系统领域和CPU体系结构 领域,尤其是将Wine从x86移植到ARM平台的方法。
背景技术
Microsoft Windows(简称Windows)是目前桌面电脑上常见的操作系统, 有多个不同的版本,适用于个人电脑、工作站和服务器。Windows系列操作在 桌面电脑市场的占有率于2010年底达到90%以上,可见其普及率和受欢迎程 度。Windows之所以这么受到用户欢迎的一大原因就是Windows平台上的应用 软件非常多,大部分的软件开发商都愿意首先为Windows平台开发应用,而很 多用户不愿意切换到其他操作系统就是因为其他系统上没有用户所需的某个 应用或令用户满意替代版本。
ARM架构处理器是目前非常流行的一种处理器架构,其精简指令集(RISC) 的设计比起桌面电脑处理器中常见的x86的复杂指令集(CSIC)更加高效,能 耗也更低。因此目前很多嵌入式设备或移动设备如智能手机大多都采用了ARM 架构的处理器。然而由于ARM的指令集与x86指令集完全不同,无法在ARM 处理器上运行传统桌面电脑的Windows操作系统,因而也无法运行Windows 操作系统中的众多软件。
Wine是一个在x86处理器上的模拟运行环境,利用Wine可在其他操作系 统(通常为类Unix的操作系统如Linux)中直接运行Windows的可执行程序。 因此利用Wine能够在不同操作系统上直接获得Windows环境下丰富的应用资 源,很多Windows应用不需要进行任何修改(不需要重新编译)就能直接在 Wine中运行,并且保持较高的运行效率。然而Wine只支持x86的处理器架构, 并不支持ARM,因而无法在目前众多基于ARM的设备上运行。
发明内容
本发明提出一种将Wine从x86移植到ARM平台的方法,从而使得ARM平 台上也能运行众多的Windows程序,应用开发商能够快速地将原有的应用部署 到目前众多的基于ARM的设备中,获得更多经济效益。
要将原为x86架构CPU编写的Wine模拟器移植到ARM架构的CPU上,首 先需要解决的问题就是把x86指令集的机器代码转换为ARM指令集的机器代 码。对于使用C等高级语言编写的源代码,只需要在PC上使用生成ARM架构 机器代码的编译器交叉编译即可。但Wine为了更有效地控制底层硬件,有一 部分源代码是使用汇编代码编写的,由于汇编代码是与CPU指令集有关的,因 此需要手工将这些汇编代码改写成ARM指令集的汇编代码。具体的方法是:将 x86汇编的指令逐条改写为对应的ARM汇编指令,并将指令中的操作数从x86 寄存器改为ARM寄存器。由于x86指令集和ARM指令集的差异性,对于不存在 对应ARM汇编指令的x86指令,需要使用多条ARM汇编指令来实现对应与对应 x86汇编指令相同的功能。
所要改写的汇编代码有以下几部分:
●loader/preloader.c中的所有汇编代码;
●libs/wine/port.c中的wine call on stack函数;
●libs/wine/port.c中的wine switch to stack函数。
另有一些数据结构并不是汇编指令,但也与具体的CPU有关。Wine中的 CONTEXT数据结构用于表示CPU的寄存器上下文,寄存器上下文指某一时刻CPU 所有寄存器的值,存储CPU在这一时刻的状态。不同的CPU具有不同的寄存器 集合,所以表示它们的寄存器上下文的CONTEXT数据结构也不同。Wine在 wine/include/winnt.h中提供了ARM的CONTEXT数据结构定义,但代码中却 并没提供有关的代码实现,需要加以补充,增加ARM寄存器上下文保存、恢复、 复制以及具体寄存器值提取的函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙大网新科技股份有限公司,未经浙大网新科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110173905.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耐高温的液压缸活塞连接装置
- 下一篇:具有内部回流功能的单向作用活塞缸