> 技术文档 > 微软正式官宣开源!王炸!_微软开源库

微软正式官宣开源!王炸!_微软开源库

最近,和往常一样在逛 GitHub Trending 热榜时,突然看到又一个非常火的开源项目冲上了 Trending 热榜,相信不少小伙伴也刷到了。

一天之内就新增数千 star,仅仅用了几天时间,star 增长曲线都快干垂直了!

微软正式官宣开源!王炸!_微软开源库

再定睛一看,好家伙,这不是微软的项目么。

微软正式官宣开源!王炸!_微软开源库

出于好奇,点进去看了看,没错,这正是微软自家大名鼎鼎的 WSL

微软正式官宣开源!王炸!_微软开源库

原来就在前几天的微软 Build 2025 开发者大会上,微软正式官宣开源 Windows Subsystem for Linux(WSL)

微软正式官宣开源!王炸!_微软开源库

这在微软官方的最新的开发者技术博客也可以翻到。

微软正式官宣开源!王炸!_微软开源库

众所周知,WSL 是微软在 2016 年就发布的一项重磅功能,相信不少同学都用过。

WSL 全称:Windows Subsystem for Linux,它允许用户在 Windows 操作系统中直接运行 Linux 环境,而无需双系统或者虚拟机,通过兼容层支持开发者工具、命令行应用及文件系统互通,实现方便地跨平台开发与测试。

微软正式官宣开源!王炸!_微软开源库

从初始发布到如今走向开源,回顾 WSL 一路走来的发展历程,可以总结为如下几个大的阶段

  • 初期兼容层探索

2016年,微软首次推出 WSL 1。

其通过兼容层工具(如 lxcore.sys 驱动)将 Linux 系统调用转换为 Windows 调用,首次实现原生运行 ELF 可执行文件。

其优势是轻量级启动,但缺点也很明显,那就是兼容性和性能都存在一定局限。

  • 中期扩展与独立应用

2019年,WSL 2 正式官宣。

此时微软对其进行了彻底的重构架构,采用基于 Hyper-V 的轻量级虚拟机技术,来运行完整 Linux 内核,并显著提升了兼容性与性能,同时这也使得 WSL 能支持运行更多的 Linux 程序和应用。

2021年,WSLg 正式推出,从此便支持了 Linux GUI 应用,同时 WSL 也开始作为独立组件来发布,其从 Windows 镜像剥离,转为通过 Microsoft Store 来进行独立安装和更新。

2022年~2024年这几年时间内,微软对 WSL 进行了持续迭代,包括 systemd 服务管理支持、GPU加速、多发行版支持以及内存和文件系统等诸多性能优化。

经过中期这一阶段的发展,WSL 在兼容性、功能以及性能等方面都有了长足的进步,也为下一步的开源和社区化奠定了基础。

  • 后期开源和社区化

在前几天的微软 Build 2025 开发者大会上,微软正式宣布 WSL 开源(GitHub 仓库开放),允许社区直接参与代码贡献,这也标志了 WSL 进入了开源和社区化的新阶段。

至此为止,在 WSL 的 GitHub 仓库中的 Issue #1 —— 那个自2016年起就存在的“Will this project be Open Source?”的提问,终于被标注为了“Closed”!

微软正式官宣开源!王炸!_微软开源库

众所周知,WSL 其实是由一组分布式组件来组合而成的。

即:一部分是在 Windows 系统中运行,另外一部分则是在 WSL 2 虚拟机内运行。

这个从 WSL 官方给出的组件架构图中就可以很清晰地看出来:

微软正式官宣开源!王炸!_微软开源库

那既然现如今微软官宣了 WSL 开源,那对于开发者来说,我们需要清晰地知道这次到底开源了哪些组件代码呢

关于这部分,对照上图,我们这里不妨用表格的形式来简要总结一下,供大家参考。

组件类型 功能描述 组件名 开源状态 用户交互层 命令行工具 wsl.exe 已开源 用户交互层 命令行工具 wslg.exe 已开源 用户交互层 命令行工具 wslconfig.exe 已开源 服务管理层 WSL服务管理 wslservice.exe 已开源 Linux运行时 init启动 init 已开源 Linux运行时 网络服务 gns 已开源 Linux运行时 端口转发 localhost 已开源 文件共享 Plan9协议实现 plan9 已开源

以上这些已开源的组件源码都可以在 WSL 的 GitHub 仓库里找到,大家感兴趣的话可以对应查看和研究。

微软正式官宣开源!王炸!_微软开源库

虽然本次开源覆盖了 WSL 的绝大多数关键组件,但是官方也明确说了,以下这几个组件由于其仍然是 Windows 系统的一部分,所以目前仍然保持非开源状态,包括:

  • Lxcore.sys:支撑 WSL1 的内核驱动程序
  • P9rdr.sysp9np.dll:运行\"\\wsl.localhost\"文件系统重定向的关键组件(从 Windows 到 Linux)

这一点需要特别注意一下。

回顾过往,其实 GitHub 上的 WSL 仓库并不是最近才有,好多年前就已经存在了。

即便在以前的 WSL 还没有开源的日子里,WSL 的背后就有了一个强大的社区在支持,开发者们通过 GitHub Issue 和 Discussion 等为 WSL 这个项目提供了诸多错误追踪、新功能建议以及意见改进。

微软正式官宣开源!王炸!_微软开源库

可以说,如果没有社区贡献,WSL 永远不可能成为今天的样子。

而现如今 WSL 源代码正式开源,这也满足了开发者社区长达 9 年的期待。

开发者们现在可以自行下载、构建,甚至提交改进建议或者新功能的代码来直接参与。

同时 WSL 官方也给出了一个详细的项目贡献指南:

微软正式官宣开源!王炸!_微软开源库

感兴趣的同学也可以上去学习研究一波。

好了,那以上就是那以上就是今天的内容分享,希望能对大家有所帮助,我们下篇见。

注:本文在GitHub开源仓库「编程之路」 https://github.com/rd2coding/Road2Coding 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。