The Windows Subsystem for Linux is now open source

发布于 Microsoft Build,2025年5月19日 作者:Pierre Boulay

今天,我们非常激动地宣布 Windows Subsystem for Linux 的开源发布。这是经过多年努力的成果,也为在 Microsoft/WSL 仓库中提出的第一个 issue 画上了圆满的句号:Will this be Open Source? · Issue #1 · microsoft/WSL

这意味着驱动 WSL 的代码现在可以在 GitHub 上通过 Microsoft/WSL 获取,并向社区开源!您可以下载 WSL 并从源代码构建它,添加新的修复和功能,并参与 WSL 的积极开发。

WSL 组件概述

WSL 由一组发行版组件构成。一些在 Windows 中运行,一些在 WSL 2 虚拟机中运行。以下是 WSL 架构的概述:

Windows Subsystem for Linux 架构。

WSL 的代码可以分为以下几个主要领域:

访问 https://wsl.dev 以了解有关每个组件的更多信息。

这是对已经开源的 WSL 组件的补充:

以下组件仍然是 Windows 镜像的一部分,目前尚未开源:

为什么现在开源?一点历史…

WSL 最初是在 2016 年的 BUILD 大会上宣布的,并首次随 Windows 10 周年更新一起发布。

当时,WSL 基于 pico 进程提供程序 lxcore.sys,该驱动程序使 Windows 能够本地运行 ELF 可执行文件,并在 Windows 内核中实现 Linux 系统调用。这最终成为了我们今天所知的“WSL 1”,WSL 仍然支持它。

随着时间的推移,越来越明显的是,提供与原生 Linux 最佳兼容性的最佳方法是依赖 Linux 内核本身。WSL 2 由此诞生,并于 2019 年首次宣布。

随着 WSL 背后的社区不断壮大,WSL 获得了更多功能,例如 GPU 支持、图形应用程序支持(通过 wslg)以及对 systemd 的支持。

最终,越来越明显的是,为了跟上不断增长的社区和功能请求,WSL 必须更快地发展并与 Windows 分开发布。这就是为什么我们在 2021 年将 WSL 与 Windows 代码库分离,并将其移动到自己的代码库中。这个新的 WSL 首先作为版本 0.47.1 发布到 Microsoft Store,于 2021 年 7 月发布。当时,仅支持 Windows 11,并且该软件包被标记为预览版,仅推荐给想要体验最新和最棒的 WSL 的用户。

我们继续开发这个新的“WSL 软件包”,直到它准备好普遍可用。这种情况发生在 2022 年 11 月,WSL 1.0.0 添加了对 Windows 10 的支持,并且是这个新的 WSL 的第一个“稳定”版本。

从那里开始,我们不断改进 WSL,目标是让所有用户完全过渡到这个新的 WSL 软件包,并远离随 Windows 附带的 WSL 组件。Windows 11 24H2 是第一个将用户从“内置”WSL 迁移到“新”WSL 软件包的 Windows 版本。我们在 Windows 镜像中保留了 wsl.exe,因此它可以按需下载最新的软件包,以使过渡更加容易。

随着我们不断改进 WSL,我们最终达到了另一个里程碑:WSL 2.0.0(计算机科学中最难的三个问题是什么?差一错误和命名!)。

WSL 2.0.0 引入了重大改进,例如镜像网络、DNS 隧道、session 0 支持、代理支持、防火墙支持等。

这就是我们今天仍在构建的里程碑!在撰写本文时,自 4 年前的 0.47.1 以来,WSL 2.5.7 是我们九页 GitHub 版本中最新的可用版本!

WSL 背后的社区

多年来,我们非常幸运能够拥有一个强大的社区,从第一天起就支持 WSL。我们很幸运地有很多人分享他们的知识,并花费无数的时间来帮助追踪错误,找到实现新功能的最佳方法并改进 WSL。

如果没有社区,WSL 永远不可能成为今天的样子。即使无法访问 WSL 的源代码,人们也能够做出重大贡献,从而使 WSL 成为现在的样子。

这就是为什么我们今天非常激动地开源 WSL。我们已经看到社区在无法访问源代码的情况下为 WSL 贡献了多少力量,我们迫不及待地想看看现在社区可以直接为该项目贡献代码后,WSL 将如何发展。

贡献 WSL

您是否有兴趣了解 WSL 的工作原理?您想了解特定功能的工作原理或进行更改吗?访问 microsoft/WSL 以了解更多信息!