Wine-CE 8.1 发布,此版本基于Wine-8.1和Qemu-7.2.0, 该版本是Wine-CE的第二个正式版本。
由于Wine更新至8.1版本,为了能充分利用Wine的最新特性,因此Wine-CE也针对Wine的最新版本进行了变基更新。此版本的Wine-CE,除了附带Wine的多项更新外,还增加了以下更新内容。
0. 新增交叉架构进程启动功能特性,例如可用armhf架构的可执行PE文件进程启动i386架构的可执行PE文件进程。即可安装不同架构的PE文件,并进行互相交互。
1. 对代码进行了部分重构,将部分PE文件内的修改移至Unixlib部分。包括但不限于Ntdll、Kernel32。并大幅简化了代码实现,对性能有轻微提升。彻底解耦前后端功能。
2. 修复了若干Bug,例如ARM平台上i386架构进程在system32文件夹内安装文件会覆盖ARM架构PE文件。异构进程在system32文件夹内安装文件将重定位路径至该架构对应的系统文件夹内。
Wine-CE是运行于Linux平台。基于Wine和Qemu的异架构Win32二进制翻译执行软件。和其它方案相比,该软件采用了奇美拉架构。即软件架构由上到下分为3个层次:
1. 客户端指令架构层(奇美拉之狮头):该层主要是客户端指令集架构的Win32 PE可执行文件,包括但不限于被翻译执行软件和内置的可执行文件、动态链接库等。该层用于提供被翻译软件的依赖库,并将部分PE调用封装为系统调用。和接收来自本机的回调。
2. 指令翻译层(奇美拉之羊身):该层是修改过的用户模式的Qemu,和原版Qemu相比,此Qemu去除了不必要的线程锁,以及新增了用于访问宿主端指令架构层的系统调用接口。该层用于翻译客户端指令和转发客户端的本机系统调用。或者将系统端指令架构层的回调转发给客户端指令架构层执行。
3. 系统端指令架构层(奇美拉之蛇尾):该层是修改过的Wine的unix库,属于本机指令集架构。用于接收指令翻译层转发的本机系统调用,包括但不限于图形接口调用、文件系统调用以及其它高性能调用。并执行收到的系统调用。
和其它二进制Win32翻译方案相比,该方案无需客户端驱动(virtio-gpu, virgl等),可高效部署并执行二进制翻译任务。