Wine CE 8.5发布,该版本基于Wine 8.5和Qemu 8.0.0-rc2,是运行于Linux平台跨指令架构的Windows应用模拟器。此次更新除了携带Wine和Qemu的最新更新外,还解决了在64位平台上无本机32位库支持和无Softmmu(软内存管理单元)的前提下,高性能实现32位被模拟应用透传调用主机端64位接口的难题。
由于越来越多基于包括ARM、RISC-V等架构的芯片放弃了对32位的支持,传统的32on32同长度位架构高效模拟32位应用的方案面临挑战。且Windows系统32位软件仍然占有举足轻重的地位。因此,如何在64位系统上无32位支持的前提下异构模拟32位Windows软件,成为Windows软件模拟器亟待解决的问题。
目前,产业界针对此问题的解决方案,大多诉诸于内存地址映射转换。然而,内存地址映射转换除了转换所带来的性能开销外,还会增加额外的临界状态,导致出现较大的性能损失。比如著名的二进制翻译软件exagear32on64相比其同长度位架构模拟的exagear32和exagear64,就存在严重的性能负向问题。
Wine CE模拟器率先解决这个难题,实现了32位被模拟应用高效透传针对主机端64位接口及驱动的调用。Wine CE 8.5使用了经过性能强化且大幅修改的Qemu TCG作为二进制翻译器。与官方版Qemu TCG相比,该版本支持x86和x64混合指令的应用,且性能大幅提高。在搭载RISC-V嵌入式芯片JH7110的Linux上通过Wine CE测试解压7z格式Win32自解压应用,其性能可达到Intel Core i7 9750H + windows11组合的1/16。Wine CE通过接口语法分析自动生成封装转换代码,可将模拟端调用的参数封装转发给主机端执行,充分践行Wine CE非必要不模拟的原则。
目前,Wine CE 8.5 已经支持AArch64和RISCV64平台,并且在树莓派4和星光2开发板上进行了验证,验证视频如下:
树莓派4:https://www.bilibili.com/video/BV1yc41157iS
星光2(由于驱动未完善GPU暂不可用,用CPU软渲染): https://www.bilibili.com/video/BV1gv4y1578t
还没有评论,来说两句吧...