在ARM处理器上实现Wine构建工具移植的方法技术

技术编号:7204907 阅读:1038 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了在ARM处理器上实现Wine构建工具移植的方法,包括:步骤1,修改Wine的配置工具,以使用arm-linux的交叉编译器和arm-linux的库文件来替换X86平台下的gcc编译器和库;步骤2,修改Wine的构建工具,以将Windows目标应用程序生成对应于ARM处理器的PE格式映像;步骤3,修改Wine中的其他与CPU相关的代码,使得所有Wine的代码适用于ARM处理器;步骤4,将修改后的Wine源代码安装到ARM处理器上。本发明专利技术实现了Wine的移植,使Wine能够在OMS智能手机上运行。

【技术实现步骤摘要】

本专利技术涉及软件移植领域,尤其涉及。
技术介绍
以手机为代表的智能化移动终端设备既是计算机技术的一个重要发展方向,又是一个竞争十分激烈的市场。自从谷歌公司和开放手机联盟推出安卓(Android)操作系统和基于Android的手机以来,很快就在世界手机市场上占有了不小的份额,各种Android手机层出不穷。中国移动开发并推出的OPhone (0MS智能手机)也是基于Android的手机。所谓Android操作系统,实际上是对Linux操作系统的一种改编和扩充,它的内核基本上就是Linux的内核,但是在用户空间却专门针对手机和移动终端设备的特点作了大幅的改进和增强,这些改动大都与编程模式和图形界面,即图形化用户界面(GUI)有关。另一种常用于手机的操作系统是微软的WinCE和WM(即Windows Mobile),这是在微软的Windows操作系统上发展起来的。基于WinCE/WM的手机也在市场上占不小的份额, 并且开发出了数量不小的WinCE/WM应用软件。如果能把这些应用软件拿到OMS智能手机上运行,对于提高OMS智能手机的市场占有率显然是有利的。为了能把WinCE/WM应用软件移植到OMS智能手机上运行,需要把开源软件Wine 移植到OMS手机上,把本应由Windows提供的支撑嫁接到Linux上,并对其加以扩充、使其支持WinCE/WM,可以让WinCE/WM应用软件直接在OMS手机上运行(实际上是在OMS手机的 Linux内核上运行)。这样,原来熟悉WinCE/WM软件开发的人就可以按原来的模式、在原来的开发环境中、使用原来的开发工具、像开发WinCE/WM软件一样地开发OMS软件,而且开发出来的软件既是WinCE/WM软件又可以在OMS手机上运行,这对于开发者也是很有利的。可是,OMS手机是基于ARM处理器的手机平台。然而,目前的Wine主要是面向x86 系统结构微处理器的,虽然也支持PoWerPC、Sparc等别的微处理器,但是却不支持ARM。因此,想要在OMS智能手机上运行Wine,需要对Wine软件移植到ARM处理器上。
技术实现思路
针对现有技术中存在的上述问题,本专利技术提供了,实现Wine的移植。本专利技术提供了,包括步骤1,修改Wine的配置工具,以使用arm-linux的交叉编译器和arm-linux的库文件来替换X86平台下的gcc编译器和库;步骤2,修改Wine的构建工具,以将Windows目标应用程序生成对应于ARM处理器的PE格式映像;步骤3,修改Wine中的其他与CPU相关的代码,使得所有Wine的代码适用于ARM 处理器;步骤4,将修改后的Wine源代码安装到ARM处理器上。在一个示例中,步骤1中,所述配置工具包括Configure文件、Configure, ac文件、 Make, rules 文件和 Makefile 文件。在一个示例中,所述构建工具包括Winegcc工具和Winebui Id工具。在一个示例中,Winegcc工具的函数get_translator ()能够识另Ij arm-Iinux的交叉编译器。在一个示例中,Winebuild工具用于生成PE可执行映像的头部及其各个段,以及为每个PE格式的可执行映像生成用于ARM处理器上装载的PE头部和除代码段和数据段之外的各个段的映像。在一个示例中,启动Winebuild的命令行中具有选择项“一save-temps”,以保存用于动态连接库的汇编代码。在一个示例中,步骤 3 中,将 wine_call_on_stack()和 wine_switch_to_stack() 用ARM汇编语句实现;增加文件signal_arm. c,用于实现对ARM的CONTEXT数据结构操作; 对函数copy_context ()扩充针对ARM CONTEXT的代码;增加文件context_arm. c,用于针对ARM处理器实现文件context_i386. c的功能;在kernel32/process. c中增加识别参数 IMAGE_FILE_MACHINE_ARM 和 IMAGE_FILE_MACHINE_THUMB 的功能;修改函数 ILGetSizeO 和ILGetNext (),以在ARM处理器访问内存时对齐长字或字的边界。本专利技术实现了 Wine的移植,使Wine能够在OMS智能手机上运行。附图说明下面结合附图来对本专利技术作进一步详细说明,其中图1是Wine移植到ARM处理器的流程。具体实施例方式本专利技术提供了。在用本专利技术的方法移植后,Wine工具能够正确移植到ARM处理器上,因此可以使基于ARM处理器的OMS智能操作系统运行Wine工具,进一步可以在此基础上把WinCE/WM应用软件移植到OMS智能操作系统中。为了把Wine工具正确移植到ARM处理器上,本专利技术的方案是。在特定处理器上构建Wine时,先需要进行配置工作。因此,本专利技术首先针对ARM 处理器对Wine开源软件的配置工具进行扩充和移植,才能编译/汇编/连接出运行于ARM 的二进制代码。其次,在ARM处理器上构建Wine时,除ARM工具链以外,Wine的构建(编译、汇编、 连接)还需要ffinegcc, ffinebuild, Widl,Wrc和Wmc这5个Wine构建工具的参与,本方案需要对其中的Winegcc和Winebuild针对ARM处理器进行修改/移植。本专利技术中,将Wine工具正确移植到ARM处理器上的流程如图1所示,主要包括六个步骤,首先要下载Wine开源软件源码并解压缩;然后运行./configure,通过此命令对Wine进行配置;第三步需要对Wine的配置工具进行修改,以增加对ARM处理器的支持; 第四步需要对Wine的构建工具进行修改,以增加对ARM处理器的支持;第五步,修改移植Wine中的其他与CPU相关的代码,以增加对ARM处理器的支持;最后一步把修改好的源码移植到ARM处理器上编译安装。当然在安装过程中可能会出现一些错误,需要根据实际情况进行调试。下面详细对每个步骤进行说明。第一步下载Wine开源软件源码并解压缩。可以从开源Wine工程网站http:// www. winehq. org/下载Wine源码到X86平台下的Linux操作系统上,本实施例中Wine源码版本为 Wine-L 3. 13,平台为 htel Xeon CPU E531001. 60GHz, Linux 操作系统为 Unbuntu 10. 4版本。然后解压到本地文件夹,解压命令为tar-jxvfwine-1. 3. 13. tar. bz2。第二步运行./configure,通过此命令对Wine进行配置,它会针对各种不同的 CPU生成相应的编译器选项,并决定某些源文件的取舍。目前的Wine支持x86、PowerPC, Sparc.Apple等处理器,通过系统配置,就可以使编译/汇编/连接工具产生出针对具体处理器的二进制可执行代码。然而,目前的Wine并不支持ARM。所以,要将Wine移植到ARM 处理器上,首先就要对其配置工具加以扩充和移植。这样,结合对有关代码、特别是汇编代码的移植,才能编译/汇编/连接出运行于ARM的二进制代码。第三步对Wine的配置工具进行修改,本本文档来自技高网
...

【技术保护点】
1.在ARM处理器上实现Wine构建工具移植的方法,其特征在于,包括:步骤1,修改Wine的配置工具,以使用arm-linux的交叉编译器和arm-linux的库文件来替换X86平台下的gcc编译器和库;步骤2,修改Wine的构建工具,以将Windows目标应用程序生成对应于ARM处理器的PE格式映像;步骤3,修改Wine中的其他与CPU相关的代码,使得所有Wine的代码适用于ARM处理器;步骤4,将修改后的Wine源代码安装到ARM处理器上。

【技术特征摘要】

【专利技术属性】
技术研发人员:毛德操
申请(专利权)人:浙大网新科技股份有限公司
类型:发明
国别省市:86

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

1