微软已开始测试对在 Windows 上运行 Linux GUI 应用程序的支持

微软宣布开始测试在基于 WSL2 子系统(Linux 的 Windows 子系统)的环境中使用图形界面运行 Linux 应用程序的能力,该子系统旨在在 Windows 上运行 Linux 可执行文件。 应用程序与主 Windows 桌面完全集成,包括支持在“开始”菜单中放置快捷方式、音频播放、麦克风录音、OpenGL 硬件加速、在任务栏中显示有关程序的信息、使用 Alt-Tab 在程序之间切换、在 Windows 之间复制数据- 通过剪贴板和 Linux 程序。

微软已开始测试对在 Windows 上运行 Linux GUI 应用程序的支持

为了将 Linux 应用程序界面的输出组织到主 Windows 桌面,使用了 Microsoft 开发的 RAIL-Shell 复合管理器,该管理器使用 Wayland 协议并基于 Weston 代码库。 使用 RDP-RAIL(本地集成的 RDP 远程应用程序)后端执行输出,该后端与 Weston 中以前可用的 RDP 后端不同,因为复合管理器不会渲染桌面本身,而是通过 RDP 重定向各个表面 (wl_surface)用于在主 Windows 桌面上显示的 RAIL 通道。 XWayland 用于运行 X11 应用程序。

微软已开始测试对在 Windows 上运行 Linux GUI 应用程序的支持

音频输出使用 PulseAudio 服务器进行组织,该服务器还使用 RDP 协议与 Windows 进行交互(rdp-sink 插件用于音频输出,rdp-source 插件用于输入)。 复合服务器、XWayland 和 PulseAudio 以名为 WSLGd 的通用迷你发行版的形式打包,其中包括用于抽象图形和音频子系统的组件,并且基于 CBL-Mariner Linux 发行版(也用于 Microsoft 云基础设施) 。 WSLGd 使用虚拟化机制运行,virtio-fs 用于在 Linux 来宾环境和 Windows 主机系统之间共享访问。

FreeRDP作为WSLGd Linux环境下启动的RDP服务器,mstsc作为Windows端的RDP客户端。 为了检测现有的图形 Linux 应用程序并将其显示在 Windows 菜单中,已准备好 WSLDVCPlugin 处理程序。 对于安装在 WSL2 环境中的常规 Linux 发行版(例如 Ubuntu、Debian 和 CenOS),WSLGd 中运行的一组组件通过提供使用 Wayland、X11 和 PulseAudio 协议处理请求的套接字进行交互。 为 WSLGd 准备的绑定是根据 MIT 许可证分发的。

安装 WSLGd 需要 Windows 10 Insider Preview 版本至少为 21362。今后,WSLGd 将可用于常规版本的 Windows,而无需参与 Insider Preview 计划。 WSLGd 的安装是通过执行标准命令“wsl —install”来完成的,例如,对于 Ubuntu -“wsl —install -d Ubuntu”。 对于现有的 WSL2 环境,可以使用“wsl --update”命令安装 WSLGd(仅支持使用 Linux 内核且不支持调用转换的 WSL2 环境)。 图形应用程序是通过发行版的标准包管理器安装的。

WSLGd 仅提供用于 2D 图形输出的引擎,为了加速基于 OpenGL 的 3D 图形,WSL2 中安装的发行版提供了虚拟 GPU (vGPU) 的使用。 为 AMD、Intel 和 NVIDIA 芯片提供了适用于 WSL 的 vGPU 驱动程序。 图形加速是通过提供一个在 DirectX 12 上实现 OpenGL 的层来提供的。该层以 d3d12 驱动程序的形式设计,包含在 Mesa 21.0 的主要部分中,并与 Collabora 联合开发。

虚拟 GPU 在 Linux 中使用 /dev/dxg 设备以及复制 Windows 内核的 WDDM(Windows 显示驱动程序模型)D3DKMT 的服务来实现。 驱动程序使用 VM 总线建立与物理 GPU 的连接。 Linux 应用程序具有与本机 Windows 应用程序相同级别的 GPU 访问权限,无需在 Windows 和 Linux 之间共享资源。 在配备 Intel GPU 的 Surface Book Gen3 设备上进行的性能测试表明,在本机 Win32 环境中,Geeks3D GpuTest 测试展示了 19 FPS,在使用 vGPU 的 Linux 环境中为 18 FPS,在 Mesa 中进行软件渲染时为 1 FPS。



来源: opennet.ru

添加评论