如何安装体验 Ubuntu on Windows
3月30日在美国旧金山的莫斯康展览中心,微软召开了 Build 2016开发者大会,大会上微软除了介绍自家生态系统的产品与技术外,还为开发者带来了 Ubuntu on Windows 功能。
Bash 是 Linux/Unix 上非常流行的命令行 Shell,它是 Ubuntu、RHEL 等 Linux 发行版以及苹果 OS X 操作系统默认的命令行 Shell。
Bash on Ubuntu on Windows 是通过 Windows Subsystem for Linux(WSL)这一 Windows 10 的最新特性实现的,使用此功能,你可以在 Windows 中原生运行 Linux 的大多数命令行程序。
其实在 Windows 7 之前的操作系统中,都含有一个 POSIX 子系统,以便将 UNIX 的程序源代码编译为 Windows 程序。微软为 POSIX 子系统提供了众多的 UNIX 工具,而这些工具都是基于 POSIX 子系统直接使用GNU 的原生代码编译实现的,你也可以在这个 POSIX 子系统运行 C Shell、Korn Shell 等命令行 Shell。不过Windows 7 以后的操作系统中都默认移除了 POSIX 子系统。如果有兴趣的话可以在 Windows 7 操作系统中的“启用或关闭 Windows 功能”中启用“基于 UNIX 的应用程序子系统”,即可体验 POSIX 子系统。
启用 WSL 功能之后,如果使用 Bash,则 Windows 10 操作系统会下载一个由 Canonical 创建的 Ubuntu用户模式镜像 ( Ubuntu user-mode image ) ,然后 Bash 程序以及其他的 Linux 二进制程序就可以运行于该 Ubuntu 镜像上。此外,微软也承诺未来会提供更多 Linux 发行版以供选择。
Bash on Ubuntu on Windows 功能主要是面向于开发者,尤其是 Web 开发者或者参与某些开源项目的开发者,他们可以在 Windows 中使用一些 Linux 生态链的开发工具。
之前我们为大家披露过 Ubuntu on Windows 的一些技术细节,今天为大家带来更具体的技术细节和体验方式。
启用Bash on Ubuntu on Windows
启用 Bash on Ubuntu on Windows 功能,首先你得先满足以下2个条件。
- 使用x86-64架构的 CPU。
- 使用 Windows 10 Insider Preview (Build 14316)64位版本。
如何获取 Windows 10 Insider Preview (Build 14316)呢?
这里有两种办法:
- 第一种是从网上下载由别人制作好的 Windows 10 Insider Preview (Build 14316)安装镜像进行安装,但是由于安装镜像来源的问题,所以不推荐此方法,当然如果你是要在虚拟机中体验一下的话,用这种方式最合适不过了。
- 第二种是加入 Windows Insider 计划,然后将 Windows 10 正式版升级至最新的 Insider Preview 版本。
加入Windows Insider 计划方法如下:
1、在 Windows Insider 网站中使用你的微软账户登录,登录成功之后,会出现如下图所示画面:
然后单击图中的“入门”,会出现注册界面,勾选接受 Insider 计划协议,最后单击“提交”,等待提示注册完成。
2、确保使用上述加入 Windows Insider 计划的微软账户登录你的 Windows 10 操作系统,然后依次转到开始菜单-“设置”-“更新和安全”- “Windows 更新” -“高级选项”>“获取 Insider Preview 版本”,然后单击“开始”按钮,并按照屏幕上的说明进行操作,提示成功之后表示此电脑将会获取 Windows 10 Insider Preview 版本 。
3、Windows Insider 计划默认自动获取慢速通道的 Insider Preview 版本,而 Windows 10 Insider Preview (Build 14316)属于快速通道版本,所以需要在如下图中,将滑块移至右侧的快速通道模式。
4、进入快速通道模式之后,需要等待24小时才能获取 Insider Preview 版本,所以请耐心的等待吧!24小时之后检查更新,就会开始下载安装 Windows 10 Insider Preview (Build 14316)。
启用 Bash on Ubuntu on Windows
如果上述条件满足,按照以下步骤即可启用 Bash on Ubuntu on Windows。
1、依次在“设置”-“更新与安全”-“针对开发人员”选项中,启用开发人员模式,如下图所示。
2、在开始菜单中搜索并打开“启用或关闭 Windows功能”,然后勾选其中的“Windows Subsystem for Linux(Beta)”选项,如下图所示,最后按照操作系统提示完成 WSL 安装(需要重启计算机)。
此外,也可以在 PowerShell 中输入以下命令完成 WSL 安装。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
3、在命令提示符或 PowerShell 中输入 bash
,然后按照提示按下 y 确认继续,操作系统会自动开始安装 Ubuntu on Windows,此时会下载 Ubuntu 用户模式镜像,并创建一个 Bash on Ubuntu on Windows 访问路径。等待安装完成之后,会自动进入 bash,如下图所示:
使用 Bash on Ubuntu on Windows
在命令提示符或 PowerShell 中输入 bash,或者在开始菜单中查找打开“Bash on Ubuntu on Windows”,即可运行。
运行之后,可以发现使用的是 Ubuntu 14.04.4 LTS 版本,同时也可以使用 apt-get 更新或安装程序,如下图所示。此外。在 bash 当中,Windows 的分区被挂载于 /mnt
目录,可以使用其中存储的数据。
当你试用了 Bash on Ubuntu on Windows 之后,你可能会觉得这是一个虚拟机,但它真**不是一个虚拟机。**其功能有点类似于模拟器。通过使用 WSL,可以将 Linux 的系统调用实时地转换为 Windows 的系统调用。
此外,在 Windows 下运行这些 Linux 的原生的 ELF(Executable and Linkable Format)二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当,完全不用担心性能的问题。
Bash on Ubuntu on Windows****限制
- 不支持使用 GUI 的桌面程序或 Gnome、KDE 类应用。
- 处于 Beta 阶段,支持的 Linux 程序与功能有限,未来会支持更多的 Linux 工具。
- 目前只支持使用 Ubuntu,未来会提供更多 Linux 发行版。
- WSL 只支持在 Windows 10 build 14316 以后版本中使用,不支持 Windows Server。
命令参考
有两个命令 bash.exe
和 lxrun.exe
用于和 Windows Subsystem for Linux (WSL) 进行交互。它们安装在 \Windows\System32 目录下,可以在命令行或 Powershell 中运行。
bash.exe
启动 bash 环境并运行 /bin/bashlxrun.exe
用于管理 WSL,可以用来安装或卸载 Ubuntu 镜像
命令 | 描述 |
---|---|
bash |
在当前目录启动 bash shell,如果 Bash 没有安装,这自动运行 lxrun /install |
bash ~ |
启动 bash,并切换到用户的 Ubuntu 主目录,类似运行 cd ~ |
bash -c "<command>" |
运行命令、打印输出并返回 Windows 命令行例子: bash -c “ls” |
命令 | 描述 |
---|---|
lxrun |
用于管理 WSL 实例 |
lxrun /install |
启动下载和安装过程/y 选项可以用于自动应答安装过程的确认提示 |
lxrun /uninstall |
卸载并删除 Ubuntu 镜像。默认不删除用户的 Ubuntu 主目录。 |
/y 选项可以用于自动应答安装过程的确认提示 | |
/full 选项会卸载并删除用户的 Ubuntu 主目录 |
总结
Bash on Ubuntu on Windows 的发布, 让众多的 Linux 粉丝大跌眼镜,曾经被微软视为癌症的 Linux,如今却被部分的集成进了微软最重要的产品中,这背后的目的似乎不是那么很平常。
有人说 Bash on Ubuntu on Windows 是微软布局 Docker 的开始,其实在 Windows Server 2016 预览版中已经加入了对Docker 技术的支持。也有人说是微软看中了 Linux 生态中的海量程序,用以补充自家的生态系统,但是就程序的数量来说,Windows 生态说第二,没人会说第一,所以似乎这个原因也站不住脚。
其实依目前的情况来看,个人觉得 Bash on Ubuntu on Windows 最主要的用处,还是为开发者提供便利,协助完成一些跨平台开发的工作。但是,也说不准微软最终的目的是什么,只能期待7月份的 Windows 10 周年更新里面为 Bash on Ubuntu on Windows 带来更多的功能。