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

在我的Windows开发者PC端安装了两个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

时间: 2024-07-30 08:58:00

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

《Raspberry Pi用户指南》——1.2 Windows vs. Linux

1.2 Windows vs. Linux Raspberry Pi用户指南除了尺寸和价格外,树莓派和台式机或笔记本电脑另外一个重要的不同点,就是使用的操作系统,即控制整台电脑的软件系统. 大多数的台式机和笔记本电脑都是使用微软的Windows操作系统或是苹果的OS X操作系统.这两个平台都是闭源的,在使用过程中有版权限制. 闭源操作系统最大的特点在于,控制系统做什么的源代码是不对外开放的.闭源软件的源代码是绝对保密的.用户能够获得最终的软件产品,但无法知道它是如何编写的. 相比较而言,在树莓派

.NET Core多平台开发体验[3]: Linux (Windows Linux子系统)

如果想体验Linux环境下开发和运行.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE这些主流的Distribution都是支持的.如果读者朋友们觉得这种方式比较麻烦,我们也可以采用虚拟机的形式安装相应的Linux Distribution,比如我经常使用的都是安装在VirtualBox上的Ubuntu.对于64

Windows及Linux平台下的计时函数总结

本文对Windows及Linux平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的各种函数. 比如Window平台下特有的Windows API函数GetTickCount().timeGetTime().及QueryPerformanceCounter(), Linux平台下特有的gettimeofday()函数,以及标准的C/C++函数time()和clock().下面分别对此进行简单介绍并附上示例代码. 通用的C/C++计时函数time()和clock() time_t ti

Mirai物联网僵尸攻击竟然可以在Linux平台和Windows平台之间交叉传播

本文讲的是Mirai物联网僵尸攻击竟然可以在Linux平台和Windows平台之间交叉传播, 近日,卡巴斯基实验室通过监测,发现一个全新的物联网木马正在通过Windows设备传播.最早卡巴斯基实验室的安全研究人员观察到这个推送Mirai下载器的扩展器变体是在2017年1月,但其实这个Windows木马以前就有了,只不过通过Windows进行传播的途径也非常有限.不过,如果Mirai木马强制性的远程实施Telnet命令连接,就会从Windows主机传播到Linux主机,尽管这个传播方法目前还没有经

ssh整合-SSH框架整合 Linux平台转移到windows平台

问题描述 SSH框架整合 Linux平台转移到windows平台 在做SSH框架整合时,所有的包都导入了并且运行正常,但不知道为什移到windows上就报错 : Cannot find class [com.mchange.v2.c3p0.CombopooledDataSource] for bean with name 'dataSource' defined in class path resource [applicationContext-ds.xml]; 注:这个项目是在老师的wind

这个程序在windows平台下能正常输出,结果也是对的。到linux下运行在50行产生数组溢出是怎么回事呢

问题描述 importjava.io.*;importjava.util.*;publicclassRout{publicstaticvoidmain(String[]args){//StringfilePath="d:\java\javatest\rout.txt";intreadLine[];readLine=newint[14];StringreadResult[]=newString[14];BufferedReaderreader=null;try{FileReaderfil

安装WMware 在Windows平台下学习Linux

为了更加方便在Windows平台下学习Linux,我们在这装个虚拟机 安装前准备:虚拟机 推荐使用:VMware 下载链接:http://pan.baidu.com/s/1eQxOVPC 安装WMware流程如下: *不建议更改安装目录,默认就行.否则会出问题,反正我是出过   *许可证秘钥请百度:VMware 10 秘钥 本文作者:佚名 来源:51CTO

在linux中开发一个OPC Client 如何才能与windows平台的OPC Server通讯?

问题描述 在linux中开发一个OPC Client 如何才能与windows平台的OPC Server通讯? 如题,在linux中开发一个OPC Client 如何才能与windows平台的OPC Server(是其他厂家的,拿不到源代码)通讯?希望我的问题已经描述清楚了,请各位高手解答:如有赐教请联系qq:743218205,长期有效: 解决方案 OPC UA? 能满足需求吗,是不是取决于外面windows的OPC 服务器属性

Microsoft宣布新版SQL Server将支持Windows与Linux两大平台

今年三月份,微软首次宣布自旗舰产品SQL Server将支持Linux平台,给世界带来了一个巨大的惊喜.到目前为止,只有被邀请才能预览.但是微软11月17日在纽约举办的Connect开发者大会上宣布,想尝试的用户现在可以试用其内测预览版了.此内测预览版是第一个可同时用于Windows和Linux的版本.由于新版SQL Server支持Docker容器,甚至MacOS用户也能够运行.事实上,微软正下赌注--将容器作为预览的主要分发机制之一--它很快就会从Azure Virtual Machines