微软宣布 几天前 开始测试在基于WSL2的环境中运行基于Linux的GUI应用程序的能力的开始 (适用于Linux的Windows子系统)。
应用程序完全集成 Windows主桌面,包括支持在“开始”菜单上放置快捷方式,播放声音,通过麦克风录音,OpenGL硬件加速,在任务栏中显示有关程序的信息,使用Alt-Tab在程序之间切换以及在Windows和Linux之间复制数据的支持程序通过剪贴板。
要将Linux应用程序界面的输出组织到Windows主桌面, 使用RAIL-Shell复合管理器 由Microsoft开发的 它使用Wayland协议,并且基于Weston代码库。
渲染是使用本地集成的RDP远程应用程序(本地集成的RDP远程应用程序)后端执行的,这与以前可从Weston获得的RDP后端不同,因为复合管理器不会渲染桌面本身,而是重定向各个表面( wl_surface)通过RDP RAIL通道显示在主Windows桌面上。 XWayland用于运行X11应用程序。
声音输出由PulseAudio服务器组织, 它还使用RDP协议与Windows交互(rdp-sink插件用于声音输出,而rdp-source用于输入)。
Composite Server,XWayland和PulseAudio以通用微型发行版WSLGd的形式打包,其中包括用于图形和声音子系统抽象的组件,并且基于CBL-Mariner Linux发行版,该发行版也用于Microsoft云基础架构中。 WSLGd使用虚拟化机制启动,而virtio-fs用于Linux来宾和Windows主机之间的共享。
FreeRDP用作在WSLGd Linux环境中启动的RDP服务器,而mstsc充当Windows端的RDP客户端。 已准备好WSLDVCPlugin驱动程序,以识别可用的图形Linux应用程序并将其显示在Windows菜单中。 在WSL2环境中安装了常见的Linux发行版(例如Ubuntu,Debian和CenOS)之后,WSLGd组件集通过提供用于处理Wayland,X11和PulseAudio请求的套接字进行交互。
虚拟GPU是使用/ dev / dxg设备在Linux上实现的 与模仿Windows内核的Windows显示驱动程序模型(WDDM)D3DKMT的服务一起使用。
控制器通过VM总线组织到物理GPU的连接,此外,Linux应用程序具有与本机Windows应用程序相同的GPU访问级别,而无需强制Windows和Linux之间共享资源。
在具有Intel GPU的Surface Book Gen3设备上的性能测试表明,在本机Win32环境中,Geeks3D GpuTest基准测试显示了19 FPS,在具有vGPU-18 FPS和在Mesa上呈现软件-1 FPS的Linux环境中。
WSLGd安装 需要Windows 10 Insider Preview至少版本21362, 虽然 e将来,普通版本将提供安装WSLGd的功能 Windows,无需参加Insider Preview程序。
WSLGd仅提供用于渲染2D图形的机制,以及用于在WSL3上安装的发行版上加速基于OpenGL的2D图形的机制,建议使用虚拟GPU(vGPU)。
通过为层提供DirectX 12上的OpenGL实现来提供图形加速。该层以d3d12驱动程序的形式进行设计,该驱动程序包含在Mesa 21.0的主要部分中,并与Collabora一起开发。
WSLGd安装是通过运行典型的命令“ wsl –install”来进行的,例如对于Ubuntu-“ wsl –install -d Ubuntu”。
对于现有的WSL2环境,使用“ wsl –update”命令安装WSLGd(仅支持使用Linux内核的WSL2环境,而不支持调用转换)。 图形应用程序是通过分发工具包的常规程序包管理器安装的。
数据来源: https://devblogs.microsoft.com/
显然,对于某些人或公司来说,Linux非常不舒服。 从我的角度来看,关键是要摆脱Linux。