WSL,Windows Subsystem
for Linux,就是之前的Bash on [Ubuntu on]
Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程序。

    首先要说一句,其实Windows
10在一周年更新(1607,内部版本14393)的时候就加入了wsl,但是直到刚刚更新的秋季创意者更新(1709,内部版本16299),wsl才正式脱离beta,逐渐趋于稳定,所以我选择这个时候再写这篇文章。以下内容都是基于秋季创意者更新(1709,内部版本16299.19)。

   
接下来,我们正式介绍并安装wsl。

www.512.net,Windows Subsystem for
Linux
(简称WSL)是一个为在Windows
10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu
14.04 “Trusty
Tahr”映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。[[1]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-1)[[2]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-2)[[3]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-3)

style=”font-family: Microsoft YaHei”>WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu的用户模式二进制文件在其上运行。[[4]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-4)

style=”font-family: Microsoft YaHei”>该子系统不能运行所有Linux软件,例如那些图形用户界面,以及那些需要未实现的Linux内核服务的软件。[[5]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-Ars-March-5)不过,这可以用在外部X服务器上运行的图形X
Window系统缓解。[[6]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-6)

style=”font-family: Microsoft YaHei”>此子系统起源于命运多舛的Astoria项目,其目的是允许Android应用运行在Windows
10
Mobile上。[[5]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-Ars-March-5)此功能组件从Windows
10 Insider
Preview
build
14316开始可用。[[7]](https://zh.wikipedia.org/wiki/Windows_Subsystem_for_Linux#cite_note-7)

style=”font-family: Microsoft YaHei; font-size: 15px”>——维基百科

   
首先打开设置,进入应用,选择程序和功能,点击启用或关闭Windows功能,勾选适用于Linux的Windows子系统,接下来重启。

www.512.net 1

www.512.net 2

   
在beta的时候我们需要在powershell里面输入bash才能下载wsl,而且没有国内下载节点,不支持断点续传,所以一旦网络不稳定就废了。在1709版本的Windows10中,我们可以去商店搜索Ubuntu来下载,现在不但有Ubuntu,还有SUSE和openSUSE。(在Windows商店里下载Ubuntu是不是感觉很诡异w(゚Д゚)w

www.512.net 3

www.512.net 4

   
安装完成之后我们就可以进行折腾了,有人可能会好奇那如何使用windows上的文件呢?其实windows的目录全部挂载在/mnt这个目录下,我们可以在/mnt/c目录下看到c盘的各种文件。好了,先运行一下screenfetch来看看。

www.512.net 5

     作为一个java web
developer,常用的大概就是ssh,git,jdk,tomcat,nginx等等。我们一一来测试一下。

SSH

   
我们可以看到ssh远程连接可以正常使用,所以嘛putty或者xshell这种东西可以卸载了(逃

www.512.net 6

 Git

  
git的各种命令也很正常。

www.512.net 7

JDK

    接下来测试jdk,我们来编译一小段代码试试看,可以看到jdk也没什么问题。

www.512.net 8

Tomcat&Nginx

    我们启动tomcat,然后在Edge浏览器里面访问,便可以看到tomcat的默认首页,是不是很神奇?当然nginx也是没有问题的。

www.512.net 9

www.512.net 10

   
另外,gcc和clang经过测试也可以使用,这里就不再展示了。    

   
据说大神们已经可以在wsl上运行图形化的Linux程序了,这点我没有测试过,有兴趣的小伙伴可以自行折腾。

   
那如果我们把wsl里面的环境折腾乱掉怎么办?得益于Windows商店的好处,我们只要卸载并重新在商店下载即可。

www.512.net 11

   
最后,我认为wsl对windows平台的开发者绝对是重大利好,一方面,一部分linux上好用的工具也可以在windows平台上使用了,另一方面,在windows上开发好的程序可以直接部署到wsl上测试,这样就能保证开发环境和生产环境尽可能的相似。好了,Enjoy
it!

(btw,贴几个wsl的相关资料,感兴趣的小伙伴自行阅读研究。

release
notes:

WSL团队的blog:

issue
tracker: