
微软的 Windows Subsystem for Linux(简称 WSL)正式开源啦!为 GitHub 上 Microsoft/WSL 仓库的第一个问题——「Will this be Open Source?」画上了圆满的句号。
现在,所有人都可以在 GitHub 上查看 Microsoft/WSL 的核心代码,你可以下载并自行编译 WSL,提交修复、添加新功能,真正参与到 WSL 的开发中来。
WSL 组件架构简介
WSL 由多个关键组件组成,其中有些运行在 Windows 系统中,有些则运行在 WSL 2 的轻量级虚拟机环境里。整体架构如下图所示:

主要的代码模块包括:
- 与 WSL 交互的命令行工具,比如
wsl.exe、wslconfig.exe和wslg.exe。 - 负责启动 WSL 虚拟机、管理发行版、挂载文件共享等功能的核心服务,例如
wslservice.exe。 - 在 Linux 环境下运行的 init 和各类守护进程,用于支持 WSL 的完整功能,包括
init(启动管理)、gns(网络服务)、localhost(端口转发)等。 - 支持将 Linux 文件共享给 Windows 的 plan9 服务器实现,即
plan9。
要深入了解各个模块,可以查阅 https://wsl.dev。
其实,微软之前就已经开源了一些 WSL 相关项目,比如:
- microsoft/wslg:为 WSL 提供 Wayland 和 X 服务器支持,用于运行图形界面应用。
- microsoft/WSL2-Linux-Kernel:WSL 2 所使用的 Linux 内核源码。
不过,由于一些组件属于 Windows 系统镜像的一部分,尚不开源,包括:
Lxcore.sys:WSL 1 的内核层驱动。P9rdr.sys和p9np.dll:负责\wsl.localhost文件系统的重定向功能,用于实现 Windows 对 Linux 文件的访问。
WSL 发展历程回顾
WSL 1 初现
WSL 最早于 2016 年 Microsoft Build 开发者大会上宣布,并随「Windows 10 周年更新」正式亮相。
- 最初的 WSL 基于 pico 进程架构,使用了一个名为
lxcore.sys的组件,让 Windows 能够原生运行 ELF 格式的可执行文件。 - 同时,它还在 Windows 内核中实现了 Linux 系统调用。这套架构也就是我们今天所熟知的 WSL 1(目前依然被支持)。
WSL 2 诞生
随着时间的推移,开发团队发现:要想实现与原生 Linux 环境更高程度的兼容性,最好的方式就是直接依赖 Linux 内核本身。于是,WSL 2 诞生了,并在 2019 年正式对外发布。
在 WSL 持续演进的过程中,用户社区也在不断壮大。功能方面也陆续引入了许多重磅特性,比如:
- GPU 支持
- 通过 wslg 运行图形界面应用
- 对 systemd 的原生支持
WSL 项目独立
随着需求和功能的不断增加,微软意识到:必须加快 WSL 的更新节奏,不能再依赖 Windows 主系统版本的发布周期。
- 因此,在 2021 年将 WSL 迁移到了一个独立的代码仓库,并以 0.47.1 版本(于当年 7 月)首次上架 Microsoft Store。这个版本仅支持 Windows 11,标记为预览版,主要面向愿意尝鲜的早期用户。
- 随后,开发团队不断完善这个独立的「WSL 包」。2022 年 11 月,WSL 1.0.0 版本发布,首次支持 Windows 10,标志着独立 WSL 项目正式稳定上线。
为了让所有用户都能用上独立的 WSL 包,逐步取代 Windows 自带的版本。从那时起,WSL 团队开始持续优化体验。Windows 11 24H2 就是首个支持平滑迁移至「新 WSL 包」的正式版本。
当然,为了方便过渡,wsl.exe依然被内置在 Windows 系统中,方便用户在需要时自动下载最新版本的 WSL 包。
在不断完善的过程中,WSL 又迎来一个重要节点——WSL 2.0.0,带来了多项重大升级,包括:
- 镜像网络
- DNS 隧道
- 会话 0 支持
- 代理功能
- 内置防火墙
WSL 成长中的社区力量
WSL 能够一路走来,持续进化、不断完善,离不开一代又一代社区成员的热心参与和无私奉献。从最早的种子用户,到后来踊跃反馈问题、参与测试的开发者,再到深入研究、答疑解惑、探索新功能的技术大拿……正是这些人的坚持与热情,为 WSL 的发展注入了源源不断的动力。
即使在 WSL 源码尚不开放的阶段,社区也通过各种方式做出了重要贡献。可以说,没有这样一个活跃且富有创造力的社区,就没有今天的 WSL。
正因如此,微软才把 WSL 开源。过去,大家只能通过黑盒逆向、猜测实现方式来参与改进;如今,代码已经公开,期待看到更多社区成员直接为 WSL 贡献代码,共同塑造 WSL 的未来。
如何参与 WSL 贡献
如果你对 WSL 的实现原理充满好奇,或者对某个具体功能的代码特别感兴趣,想动手参与改进,可以访问 WSL 的官方项目页面:microsoft/WSL。在这里,你可以深入了解项目结构、参与讨论、提交修复或贡献新功能。












最新评论
方法1:删除「主文件夹」 --System.IsPinnedToNameSpaceTree--可以通过把数值数据修改成- 0 -进行隐藏
可以 可以解决问题,终于不用每次下载东西都默认下载到图库里面,这样就可以默认下载到桌面了 导航点击权限,然后点击高级,然后下一个框在它的正上方有一个名称,要把它改成修改,然后按照阿婆主说的 (在“高级安全设置”窗口的顶部,您会看到“所有者:”后面显示的是 TrustedInstaller。点击旁边的 “更改” 链接。) 然后再把两个用户名修改成完成权限,然后就可以修改了
2025-11 预览更新 (KB5070311) (26200.7296)一直更新错误,反复多次均以第二次重启后失败告终,请问是什么问题?
太傻比了,还是用virtualbox算了