[Windows翻译]GUI应用支持的初始预览现在可以用于Linux的Windows子系统

185 阅读6分钟

原文地址:devblogs.microsoft.com/commandline…

原文作者:devblogs.microsoft.com/commandline…

发布时间:2021年4月21日, 2021

一年前,在BUILD 2020上,我们介绍了我们的目标,即把Linux GUI应用带到Linux的Windows子系统(WSL)上运行Linux GUI应用。我们很自豪地宣布这一备受期待开源功能的第一次预览 我们给这个功能起了个绰号:"WSLg"。请看下面的视频或继续阅读,看看你能用这个功能做什么,它是如何工作的,以及如何安装它。

www.youtube.com/watch?v=f8_…

我可以用GUI应用支持做什么?

WSL可以让你运行一个Linux环境,到目前为止,它的重点是启用命令行工具的实用程序和应用程序。现在,GUI应用支持也可以让你使用你最喜欢的Linux GUI应用。WSL被用于各种各样的应用、工作负载和使用情况,所以最终要看你想用GUI应用支持来做什么。下面,我们强调了一些关键场景,以帮助你爱上在Linux环境中运行应用程序。

使用你选择的IDE来开发Linux项目

Visual Studio Code有一个惊人的经验,使用VS Code Remote为你创造了一种方式,让你在Windows机器上直接拥有一个成熟的Linux IDE,在Windows和不同的WSL发行版上都保持扩展和设置(你可以在这里查看我们的VS Code入门教程。WSLg可以让你运行其他IDE,如gedit、基于JetBrains的编辑器、gvim等,以一种高性能的方式测试、构建和调试你的Linux应用程序。

下面是一个在WSL中直接运行gedit和gvim来编辑Linux文件的例子。

1.gif

运行只有Linux的应用程序,或Linux的特定使用情况,如测试

你可以使用这个功能来运行任何可能只存在于Linux中的GUI应用程序,或者在Linux环境下运行你自己的应用程序或测试。这对于想要测试他们的跨平台应用程序的开发者来说可能是非常有用的,因为他们现在可以直接在Windows 10上运行,然后在Linux内部轻松运行,而不需要更换机器或管理虚拟机。

让我们看一个在WSL中运行TestCafe Studio的例子,从Linux中运行的微软Edge浏览器进行一些网络测试。

1.gif

建立、测试和使用使用音频或内置音频支持的麦克风的Linux应用程序 WSL上的Linux GUI应用程序也将包括开箱即用的音频和麦克风支持。这个令人兴奋的方面将使你的应用程序能够播放音频提示并利用麦克风,是构建、测试或使用电影播放器、电信应用程序等的完美选择。

这里有一个使用在Linux上运行的Audacity来录制一些音频并播放的例子。

1.gif

奖励:利用WSL的GPU接入,运行具有3D加速功能的Linux应用程序

作为这项功能的一部分,我们还启用了对GPU加速的3D图形的支持 由于在Mesa 21.0中完成的工作,任何正在进行复杂的3D渲染的应用程序都可以利用OpenGL来加速这些使用Windows 10机器上的GPU。这将使你的一些更复杂的应用程序顺利运行,如运行Gazebo,一个机器人模拟工具。这种体验很快就会默认包含在不同的WSL发行版中,然而,你可以通过遵循这篇博文中的说明来获得正确的图形驱动,并确保你的发行版有一个兼容的Mesa版本,从而立即获得它。

下面你可以看到Gazebo应用程序模拟一个机器人探索一个虚拟洞穴,以及Rviz应用程序可视化机器人的摄像机画面和激光场传感器的输出。由于有了GPU加速的3D图形,我们可以以60FPS的速度运行这个演示。

1.gif

这个功能是如何工作的?

从上面的演示中,你可能已经注意到我们不需要手动启动一个X服务器。这是因为有了这个功能,我们就会自动启动一个配套的系统发行版,包含Wayland、X服务器、脉冲音频服务器,以及其他一切使Linux GUI应用程序与Windows通信所需的东西。在你使用完GUI应用程序并终止你的WSL发行版后,系统发行版也会自动结束其会话。

就像WSL管道的其他部分一样,我们的目的是让这个组件对用户来说是完全管理和无缝的。我们的目的是让这个系统发行版对用户来说尽可能的不可见,这就是为什么当你运行wsl -l -v时,你不会看到这个系统发行版。最后,我们很高兴地介绍,我们使用微软的CBL-Mariner发行版来做这个系统发行版! CBL-Mariner是一个内部的Linux发行版,传统上用于微软的云基础设施和边缘产品和服务,我们现在将它的使用扩展到支持WSL内部的GUI应用。你可以查看下面的图表,看看这个功能的架构的整体总结。

image.png 图片WSLg架构概述

要想全面深入地了解我们为实现这一功能所做的工作和深入的技术细节,请查看由实现这一功能的开发人员撰写的这篇博文

开始使用该功能

在我们将该功能完全推广到WSL体验中之前,我们开始将其作为一个初始预览。要开始使用Linux GUI应用支持,你需要确保你是在Windows 10 Insiders预览版21364或更高版本。如果你已经安装了WSL,你所需要做的就是运行wsl --update,你就会被设置为使用GUI应用程序。如果你没有启用WSL,运行wsl --install将自动安装WSLg作为WSL初始设置的一部分。

你可以在GitHub仓库的README: github.com/microsoft/w… 中找到完整的安装说明。我们还强烈建议你在WSL中启用GPU计算支持,以获得最佳性能,请参见安装说明的这一部分,了解如何确保启用该功能。

反馈意见

请在WSLg Github资源库中提出任何技术问题,或对GUI应用支持的功能要求。对于一般的WSL问题,请在WSL资源库中提出。你也可以在Twitter上关注我@craigaloewen和所有使用此列表的WSL团队成员的情况。请继续关注本博客,了解更多激动人心的WSL公告,我们迫不及待地想听听你对这个新功能的看法。


通过www.DeepL.com/Translator(免费版)翻译