Windows 和 Linux 合体,值得体验

想体验 Linux,却舍不得卸载 Windows ?

想学习 Linux,却懒得装 VM?

想使用 Linux,却没有第二台电脑?

很多小白内心的 OS 是,为毛这个世界这么复杂,需要各平台切换来切换去的,还能不能让我安静的编程了。

好吧,也许跟我一样喜欢极简的你,可以体验一下这个 Windows 10 的新功能。

确切得说,不应该叫做 Windows / Linux 合体。它实际上是 Windows 10 新推出的专属 Linux 的 Windows 子系统。

官方名称为 Bash/WSL

也可以叫做 Bash on Ubuntu on Windows。

也许很多人已经使用过这个功能了,但是在这里,我不防再给大家普及一下,因为我觉得使用它确实太方便了。



什么是 Bash/WSL

WSL 的全称是 Windows Subsystem for Linux,所谓 Bash,是一个 Linux Shell。

通俗点讲,就是一个 Windows 中只带命令行、不带 GUI 的 Linux 系统。

先上个图给大家感受一下吧。

安装好之后,它会出现在开始菜单。

Windows 和 Linux 合体,值得体验

接下来出现的命令行就跟 Linux 上的终端一模一样了。

Windows 和 Linux 合体,值得体验

 

没错,这就是 Windows 中的 Linux 系统。

从图中,你可以看出当前所用系统以及 Linux 目录结构。

Windows 10 creators update 中装的是 Ubuntu 16.04.2 LTS。



Bash/WSL 评价

也许有人把它当作一个不中用的玩具,可是微软的确是想把它打造成一个真的二手转让地图系统,让用户可以在 Windows 和 Linux 之间*切换。

从微软的官方说明看,这不仅仅是给拿来学习和练手的大学生用的,Bash/WSL 面向的用户是众多的开发者:

  • Web / App 开发者,
  • Open Source 开发者,
  • 跨平台开发者。

 

所以我们有理由相信,跟原生 Linux 相比,Bash/WSL 有着接近相同的使用体验。

有权威人士使用跨平台的性能测试工具进行测试发现,在 Windows 下运行这些原生的 ELF 二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当。



另外,Bash/WSL 拥有原生 Linux 大部分的功能:

  • 执行 Linux 大部分的命令,例如 grep, sed, awk 等等。
  • 使用 Linux 兼容文件系统、目录结构,无缝访问 Windows 目录。
  • 执行 Bash Shell 脚本,以及 Linux 命令行 App (vim,emacs 等)。它支持多种语言 (Javascript/node.js, Ruby, Python, C/C++, C# & F#, Rust, Go 等)和服务(sshd, MySQL, Apache, lighttpd)。
  • 通过 apt 安装 Linux 工具。
  • 等等。



当然, 目前来说,它仅仅只有一岁,还有着很多的局限,例如:

  • 仅仅支持命令行,不支持 GUI
  • 只支持 Ubuntu
  • Linux 功能支持不完备

 

不过我相信以微软的实力,Bash/WSL 功能会越来越完善,体验会越来越好的。

我在前面一篇文章中讲过,VS2015/2017 可以进行 Linux 开发,这恰恰是 Bash/WSL 的有力补充。 有了WSL,再加上 Visual Studio,真的给开发人员带来很大的便利,不用再恼火得在各个平台之间切换了。

网上有人评论说,这个功能晚了 10 年,早出来的话,早就大一统了。虽然略显夸张,但我还是很支持微软的这个 Linux 功能,因为对开发人员来说,有的时候,简单未必不是好事。

不过有一点大家搞清楚,微软提供的 Linux 的所有功能都在 User Mode,做嵌入式或者本身需要操作 Linux Kernel 的,你还得用真实的 Linux ,这一点不可替代。

Windows 和 Linux 合体,值得体验

尝试一下

我前面说了这么多,你是不是也有点跃跃欲试,想安装下体验看看了?

那么开始吧。

首先,你的电脑系统必须同时满足以下两个条件:

至少是 Windows 10 Anniversary Update

必须是 64 bit

然后,想继续安装的话,看我下面这篇文章吧:

在 Windows 上搭建 Linux 子系统详细教程

最后,看完文章觉得实用的话,就顺手点个赞吧。

上一篇:windows上部署docker小记录


下一篇:Windows 10 access ext4