今天凌晨,微软宣布开源适用于Linux的Windows子系统——WSL。
WSL是微软在2016年发布的一项重磅功能,可在Windows操作系统上运行Linux环境,而无需单独的虚拟机或双引导。也能快速安装各种Linux版本软件,例如Ubuntu、Debian、Kali等,可以让开发人员无缝使用Windows和Linux进行项目开发。
10年的等待,今天终于开源了!目前,在Github将近2万颗星。

开源地址:https://github.com/microsoft/WSL
微软首席执行官Satya Nadella在“Build 2025”大会的开幕式上重磅介绍了WSL开源的消息,并回顾了自2016年4月6日以来,用户希望将Bash引入Windows的请求。
Satya表示,尽管最初WSL与Windows镜像紧密耦合,但经过多次改进,现在已变得更加独立。因此,决定重新开放最初的请求,WSL完全开源。
有网友表示,WSL太棒啦!它简直是Windows操作系统里最出色的部分,希望这是WSL2。

这真是让我一整天都心情愉悦的好消息,为微软点赞!

将改变游戏规则的开源。

WSL简单介绍
wsl.exe是WSL的核心命令行工具,用于启动和管理Linux发行版,执行Linux命令,以及在Windows和Linux系统之间进行切换。
wslconfig.exe用于配置WSL的全局设置,例如,管理已安装的Linux发行版、设置默认发行版等。此外,wslg.exe主要用于支持图形界面应用程序的运行,帮助WSL在Windows环境下更好地显示Linux图形界面。

在WSL的架构中,还有一个核心组件是WSL服务,具体的服务程序是wslservice.exe。它在后台运行,负责初始化WSL2的虚拟机环境,为运行Linux发行版提供基础支持。它还管理用户安装的各个Linux发行版的启动过程,确保它们能够在WSL环境中正常运行。
此外,WSL服务还负责实现Windows文件系统与Linux文件系统之间的挂载和共享,方便用户在两个系统之间访问和操作文件。
在Linux环境中运行的二进制文件为WSL提供了核心功能支持。例如,init负责Linux发行版的启动初始化过程,确保系统能够正确加载和运行。
gns用于网络相关功能的实现,例如配置网络接口、管理网络连接等,确保Linux系统在WSL环境中能够正常访问网络。localhost则用于端口转发功能,允许Linux系统中的应用程序通过特定端口与Windows系统进行通信,或者与外部网络进行交互。这些守护进程在Linux发行版启动时自动运行,为用户提供透明的网络和系统管理功能。
此外,WSL还提供了一种机制,允许用户在Windows和Linux系统之间无缝共享文件。这是通过WSL的plan9服务器实现的。
plan9是一个文件系统协议的实现,允许Linux系统访问Windows文件系统中的文件,反之亦然。用户可以在Linux环境中直接访问Windows的文件夹和文件,也可以在Windows环境中访问Linux文件系统中的内容。
这种文件共享机制极大地提高了用户在跨平台开发和使用场景中的便利性,使得用户无需在两个系统之间手动复制文件,从而提高了工作效率。
微软为何现在才开源WSL
WSL最早在2016年的微软BUILD大会上宣布,并首次随Windows10周年更新版推出。
当时,WSL基于一个pico进程提供程序lxcore.sys,能使Windows能够原生运行ELF可执行文件,并在Windows内核中实现Linux系统调用。这最终成为了今天我们所熟知的“WSL1”,WSL至今仍然支持它。
随着时间的推移,人们逐渐意识到,要实现与原生Linux的最佳兼容性,最好的方法是依赖Linux内核本身。于是WSL2诞生了,并于2019年首次宣布。
随着WSL背后的社区不断壮大,WSL也获得了更多功能,例如,GPU支持、图形应用程序支持以及对systemd的支持。
为了跟上不断增长的社区和功能需求,WSL必须加快开发速度,并独立于Windows发布。因此,微软在2021年将WSL从Windows代码库中分离出来,并将其移到自己的代码库中。这个新的WSL首次于2021年7月作为版本0.47.1推出到Microsoft Store,当时仅支持Windows11,并且该软件包被标记为预览版,仅推荐给希望体验最新WSL功能的用户。
随后微软继续开发这个新的WSL软件包,直到准备好正式发布。这一目标在2022年11月实现,当时WSL1.0.0正式发布,增加了对Windows10的支持,并成为这个新WSL的第一个稳定版本。
从那时起,微软继续改进WSL,目标是将所有用户完全过渡到这个新的WSL软件包,远离随Windows发布的WSL组件。Windows1124H2是第一个将用户从“内置”WSL转移到新WSL软件包的Windows版本,并保留了Windows映像中的wsl.exe,以便它能够按需下载最新软件包,使过渡更加容易。
(文:AIGC开放社区)