Wine-CE基于 Wine 和 Qemu 的 Windows 兼容层
Wine-CE 是在不同指令集架构Linux系统上运行Windows程序的兼容层,它基于Wine项目和Qemu项目。与Wine相比,Wine-CE可以模拟执行不同指令集的Windows软件,它使用修改过的Qemu作为指令翻译层。
相比其它跨指令集Win32模拟方案,Wine-CE有以下优势:
1. 采用奇美拉架构,将基于修改版QEMU的指令模拟层嫁接于Wine的Windows DLL和Unix库之间,非必要不模拟,可以直接调用本机的应用程序接口。因此性能上面具有优势。模拟代码和本机代码采用双协程模式,通过特定数据结构的数据进行交互,从而兼容性大幅提升。
2. 安装方便,运行时无须ROOT权限。以往的方案都是采用指令模拟层(Box86、Exagear、QEMU等)和Windows模拟层(Wine)分开的模式,部署配置复杂,且部分方案需要ROOT权限进行chroot操作。Wine-CE方案只有一个APP,部署简单,无需ROOT权限进行chroot操作,因此配置更为方便。
3. 构建方式简单,只需构建2个模块,基于Wine的构建方案进行构建,只需按照文档中显示的内容构建即可。
其软件架构如下:
+---------------------+ \
| Windows EXE | } application
+---------------------+ /
+---------+ +---------+ \
| Windows | | Windows | \ application & system DLLs
| DLL | | DLL | /
+---------+ +---------+ /
+---------+ +---------+ +-----------+ +--------+ \
| GDI32 | | USER32 | | | | | \
| DLL | | DLL | | | | Wine | \
+---------+ +---------+ | | | Server | \ core system DLLs
+---------------------+ | | | | / (on the left side)
| Kernel32 DLL | | Subsystem | | NT-like| /
| (Win32 subsystem) | |Posix, OS/2| | Kernel | /
+---------------------+ +-----------+ | | /
| |
+---------------------------------------+ | |
| NTDLL | | |
+---------------------------------------+ +--------+
+---------------------------------------+ \
| Qemuloader executable | } emulate loader
+---------------------------------------+ /
+---------------------------------------+ \
| QEMU | } special QEMU
+---------------------------------------+ /
+---------------------------------------------------+ \
| Wine drivers | } Wine specific DLLs
+---------------------------------------------------+ /
+------------+ +------------+ +--------------+ \
| libc | | libX11 | | other libs | } unix shared libraries
+------------+ +------------+ +--------------+ / (user space)
+---------------------------------------------------+ \
| Unix kernel (Linux,*BSD,Solaris,OS/X) | } (Unix) kernel space
+---------------------------------------------------+ /
+---------------------------------------------------+ \
| Unix device drivers | } Unix drivers (kernel space)
+---------------------------------------------------+ /
该项目已经测试可以在树莓派上运行Windows X86软件,测试视频如下:
测试平台:Raspberrypi 400
仙剑奇侠传3:https://www.bilibili.com/video/BV1Kd4y157Lm
魔兽争霸III:https://www.bilibili.com/video/BV1qK411k7mu
评论