Wine是一个兼容性层,能够在Linux,MacOS和其他系统上运行Windows应用程序。它已经开发并使用了二十多年,这也是Steam Proton在引擎盖下使用的使Windows游戏能够在Linux系统上运行的东西。
在Linux系统上,Wine当前使用其X11驱动程序与X11显示服务器接口。在许多现代系统中,Wayland已成为首选的显示服务器协议,需要在X11和Wayland之间转换另一层。这以称为XWayland的特殊X11服务器的形式出现。
此设置可以运行,但是对X11 / XWayland的额外依赖性是导致复杂性和效率低下的原因。如果Wine可以直接与Wayland进行交流以在现代系统上实现更精简,更高效的堆栈,那将是理想的选择。
经过几个月的工作,我们很高兴宣布针对Wayland的Wine司机的第一个建议。在这一点上,该建议采用RFC(征求意见)的形式,以探讨如何在驱动程序的上游和进一步开发中最好地向前发展。
与更传统的显示系统(例如X11和Win32)相比,Wayland协议在设计上受到了更多限制,这在Wayland与Wine的集成中带来了一系列独特的挑战。由于Wayland的窗口模型不是像X11那样基于单个平面2D坐标空间,因此Wayland协议不允许应用程序控制其在屏幕上的绝对位置。 Win32应用程序严重依赖此功能,因此Wayland驱动程序使用一些技巧来适应许多常见情况,例如瞬态窗口(菜单,工具提示等)。
Wayland驱动程序当前支持GDI和OpenGL / DirectX应用程序,具有调整大小和窗口状态处理(最小化除外),鼠标和QWERTY键盘输入以及单个监视器的功能。这已经使我们能够访问大量的应用程序。我尝试过并已经很好运行的一些应用程序是Firefox,Stellarium,Supertuxkart,010Editor,Wesnoth之战和GIMP(有一些警告)。
目前不支持Vulkan,但https://github.com/varmd/wine-wayland/上已经有另一个项目专门针对Wine Wayland + Vulkan。我们希望随着驱动程序的成熟并向上游发展,我们将能够巩固所有进一步的开发工作。
对于希望使用Wayland驱动程序的人,wine-devel RFC公告提供了更多说明和技术细节。 如果您对以下内容感到好奇,请观看视频,该视频在Weston参考Wayland合成器上展示了一些使用Wine Wayland驱动程序运行的Windows应用程序: 请在此方框中打勾,以确认您已阅读并接受我们的隐私声明中有关收集/存储和使用您的个人数据的条款:*