上手指南:开启你的Windows平台Linux子系统之路

在我的Windows开发者PC端安装了两个Linux发行版,它们不是虚拟机或双启动系统,也没有去寻找下载页面和解压缩安装文件通常路线,而是到Windows商店搜索Linux,选择想要的发行版并且安装上。下载完毕之后,打开终端窗口并填写用户名和密码,开始安装。

上手指南:开启你的Windows平台Linux子系统之路


我运行了最新版本的Windows10系统,添加了Windows平台Linux子系统最新功能。引入了Windows10周年升级版和Windows10最新升级版本。Windows平台Linux子系统(WSL)是微软对于"如何让开发人员再次使用Windows"最好的回答。

微软如何让开发者使用Windows

如何让开发者再次使用Windows?问题很简单,要了解开发人员的切实需求。但是从Windows得到答案却不是那么简单。基于MacOS和Linux的开发商使用命令行工具在Linux服务器的云中工作,他们已经有了自己的工具链,应用程序和脚本在Docker、GitHub、Jenkins、Ansible、Chef和TravisCI中使用。那么,怎么才能让开发者来使用Windows呢?

第一步是以一种无缝的方式将Unix引入熟悉的Windows桌面。MacOS有内在优势的Unix用户,因为它是建立在一个BSDUnix内核的实现,通过对每一台Mac终端应用程序访问。

但是Windows的NT内核有一个传统,可以运行多种字符,而不是建立熟悉的工具新版本,然后在Windows中重新编译它们。为什么不直接在Windows中运行Linux二进制程序?通过在阿斯托利亚项目中为WindowsPhone和Windows10的微微进程模型提供取消的Android兼容层,微软可以提供一个新的操作系统子系统,它可以将Linux系统调用转换为Windows,允许代码无需更改即可运行。

与Ubuntu合作的初始版本提供了一个bashshell在与Windows相似的终端上运行(可以同时在cmd和PowerShell中使用)。Windows内部人员的第一个测试构建是有限的,但是随着Windows10周年纪念版升级的临近,测试构建迅速升级,允许复杂的控制台应用程序运行,支持Ubuntu的APT安装程序,以便快速访问工具和服务库。随着开发升级,微软和Canonical能够WSLUbuntu的最新长期支持版本--16.04版本。

WSL:在Linux控制台的Linux二进制程序

从技术上讲,WSL是控制台应用程序,提供开发工具和远程访问的处所,在公有云上运行的Linux服务器的外壳支持变得更灵活,虽然这不是正式的支持。用户安装和运行基于X的GUI应用程序,使用WindowsX服务器提供一个完整的Linux桌面体验WSL。

使用任何的个人Windows平台Linux子系统就像使用Linux一样。您可以访问shell,并通过它访问命令行。安装应用程序就如同使用Ubuntu的apt-get或者在Suse中使用yast或zypper一样。当在windows中使用Fedore时,你会用到yum。

早期的WSL构建存在问题,在运行一些应用时,主要的附属应用不支持。但是自从Windows10周年更新发布以来,WSL就变得简单多了,现在即便是像Docker这样复杂的程序也可以安装和运行。

当然,WSL的模式相似,你需要在你的PC上做跨平台的开发和管理工具。原生的Linux服务器今年晚些时候在Windows服务器上运行,WSL作为企业系统的一个关键组件工具集将变得越来越重要。事实上,你应该已经将它安装在你的开发和操作WindowsPC上了。(WSL在Windows服务器不支持大规模的Linux工作负载或服务器,但它会给你一个直接管理连接到托管的Linux容器,支持现有的管理脚本和工具。)

如何整合Linux和Windows工具链

微软已经可以实现从WSL转向Windows或者从Windows转向WSL。你可以从Windows命令行调用Linux二进制程序,使用WSL默认用户。您可以从Windows调用Windows二进制文件(并且在VisualStudio代码中可以从终端访问,并允许您在不离开开发工具、不离开Windows的情况下测试UNIX代码)。

像VisualStudio这样的工具对于WSL的支持非常好。如果微软能够成功地让开发人员接受其平台,其平台的工具必须能够在Windows的Linux子系统上直接运行。提供一种混合工作方式,将最好的Windows和Linux连接在一起。可以想象未来在VisualStudio集成Linux终端,在WSL服务运行中推出webhook和其他API。

WSL是扩展在Windows中的Linux发行版

关于Windows平台的Linux子系统研发最近又有新动作。两个新的Linux发行版的发布,将与现有的Ubuntu发行版一起运行。除了现有的Ubuntu发布:openSUSE和SUSE企业服务器。Suse发布在Windows商店,可供内部程序用户使用。

添加更多的Linux版本是件好事;不是每个人都喜欢Ubuntu模式或者Suse的模式。Fedore也加入了WSL,可以使用Linux工具、服务和熟悉的工作方式,将脚本和二进制文件从现有的工具链带到WindowsPC上。WSL甚至可以在每个单独的终端,一次呈现出几种Linux的特性。

支持许多不同的Linux发行版是很有意义的。在过去的几年中,不同的供应商和团队专注于不同的案例,从相同的虚拟组件中构建不同的平台。顺序分布像Fedora和Ubuntu非常通用的操作系统。从开发人员的角度来看,使用它们是有意义的。就像容器聚焦于CoreOS一样,未来,WSL还会推出更多的专业版本。




作者:刘妮娜译
来源:51CTO
上一篇:javascript学习笔记---ECMAScript语法(变量)


下一篇:C++ 智能指针详解