当前位置: 首页 > 科技观察

我们使用Windows正式运行LinuxGUI应用程序,不愧是“胶水操作系统”

时间:2023-03-19 23:26:41 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处.现在,Windows不仅是最好的Linux发行版,也是最好的Linux桌面。发生了什么?原来是官方的WindowsSubsystemforLinux(WSL),终于支持LinuxGUI了!也就是说,您现在可以直接在Windows上运行您最喜欢的GUI编辑器和工具来构建和测试Linux应用程序。于是在一年的“布谷鸟”之后,微软终于实现了在去年Build开发者大会上立下的flag:在Windows中运行LinuxIDE开发Linux程序,在Windows中运行只支持Linux的GUI程序,或者在Windows中运行仅支持Linux的GUI程序。Linux环境测试你的程序支持GPU3D加速……那么,实际上手体验后的效果如何呢?我们为您测试了它。体验要使用WSLg,首先要加入WindowsInsiderExperienceProgram,选择Dev频道。接下来将您的系统升级到最新的预览版。如果你已经安装了WSL,直接运行“wsl--update”即可。如果尚未安装,运行“wsl--install”将默认安装带有WSLg的最新版本。△如果不指定release版本,默认安装Ubuntu。下载后需要重启,重启后会自动安装。在Linux子系统中安装了几个基本程序后,我回到Windows,看到,我的好家伙,它直接出现在开始菜单中了。△可是为什么图标都是小企鹅呢?打开任何Gnome文件管理器并尝试一下。拖窗拖选时,还是能明显感觉到少许掉帧(SurfaceBook2)。接下来安装VSCode的WSL插件。在WSL中安装PyQt,写个最简单的demo,运行成功,跨平台调试后就方便了。如果电脑配置好,也可以在WSL中安装Linux环境的开发工具。有人试过Pycharm的社区版,可以用。如果调试时出错,安装一些依赖即可。sudoapt-getinstallbuild-essentialautoconflibtool“最好的Linux桌面”是一个叫做WSLg的功能。目前相关代码已经开源,极客们又来玩了。具体到显示服务,WSLg同时支持X11和Wayland协议,可以通过微软内置的远程桌面进行连接。据微软称,WSLg比之前的第三方实现更稳定、更方便。(毕竟是官方指定的)WSLg基本上是在Wayland基础上开发的Linux桌面,通过托管XWayland服务器来支持X11应用。微软选择Weston作为WSLg的核心,它是Wayland合成器的参考实现,包括大量扩展的RDP后端、RAIL/VAILshell和XWindow管理器。换句话说,如果一个Linux程序在LinuxWeston合成器中正常运行,那么它在WSLg中也能正常运行。下图展示了WSLg的整体结构。该架构的一些技术细节如下:首先,它是对RDP后端实现的功能进行大量扩展。例如,传送可以显示在单个窗口中,而不是整个桌面。开发者使用RDPRAIL技术将远程Linux应用集成到本地桌面;同时,使用VAIL技术进行传输,实现主机和客户端共享内存。或者,在Windows桌面上启用Linux应用程序的缩放以支持多显示器配置,同时支持单个显示器的DPI(图像输出分辨率)缩放。值得一提的是,这次还加入了剪贴板功能,可以直接在Linux和Windows应用之间复制文本、html和位图数据,比虚拟机方便多了。当然,目前还不支持拖放。然后,这次还加入了对音频输入输出的支持。开发人员编写了一个小插件,用于在PulseAudio和RDP后端之间传输音频数据,允许音频流通过RDP传输集成到本地或远程RDP客户端。此外,还有后台(用于启动、暂停Weston核心、建立与主机的RDP连接、传输中止时重新启动)和应用程序管理插件(卸载、安装Linux应用程序)等功能。但是,当前的“预览版”WSLg仍然使用服务器端来移动和调整窗口大小,导致窗口移动和调整大小不如本地操作流畅。除了软件,WSLg还支持OpenGL应用的加速,可以运行更复杂的3D应用。微软员工StevePronost做了简单的性能测试,独立显卡和核心显卡的加速效果都很明显。今年早些时候,微软向WSL添加了机器学习APIDirectML。此外,现在还支持GPU和LinuxGUI应用,并且可以直接在WSL2上运行NVIDIACUDA加速功能,可以加速cuDNN、cuBLAS、TensorRT等CUDA-X库。这意味着开发者可以直接在WSL上训练神经网络,而无需安装单独的Linux系统。WSLg的开发者表示,他们将继续完善项目,提升用户体验。套娃开始了。现在Windows可以运行Linux程序,而Linux早就可以运行Windows程序了。脑洞大开的网友想到这里就坐不住了:如果在WSL下运行Wine,是不是就相当于Windows套娃了?先从一个简单的开始,在WSLg中的Linux下运行一个Wine下的IE。注意时间,8分钟后,这件事就势不可挡了:用JavaScript编写的Windows3.1在WSLg下运行在Linux的Chrome中。另据报道,微软正在开发基于WSL的Android子系统。没想到,Windows成了“胶水操作系统”。