大数跨境
0
0

微软WSL正式开源(文末有福利)

微软WSL正式开源(文末有福利) CppGuide
2025-05-28
2

2025年5月19日,微软宣布其Windows子系统WSL正式开源,用过WSL的同学肯定都赞不绝口,WSL让我们在Windows上开发和调试原生Linux程序变得非常方便。

摘录部分微软官方原文:

今天,我们非常兴奋地宣布 Windows Subsystem for Linux(WSL)开源版本的发布。这是多年努力筹备的成果,也是微软 WSL 代码仓库中首个问题 ——“这会开源吗?—— 的圆满解答。

这意味着支持 WSL 运行的代码现已在 GitHub 上的 Microsoft/WSL 仓库开源,向社区开放!你可以下载 WSL 的源代码进行构建,添加新的修复和功能,并参与 WSL 的活跃开发。

WSL 组件概述

WSL 由一组分布式组件组成。部分组件在 Windows 系统中运行,另一部分则在 WSL 2 虚拟机内运行。以下是 WSL 架构的概述:

Windows Subsystem for Linux architecture.

WSL 的代码可分为以下主要部分:

与 WSL 交互的命令行可执行文件

  • wsl.exewslconfig.exe 和 wslg.exe

WSL 服务

用于启动 WSL 虚拟机、启动发行版、挂载文件访问共享等

  • wslservice.exe

Linux 初始化和守护进程(在 Linux 中运行以提供 WSL 功能的二进制文件)

  • 用于启动的 init、用于网络的 gns、用于端口转发的 localhost 等

通过 WSL 的 Plan9 服务器实现将 Linux 文件共享到 Windows

  • plan9

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

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

  • microsoft/wslg:为 Windows Subsystem for Linux 提供对 Wayland 和 X 服务器相关场景的支持
  • microsoft/WSL2-Linux-Kernel:Windows Subsystem for Linux 2 (WSL2) 使用的 Linux 内核源代码

以下组件仍属于 Windows 镜像的一部分,目前未开源:

  • Lxcore.sys:支持 WSL 1 的内核驱动程序
  • P9rdr.sys 和 p9np.dll:运行“\wsl.localhost”文件系统重定向(从 Windows 到 Linux)

为什么现在开源?一段历史回顾……

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 于 2021 年 7 月作为 0.47.1 版本首次在 Microsoft Store 发布,当时仅支持 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 隧道、会话 0 支持、代理支持、防火墙支持等。

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

WSL 背后的社区

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

没有社区,WSL 不可能有今天的成就。即使无法访问 WSL 的源代码,人们也做出了重大贡献,推动了 WSL 的发展。

这就是我们今天如此兴奋地将 WSL 开源的原因。我们已经看到社区在无法访问源代码的情况下为 WSL 做出了多少贡献,现在我们迫不及待地想看到,当社区可以直接为项目做出代码贡献时,WSL 将如何发展。

为 WSL 做贡献

你是否有兴趣了解 WSL 的工作原理?想知道特定功能如何运作,或进行修改?请访问 microsoft/WSL 了解更多!

WSL代码开源地址:

https://github.com/microsoft/WSL


原文链接:

https://blogs.windows.com/windowsdeveloper/2025/05/19/the-windows-subsystem-for-linux-is-now-open-source/


端午福利

端午节给小伙伴们送点福利:

福利一

小方的《C++工程实践实战训练营》,以拆解八个中大型C/C++项目来学习C++开发技术,从项目的整体架构设计到具体的编码细节,小方均带你一一拆解,在实战项目中既有C++开发知识的介绍,也有经验和技巧的传授,其中3个项目从零到一带着大家手写。

训练营原价3000,端午节特惠,现在半价即可加入,仅限前5个名额,先到先得。

有兴趣的小伙伴可以加小方微信cppxiaofang,备注“工程实践”。

训练营详细介绍参见这里

福利二

《网络编程实战训练营 二期》是系统地讲解C/C++网络编程知识体系的实战课,从最基础的网络编程理论、socket API使用,到综合性的网络框架设计思路和大型项目中网络通信模块的设计均细致地拆解,网络编程是计算机五大基础之一,无论是前端还是后端开发,必备基本功之一。

原价1100元,端午特惠,仅需600元,仅限前10个名额,先到先得。

有兴趣的小伙伴可以加小方微信cppxiaofang,备注“网络二期”。

《网络编程实战训练营二期》详情点这里

福利三

小方说服务器开发知识星球是一个优质后端开发社区,自建立以来,已经有1500+球友,成功帮助几百名同学提高了技术、找到了心仪的工作。

小方说服务器开发知识星球提供五大服务:

  • 优问优答
  • 不定期的技术直播和录像
  • 优质源码分享和指导
  • 职业解惑、模拟面试、简历review、大厂内推(星球有效期内无次数限制,可以获得小方一对一服务)
  • N个技术专栏

原价500元每年,现在半价即可加入。

有兴趣的小伙伴可以加小方微信cppxiaofang,备注“加入星球”。

小方说服务器开发知识星球详细介绍点这里

【声明】内容源于网络
0
0
CppGuide
专注于高质量高性能C++开发,站点:cppguide.cn
内容 1260
粉丝 0
CppGuide 专注于高质量高性能C++开发,站点:cppguide.cn
总阅读289
粉丝0
内容1.3k