玩转WSL 2(一)——WSL的介绍和安装
什么是WSL?适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设
什么是WSL?
适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
WSL可以做什么?
- 在 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 应用程序。
什么是 WSL 2?
WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。
这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。
单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。
只有 Windows 10 版本 2004 的内部版本 19041 或更高版本中才提供 WSL 2
WSL 面向哪些用户?
WSL 是主要面向开发人员的工具 – 尤其是 Web 开发人员,以及处理和使用开源项目的开发人员。 想要/需要使用 Bash、常用 Linux 工具(sed、awk 等)和许多 Linux 优先工具(Ruby、Python 等)的用户可以通过 WSL 在 Windows 上使用其工具链。
WSL 支持哪些处理器?
WSL 支持 x64 和 ARM CPU。
在 WSL 中是否可以运行所有 Linux 应用?
不是! WSL 工具的目的是使用户能够视需要在 Windows 上运行 Bash 和核心 Linux 命令行工具。
WSL 并不旨在支持 GUI 桌面或应用程序(例如 Gnome、KDE 等)。
此外,尽管你可以运行许多流行的服务器应用程序(例如 Redis),但我们不建议使用 WSL 来托管生产服务 – Microsoft 提供多种解决方案用于在 Azure、Hyper-V 和 Docker 中运行生产 Linux 工作负荷。
比较 WSL 1 和 WSL 2
功能 | WSL 1 | WSL 2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMWare 和 VirtualBox 一起运行 | ✅ | ✅ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
例外情况(使用 WSL 1 而不是 WSL 2)
- 你的项目文件必须存储在 Windows 文件系统中。
如果你将使用 WSL Linux 分发版来访问 Windows 文件系统上的项目文件,并且这些文件无法存储在 Linux 文件系统上,那么,通过使用 WSL 1,你将跨 OS 文件系统实现更快的性能。 - 一个项目要求对相同的文件使用 Windows 和 Linux 工具进行交叉编译。
在 WSL 1 中,跨 Windows 和 Linux 操作系统的文件性能比 WSL 2 中更快,因此如果要使用 Windows 应用程序来访问 Linux 文件,则目前通过 WSL 1 可实现更快的性能。
WSL 2 体系结构
传统的 VM 体验可能启动速度慢,是独立的,消耗大量资源,需要你花费时间进行管理。 WSL 2 没有这些属性。
WSL 2 有 WSL 1 的优点,包括 Windows 和 Linux 之间的无缝集成,启动时间短,资源占用量少,并且无需 VM 配置或管理。 虽然 WSL 2 确实使用 VM,但 VM 是在幕后管理和运行的,因此你将具有与 WSL 1 相同的用户体验。
完整的 Linux 内核
WSL 2 中的 Linux 内核是 Microsoft 根据最新的稳定版分支(基于 kernel.org 上提供的源代码)构建的。此内核已专门针对 WSL 2 进行了调整,针对大小和性能进行了优化,以便在 Windows 上提供良好的 Linux 体验。 内核将由 Windows 更新提供服务,这意味着你将获得最新的安全修补程序和内核改进功能,而无需自行管理它。
WSL 2 Linux 内核是开源的
提升了文件 IO 性能
如果使用 WSL 2,文件密集型操作(如 git 克隆、npm 安装、apt 更新、apt 升级等)的速度都明显更快。
实际的速度提升将取决于你运行的应用以及它与文件系统的交互方式。 在对压缩的 tarball 进行解包时,WSL 2 的初始版本的运行速度比 WSL 1 快达 20 倍,在各种项目上使用 git 克隆、npm 安装和 cmake 时,大约快 2-5 倍。
WSL 2 在启动时使用的内存量更少
WSL 2 在实际 Linux 内核上使用轻量级实用工具 VM,内存占用量很小。 该实用工具将在启动时分配虚拟地址支持的内存。 它已经过配置,在启动时使用的内存占比小于 WSL 1 所需的内存占比。
安装WSL
-
进入Windows store 选择需要的版本进行下载
-
进入Windows 应用设置,启动WSL功能
-
重启电脑后,进入Windows 10启动菜单,找到Ubuntu双击打开。第一次运行时会等待一会儿设置环境,第一次运行Ubuntu会提示设置用户和密码。如果想使用root权限,可以输入
sudo passwd root
,输入之前设置的用户的密码,再为root设置密码。
更多推荐
所有评论(0)