Ubuntu WSL2025年3月17日 | 阅读 7 分钟 WSL 简介WSL(**Windows subsystem for Linux** 的缩写)是一个兼容层,可以在 Windows Server 2019、Windows 11 和 Windows 10 上运行 Linux 二进制可执行文件(格式为 **ELF**)。WSL 2 于 2019 年 5 月发布,引入了重要的修改,例如来自 **Hyper V** 功能子集的 **Linux 内核**。自 2019 年 6 月起,Windows 预览体验计划的用户(包括 **家庭版**)就可以使用它。
如果一个命令是 Windows 的原生命令,它将被精确地传递给知道如何管理的 Windows 内核。如果它是 Linux 命令,则会调用翻译服务,然后请求将被转发到已启动的 Linux 实例(即 **Pico 进程**)的新实例化进程。命令运行后,结果会再次被翻译成 NT 内核可以理解的适当命令。 WSL 是一项 Windows 功能,允许开发人员在不需要独立的双引导或虚拟机的情况下运行 Linux 环境。WSL 有两个版本,称为 WSL 1 和 WSL 2。首先,WSL 1 作为兼容层,用于运行 Linux 二进制可执行文件(ELF 格式)。它可在 Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 11、Windows 10 LTSB/LTSC 和 Windows 10 上使用。 WSL 2 于 2019 年 5 月发布,引入了重要的修改,例如来自 Hyper-V 功能子集的原始 Linux 内核。WSL 2 与 WSL 1 不同,因为 WSL 2 在运行完整 Linux 内核的结构化虚拟机中执行。由于 WSL 1 并非所有系统调用都得到支持,因此 WSL 2 比 WSL 1 更兼容 Linux 二进制文件。 自 2019 年 6 月起,WSL 2 已可通过 Windows 预览体验计划提供给 Windows 10 用户,包括家庭版。WSL 默认并非适用于所有 Windows 10 用户。但是,可以通过手动安装或加入 Windows 预览体验计划来安装它。截至 2022 年,WSL 2 包含 Linux 内核 5.15.74.2。 WSL 历史Microsoft 首次尝试在 Windows 上实现类 Unix 兼容性始于 **Microsoft POSIX 子系统**,后来被 Interix/MKS 的 Windows Services for UNIX 取代,并最终在 Windows 8.1 版本中被移除。WSL 的底层技术源自未发布的 Astoria 项目,该项目允许一些 Android 应用程序在 Windows 10 移动版上运行。它最初出现在 **Windows 10 预览版 build 14316** 中。 另一方面,Microsoft 之前的项目和第三方 **Cygwin** 都专注于构建基于 **POSIX** 标准的特定类 Unix 环境。WSL 则专注于 Linux 的原生兼容性,而不是像 Cygwin 那样将非原生功能封装到 **Win32** 系统调用中。 WSL 的初始设计利用 NT 内核执行器,将 Linux 程序作为隔离的特殊最小进程(称为 **pico** 进程)提供服务,这些进程连接到 pico providers 内核模式,具有与普通 NT 进程不同的专用系统调用和多个异常处理程序,并尽可能重用现有的 NT 实现。
Microsoft 于 2021 年 4 月发布了一个 Windows 10 测试版本,该版本还通过 **CBL-Mariner** 和 **WSL 2** 实现了运行 Linux GUI 应用程序的能力。**WSLg**(**Windows Subsystem for Linux GUI**)在 2021 年 Microsoft Build 大会(Build 2021)上正式发布。它包含在 **Windows 10 预览版 build 21363** 或更高版本中。 Microsoft 于 2021 年 10 月 11 日为 Windows 11 发布了 **WSL Windows 应用商店** 版本。 WSL 的功能WSL 可在 Windows 10 版本(从 1607 版本开始)和 Windows Server 2019 中使用,但仅限 64 位版本。 Microsoft 将 WSL 视为“**主要是为开发人员准备的工具——特别是 Web 开发人员以及从事开源项目或在其中工作的人员。2018 年 9 月,Microsoft 表示“WSL 比完整的虚拟机占用的资源(CPU、内存和存储)更少”**(在 WSL 出现之前,虚拟机是运行 Windows 内 Linux 软件的最直接方式之一),同时还允许用户在同一组文件上使用 Linux 工具和 Windows 应用程序。 ![]()
**WSL 2** 中的 WSL 架构进行了重构,其中 Linux 内核在一个轻量级的虚拟机环境中运行。 wsl.exe命令 **wsl.exe** 用于在命令行中管理 WSL 中的发行版。此命令可以列出所有可用的发行版、卸载发行版以及设置默认发行版。此外,它还可以用于通过 Windows PowerShell 或 Windows 命令提示符运行 Linux 二进制文件。 **wsl.exe** 命令取代了 **Windows 10 1803** 及更高版本中已弃用的 **lxrun.exe** 命令。 WSLg它是 **Windows Subsystem for Linux GUI** 的缩写,旨在支持在 Windows 中运行 Linux GUI 应用程序(**Wayland** 和 **X11**),并提供完全集成的桌面体验。官方而言,**WSLg** 在 2021 年 Microsoft Build 大会上发布。它包含在 **Windows 10 预览版 build 21364** 或更高版本中。 不过,随着 Windows 11 的推出,WSLg 最终移植到生产环境的 Windows 中,为 WSL 应用程序提供了音频和图形支持。 运行 WSLg 的先决条件包括:
WSL 的设计WSL 1 设计**LXSS Manager Service** 是一个与子系统(来自驱动程序 **lxcore.exe** 和 **lxss.exe**)交互的服务,并负责 **Bash.exe**(不要将其与 Linux 发行版提供的 Shell 混淆)启动 Linux 进程,在执行期间管理 Linux 二进制锁和系统调用。由特定用户调用的每个 Linux 进程都进入 **“Linux 实例”**(通常,**init** 是初始启动的进程)。一旦所有应用程序都关闭,该实例也会被关闭。
WSL 2 设计WSL 2 版本定义了架构上的修改。Microsoft 已通过高度优化的 **Hyper V** 功能子集实现可视化,以运行发行版和内核,确保与 WSL 1 相似的性能。开发人员无需修改其已发布的发行版以实现 **向后兼容**。WSL 2 的设置可以通过 **WSL 全局配置** 进行调整,该配置包含在用户配置文件文件夹内的名为 **.wslconfig** 的 INI 文件中。 发行版的安装驻留在虚拟磁盘内的 ext4 格式文件系统中。通过 9P 协议,主机文件系统对 **9P 协议**透明可访问,这与其他虚拟机技术(如 **QEMU**)类似。Microsoft 向用户保证,WSL 2 的读/写性能比 WSL 1 高 20 倍。通过 Windows 的 **\\wsl$** UNC 路径前缀,为 Linux 的来宾文件访问提供了一个 IFS 网络重定向器。 下一个主题Unetbootin Ubuntu |
我们请求您订阅我们的新闻通讯以获取最新更新。