The Systemd service is now available in Windows 11 via WSL.
When Systemd creator Lennart Poettering joined Microsoft in July, it was quite evident that Microsoft was planning to move WSL to the next stage. Yesterday, Microsoft announced that the Systemd service is availalbe in WSL version 0.67.6 onwards in Windows 11 only.
Necessary architectural changes are done in the WSL code base to allow Systemd service to start with process id 1, which was earlier used by the init process. Now Systemd tarts with PID 1, and the init process becomes the child process of the Systemd services.
What are the impacts of Systemd inside WSL? Well, it will give some advantages to Ubuntu. Because Snap packages by design depend on Systemd. Until now, it was not possible to run the SNap packages inside WSL.
After enabling the Systemd service, you simply install the Snap packages and run. Not only that, this opens up several possibilities as well. The developers can create the Systemd units on their own or start using all the basic building blocks of Linux systems such as Pipewire, NetworkManager and so on inside WSL.
The irony is how “Ubuntu”, “Snap”, and “Windows” becomes friends.
However, this is not a surprise business direction from Microsoft. You got to survive and keep the developers inside the Windows ecosystem at any cost. If you remember Microsoft’s recent directions in terms of Linux/Open-source, they are all calculative approaches.
For example, acquiring GitHub, launching Co-Pilot paid service by letting the AI learn from free and open-source projects, creating difficulties to install Linux via dual-boot, poaching systemd creator… the list goes on.
And it will continue in the future as well in a different capacity.
That said, let’s see how it works.
How Systemd works in WSL
So, if you are running Windows 11 and having WSL version 0.67.6 (check via
wsl --version), all you need to do is boot up your Ubuntu or any other Linux distributions via WSL. Then open
/etc/wsl.conf file via the terminal and set the systemd switch to true.
Since you started the session for the first time without Systemd, you need to restart the WSL to take effect.
After a reboot of your WSL instance, you can verify what Systmed services are running.
systemctl list-unit-files --type=service
Although it might be beneficial for many developers, but it values nothing to the open-source community. The day is not far when Ubuntu probably becomes a Microsoft-sponsored distro. Who knows what the future holds?
🗨️ What do you think about this development? Let me know in the comment box.