您的位置: 首页 >互联网 >

用于Linux的Windows子系统正在向开发人员进军

2022-06-11 13:22:40 编辑:欧枫眉 来源:
导读 上周,微软和佳能(UbuntuLinux发行版背后的公司)计划在微软的Red mond校园举办一次开发人员会议,重点讨论Linux的Windows子系统。 阿尔斯

上周,微软和佳能(UbuntuLinux发行版背后的公司)计划在微软的Red mond校园举办一次开发人员会议,重点讨论Linux的Windows子系统。 阿尔斯被邀请了,我手头有机票-但由于冠状病毒,物理会议在最后一分钟被取消了。

请注意,我确实说物理会议被取消了-WSLconf本身继续进行,有22名发言者和21次会谈。 据报道,虚拟参会者是实际参会者注册人数的两倍多,包括来自世界各地的开发者。 在Bluejeans视频会议平台上作了专题介绍,Canonical的开发者律师Hayden Barnes说,录制的会议将很快普遍提供。

大多数Ars读者已经知道,有一个Linux的Windows子系统可用,它确实.Linux的东西。 但更不清楚的是如何实际安装它或为什么你想安装它。

安装部分简单自由,虽然需要两个独立的步骤.. 首先,您需要安装WSL作为Windows功能,使用功能应用程序,可以直接从开始菜单访问。 这需要一个相对快速的下载,然后立即重新启动。

一旦安装了WSL功能,下一步就是在它下面安装一个实际的Linux发行版。 有许多选择-包括卡利,德比安,开放SUSE,阿尔卑斯山,和两个长期支持(L TS)版本的Ubuntu。 我们选择了最新的UbuntuLTS;搜索商店的Ubuntu使它正确,一次点击(后面是几百兆字节的下载)安装它。

一旦Ubuntu18.04的下载和安装完成,Ubuntu18.04LT S会显示为“开始”菜单中的应用程序。 单击它会弹出一个控制台窗口,任何Linux用户都应该立即熟悉它-它是一个bash提示符,里面看起来非常像任何其他Ubuntu安装。

当前版本的WSL是一组API调用,分为一个兼容性层,它将(大多数)Linux内核调用映射到NT内核调用,以及一组大部分完整的userland实用程序。 在引擎盖下面,你看到的是一个完整的Ubuntu虚拟机,运行在Hyper-V下。 基本上,这就是“反向WINE”——在您作为WINE用户的Linux类型中,所有的利弊都将立即熟悉。

另一方面,下一个版本的WSL将本质上是一个完整的超V虚拟机。 WSL2现在可以在Insider构建中使用,并且通常可以在Windows10版本2004中使用。 (视窗10焦点Fossa,有人吗?)

WSL2和标准超VVM之间的主要区别在于集成。 没有客人驱动程序要安装,C:驱动器(连同任何其他窗口驱动字母)已经为您安装读写,在/mnt/c下。 您可以轻松和无缝地阅读和写入文件跨越操作系统障碍,而不需要太多地考虑它。

WSL2系统也将更快地按需使用,而不是您可以期望一个标准的VM启动-微软表示,在冷启动后第一次单击WSL2图标和获得完全响应的Bash提示之间,预计将不到两秒钟。

老实说,这里-如果你不是一个开发人员,一个Linux用户,或者某个已经对Linux很好奇的人.你可能不知道。 如果你是一个Linux用户-或者Linux-好奇-WSL是一个很好的方法,让你的脚湿和实验自由,而不需要双启动。 这在很大程度上取代了古老的工作方法,如古老的Cygwin,它提供了部分类似Linux的用户域环境,仍然运行在Windows本身下面。

虽然可以在WSL下运行一些GUI(图形用户界面)应用程序,使用一个额外的X服务器,如MobaXTerm,这真的不是WSL当前的重点-至少,这不是WSLconf上的人们最感兴趣的。 大多数开发人员感到兴奋的是WSL下跨平台开发的便利性。

为了演示,我们使用Nim构建了一个简单的HelloWorld风格的程序.. Nim是一种较高级的语言,可以方便地编译成标准的C代码;然后通过GCC编译器运行C代码以生成可执行二进制代码。

我们确实想清楚,Nim绝不是在WSL下构建跨平台代码的唯一方法。 我们只是把它作为一种干净、快速、简单的方法来制作一个HelloWorld风格的应用程序,而不需要大量的cruft来阻止看到正在发生的事情。

编译此Nim代码会生成一个可执行文件,该可执行文件接受给它的第一个参数,并使用它来问候用户:

通过传递nim编译几个额外的参数,您可以-尽管仍然在Linux环境中-而不是构建一个Windows可执行文件,将生成的hello.exeout复制到您的C:驱动器中,然后从Windows本身运行它。

显然,这是一个非常微不足道的例子-但不难找到更广泛和强大的例子,相同的基本技术正在使用在更大的环境中。

使用WSL和Visual Studio可以使公司快速地将Windows本地开发应用到Linux构建环境中,并大大简化了他们的工具链。 EA使用Visual Studio和WSL来构建和调试其冻伤引擎就是一个很好的例子:

在EA,我们的Frostbite引擎有一个Linux组件,用于我们的专用服务器,为我们最受欢迎的游戏提供服务。 当我们看到微软在Visual Studio的工作负载中为Linux添加支持时,这引起了我的兴趣!

在EA,我们的游戏开发人员习惯于Windows环境的开发,所以我们认为迫使他们直接在Linux环境中开发将是一个困难的问题[.]在Visual StudioLinux工作负载发布后,我们发现Micros of t基本上把所有的工具/过程都很好地打包成Visual Studio工作负载,我们可以要求开发人员安装并能够直接在Visual Studio中调试!

到目前为止,与WSL的集成和工作负载的远程调试已经取得了成功,并大大清理了我们围绕Linux调试/开发的工具/过程。 我们的开发人员对改进的经验非常满意。

EA和Frostbite远不是受益于微软最近但显然是严重的承诺深度Linux集成和支持的大型项目的唯一例子。 过去几年Linux游戏的复兴主要是由于Unity引擎对Linux的支持,但许多人可能没有意识到,该引擎的Linux支持来自于构建。 NET,它本身就是一个完全跨平台的开发环境。

在WSL上进行的实际会谈包括侧重于Infosec、Devops自动化、Kubernetes等主题。 我们期待着它们变得普遍可用,并将在这里更新链接,一旦他们这样做。

本文自发布以来已被纠正,以修复当前的Windows子系统的错误标识,通常可用版本的Linux为WSL2。


免责声明:本文由用户上传,如有侵权请联系删除!

精彩推荐

图文推荐

点击排行

2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ280 715 8082   备案号:闽ICP备19027007号-6

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。