Linux on Windows: This new upgrade allows you to run graphical apps simply and effectively
微软已经发布了其用于WSL 2的图形工具的预览版,它出奇的好。
首次发布将近一年后,微软终于在Windows子系统Linux版中发布了 对图形应用程序的支持预览。这是Windows 10的最新Dev Channel版本附带的,这是对WSL的重大升级,显示了将来的版本如何将Linux应用程序与Windows桌面集成。
微软称此新功能为WSLg,它是对现有WSL 2平台的更新安装,而无需对已安装的WSL Linux发行版进行任何更改。我使用Windows安装的标准Ubuntu WSL版本进行了测试,同时使用了现有安装和全新设置。(如果您过去曾尝试使用X服务器或xrdp向WSL添加图形,则建议使用全新的设置,因为这样可以避免与现有脚本和Windows应用程序混淆。)
什么是WSLg?
WSLg是一项引人入胜的工程。它实际上是一个全新的Linux发行版,与您的WSL Linux一起运行,向其中添加了视频和音频的挂钩,设置了环境变量以重定向X和Wayland调用以及音频。微软已经在自己的内部Linux发行版CBL-Mariner的基础上构建了该版本,该 CBL-Mariner旨在成为用于容器和边缘设备的最小Linux。这是一个理想的工具,它仅提供支持WSLg组件所需的最少服务: XWayland, Weston, PulseAudio 和 FreeRDP。在Windows方面,它向Windows RDP客户端添加了一个插件,使它无需交付任何工作即可交付应用程序窗口。
如果您将X11与WSL一起使用,将会发现WSLg变得更容易上手。无需在Windows中安装X Server(必须在不安全模式下运行X Server才能使WSL 2的随机IP地址正常工作)或每次启动WSL时都运行脚本来配置网络。它更接近使用 TechRepublic最近研究的 xrdp技术,它基于Microsoft自己的远程桌面协议和正在开发的Linux Wayland用户界面技术,将Linux应用程序直接交付到Windows桌面。
WSLg的目的是使一切正常工作-您无需执行任何操作即可将Linux GUI引入Windows桌面。代码应安装在WSL中,并且可以通过WSLg在Windows中使用,而无需进行其他配置。经过几个小时的测试,看来微软已经成功了:它简单易用,并且运行良好。
WSLg入门
一旦升级到Windows 10 build 21364或更高版本,安装WSLg肯定很容易。在PowerShell或cmd中的管理员命令行中,键入“ wsl –install”以开始使用WSL 2和WSLg。接下来,安装Linux发行版-Windows Store中有多个发行版,包括Ubuntu。如果您以前从未使用过WSL,则 Ubuntu 是一个很好的,受良好支持的发行版,并且已在Windows Store版本中添加了一些WSL特定的功能。如果您已经在运行WSL 2,则可以使用“ wsl –update”升级现有安装以添加WSLg。
应用程序显示在Windows“开始”菜单的以其父Linux发行版命名的文件夹中。Microsoft还向Linux应用程序图标添加了一个小的Tux覆盖图,以将其与Windows应用程序区分开。
安装支持WSL的图形驱动程序也是一个好主意,并提供Nvidia,AMD和Intel可用的版本。这些功能包括对硬件加速的OpenGL的支持,这将加快显示速度并将所有延迟降至最低。准备解决在Windows中设置这些图形驱动程序之一的问题,因为它们的测试版质量很高,并且会引起问题。它们不仅为Linux中的OpenGL提供了挂钩,而且还增加了对GPU编程的支持。这意味着您可以开始使用WSL进行机器学习开发以及其他任务。
Once WSLg is installed and running, you won't notice any difference from a standard WSL 2 instance. It's only when you use your Linux distribution's package manager to install GUI software that you see the first signs of WSLg. Once an application has been installed, WSLg will add it to your Windows Start menu, in a folder under the name of your Linux distribution. You can then launch it just like any Windows application.
在后台,Windows启动Linux,同时启动发行版和WSLg工具。它们自动连接到设置为托管您的应用程序的远程桌面会话,并在Windows桌面上将其显示为Windows应用程序。然后,您可以像使用任何其他Windows应用程序一样使用鼠标和键盘与之交互。或者,您可以从WSL命令行启动图形化Linux应用程序。
引擎盖下
WSLg的体系结构意味着它支持X和Wayland应用程序,并带有PulseAudio来提供声音支持。它将使用您的默认声音设备,而无需其他配置。如果您使用WSL 2来构建和测试需要声音支持的应用程序,则这是利用现有硬件和Windows声音支持的一种快速简便的方法。
有关Windows的更多信息
微软正在使用公开的GitHub存储库公开开发WSLg 。您可以使用它来报告错误和问题,以及构建和修改自己的版本。在幕后,它基于各种不同的开源组件和工具以及Microsoft自己的代码构建而成。它建立在熟悉的Weston Wayland合成器的基础上,可与直接使用Wayland并使用XWayland作为X11和Wayland世界之间的桥梁的应用程序一起使用。
请参阅: 清单:保护Windows 10系统的安全 (TechRepublic Premium)
Weston和Windows桌面之间的桥梁是熟悉的 RDP 协议。RDP专为在Windows PC上提供Windows Server台式机而开发,它内置于Windows中,而且由于FreeRDP,它是Weston的一部分。Microsoft一直在使用RDP作为其 Windows虚拟桌面 工具的一部分来交付应用程序,并且最近向Windows Defender Application Guard添加了对这些技术的支持,其中,自定义Hyper-V虚拟机管理程序在安全地托管了运行Edge或Office的Windows VM容器。这些相同的技术将Linux应用程序交付到Windows,而不是完整的Linux桌面。
WSLg建立在Microsoft自己的CBL-Mariner Linux发行版之上,作为系统服务运行。您无法确定它正在运行,因为它对于WSL管理工具是不可见的,并且尽管您可以从终端登录,但是在发行版中进行的所有操作都会在下次重新启动时重置,因为它是从固定映像启动的。在每次启动时。这使Microsoft可以将WSLg视为固定系统组件,因此它可以通过安装新的WSLg虚拟机来更新系统。
相同的Hyper-V虚拟机管理程序托管您的WSL 2实例,因此使用这些技术呈现WSL并不是很大的一步。结合CBL-Mariner,这意味着WSLg对系统资源的影响极低。
游戏对Linux图形支持的一个很好的测试,并且Steam运行良好(需要做一些工作才能将其安装在Ubuntu的WSL发行版上)。
使用WSLg
由于WSLg使用Wayland和XWayland,因此并不是所有的Linux GUI应用程序都可以运行(尽管我还没有找到任何不可用的Linux GUI应用程序),并且如果您拥有特定的基本工具,可能仍需要运行X Server或xrdp。将无法正常工作。尽管如此,这是一项令人印象深刻的工程,随着Wayland对Linux的支持不断提高,它只会变得越来越好。您可能需要研究使用最新版本的Mesa3D, 以便在 WSLg中提供更好的OpenGL支持,以及支持WSLg的Windows图形驱动程序。微软鼓励Linux发行版将其纳入其WSL版本中,因此性能将继续提高。
Mesa3D支持应该帮助使用WSL 2的开发人员将游戏移植到Linux,以及允许复杂的Unix CAD应用程序和其他设计工具使用WSLg在Windows上运行,而无需完整的端口。
如果您担心应用程序支持,我们还没有找到任何不适用于WSLg的东西。我们已经能够运行Ubuntu桌面工具,Nethack的X11端口之类的经典Unix游戏,Steam的Linux游戏,许多不同的编辑器和IDE,LibreOffice生产套件以及Microsoft自己的Edge浏览器(使用它来播放视频)和音频)。在Windows上使用Linux应用程序的体验非常类似于通过Parallels在macOS上运行Windows应用程序。
Linux应用程序作为“远程桌面连接”任务显示在Windows任务管理器中。
应用程序从“开始”菜单启动,在桌面上显示为标准窗口。鼠标指针和窗口工具确实会在这些窗口中切换到Linux版本,但这只是意料之中的。调整窗口的大小有点麻烦,因为窗口是由Weston Waylond合成器处理的,而不是Windows。最后,如果应用程序挂起,则可以使用Windows任务管理器将其关闭:它们显示为“远程桌面连接”会话,可以从那里进行管理。
微软一直在研究WSLg,并在2020年底将早期版本发送给一些开发人员。即使如此,这是一个令人惊讶的完美发行版,可以预览。WSLg架构经过深思熟虑,可以在高端工作站级硬件和预算教育型笔记本电脑上使用。如果您是需要同时在Windows和Linux上工作并且需要构建UI的开发人员,则非常值得安装-尤其是将来的.NET版本中将提供Linux桌面图形支持。