微软开始测试在WSL支持Systemd

微软宣布适用于Linux的Windows子系统(Windows Subsystem for Linux,WSL),可以让用户在WSL的Linux发行版中执行Systemd,而这代表用户将可以在Windows机器上,执行更多原本只能在Linux进行的工作流程。

Systemd是一套Linux系统的基本构建模块,其提供系统和服务管理器,作为PID 1运行,负责启动系统的各个部分。微软提到,不少被广泛使用的Linux发行版,都默认执行systemd,诸如Ubuntu、Debian等,而在WSL中支持Systemd,能够提供用户更接近这些常用Linux发行版的体验,并且执行相依于Systemd的软件,诸如Snap、microk8s以及systemctl等。

由于要在WSL支持Systemd,微软需要对WSL的架构进行更改,因为Systemd必须以PID 1运行,所以在Linux发行版中的WSL启动程序,将会成为Systemd的子程序,但是因为WSL启动程序原为Linux和Windows组件间通信基础设施,因此更改这个阶层结构需要一些额外的调整,而这也使得在激活Systemd之后,无法让WSL执行实例一直维持在激活状态。

这项变更会改变WSL在启动时的行为,因此微软目前仅先将其应用到用户已经存在的WSL发行版,用户需要选择对特定WSL发行版激活Systemd。微软会监控用户对这项新功能的反馈,并计划在未来默认此行为。

要使用这个版本,需要WSL 0.67.6以上版本,这个版本目前在Microsoft Store中供Windows Insiders用户使用,数周后才会向所有用户开放,如果用户并不在Windows Insiders计划中,可以直接到WSL发布页面下载最新版本。