【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手

前言

曾经为了在Linux环境中编程学习,但又不想放弃熟悉的Windows界面,为此安装过双系统,也安装过虚拟机,然而又苦于双系统中切换系统的不便,苦于虚拟机的庞大让配置并不高的笔记本不堪重负,罢工*。如今微软在Windows10系统中,推出了适用于 Linux 的 Windows 子系统,说简单点,就是把Linux发行版当作桌面应用安装在Windows10中。
【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手
引用官方对子系统的评价:

您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

看到这可能有些小伙伴失望了,黑漆漆的命令行窗口,对习惯界面操作的大家来说,那是一道无法迈过的门槛,但其实不用担心,这个子系统不仅可以安装linux桌面实现界面化操作,还可以直接操作Windows应用程序去访问子系统,如:

  • 使用文件管理器访问子系统文件系统
    【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手
  • vscode连接子系统进行编程
    【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手
  • 当然,还有无限可能待你发现……

微软已经将WSL从1更新为2,在WSL2中,具有完整的Linux内核,具有更快的启动速度等等,在2020年Windows10浏览版中,对WSL2也增加了GPU的支持,相信不久的将来就可以在子系统中使用GPU来深度学习了。

准备工作

控制面板——> 程序——> 程序和功能——> 启用或关闭 Windows 功能——> 适用于 Linux 的 Windows 子系统——> 确定 (然后重启)
【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手

下载并安装 Ubuntu

在应用商店中搜索 Ubuntu,点击获取进行下载及安装。
【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手
安装完毕点击启动会打开 bash 命令行提示我们设置用户名(常用的不具有 root 权限的用户)和密码。我这里设置的是:

用户名:ubuntu

密码:123456

完成之后就可以随意折腾你的 linux 系统了。万一我们不小心把子系统折腾崩了,只需要像应用软件一样卸载掉再重新安装就可以了,有需要的话我们甚至还可以安装多个不同版本的子系统,简直不要太方便。
【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手

子系统相关问题

Windows10访问 Linux子系统的文件:

确保Ubuntu等发行版已打开,然后在文件管理器或命令行中输入 \\wsl$\ubuntu20.04\home\即可访问子系统中的home目录

子系统下访问 Windows10的目录:

打开ubuntu,输入cd /mnt/e/即可访问e盘目录
【工具】打造适用于 Linux 的 Windows 子系统——替代虚拟机的好帮手

总结

Windows子系统让Linux与Windows10的无缝连接实现了可能,而且微软非常注重子系统的发展,不远的将来子系统将支持GPU,为学深度学习的同学提供更大的方便。总体来说,安装还算简单,虽然还在发展,但比起虚拟机,已经算是一个完美的替代方案了。