由于Wine更新至8.2版本,跨指令集架构Windows应用模拟器Wine CE也随之变基更新至8.2版本,此版本基于Wine 8.2和Qemu 7.2.50分支。在引入Wine 8.2的更新的同时,此版本有以下更新:
1. 添加本机端对RISCV64的支持,可以在RISCV64架构Linux平台运行x64和ARM64架构的Windows程序,并已经在赛防科技昉星光2开发板上进行了验证。此版本携带了QEMU未经正式发布的RISCV代码生成BUG的修复补丁,以及Wine CE作者对QEMU x86输入的GDT错误实现导致的BUG的修复补丁(暂未合入主分支)。因此Wine CE是全球第一款运行于RISCV架构平台的Windows x64应用模拟器。
2. 修复了用户空间APC无法正常运行的bug。
3. 添加对bat脚本等非PE文件的支持。
Wine-CE 是运行于 Linux 平台。基于 Wine 和 Qemu 的异架构 Win32 二进制翻译执行软件。和其它方案相比,该软件采用了奇美拉架构。即软件架构由上到下分为 3 个层次:
1. 客户端指令架构层(奇美拉之狮头):该层主要是客户端指令集架构的 Win32 PE 可执行文件,包括但不限于被翻译执行软件和内置的可执行文件、动态链接库等。该层用于提供被翻译软件的依赖库,并将部分 PE 调用封装为系统调用。和接收来自本机的回调。
2. 指令翻译层(奇美拉之羊身):该层是修改过的用户模式的 Qemu,和原版 Qemu 相比,此 Qemu 去除了不必要的线程锁,以及新增了用于访问宿主端指令架构层的系统调用接口。该层用于翻译客户端指令和转发客户端的本机系统调用。或者将系统端指令架构层的回调转发给客户端指令架构层执行。
3. 系统端指令架构层(奇美拉之蛇尾):该层是修改过的 Wine 的 unix 库,属于本机指令集架构。用于接收指令翻译层转发的本机系统调用,包括但不限于图形接口调用、文件系统调用以及其它高性能调用。并执行收到的系统调用。
和其它二进制 Win32 翻译方案相比,该方案无需客户端驱动(virtio-gpu, virgl 等),可高效部署并执行二进制翻译任务。