The news from Microsoft’s Build developer conference that surprised me most was that Microsoft will ship a genuine Linux kernel—GPLed, with all patches published—with Windows. That announcement was made with the announcement of Windows Terminal, a new front-end for command-line programs on Windows that will, among other things, support tabs.
Microsoft’s increased involvement with open source software isn’t new, as projects such as Visual Studio Code and the .NET runtime have operated as open source, community-driven projects. But this week’s announcements felt a bit different.
The Linux kernel will be powering Microsoft’s second generation Windows Subsystem for Linux (WSL). The first generation WSL contains a partial re-implementation of the Linux kernel API that uses the Windows NT kernel to perform its functionality. In choosing this approach, Microsoft avoided using any actual Linux code, and hence the company avoided the GPL license with its “viral” stipulations that would have arguably forced Microsoft to open source WSL and perhaps even parts of Windows itself.
In the second-generation WSL? It’s a full GPLed Linux kernel running in a lightweight virtual machine. This won’t be part of the base Windows installation—I’m told that developers will need to enable Developer Mode in Windows first—but it is, nonetheless, a GPL-licensed component forming part of a Windows component. Windows’ WSL feature has GPLed underpinnings, and that’s not something I would have expected to write even a year or two ago.
Opening up Windows itself
No less significant is the Windows Terminal project. Many Windows users will know that Windows’ command-line programs depend on a process named conhost.exe that’s responsible for drawing the command-line windows. As part of Windows Terminal, Microsoft has published the source to conhost.exe. This is an important (albeit uninteresting) part of Windows itself, and Microsoft has published it using the permissive MIT license. This is, I think, unprecedented. While Microsoft has open sourced Windows utilities such as Calculator, this represents the first time that the company has published core Windows code—and with an open source license to boot.
The Windows Terminal project is similarly permissively licensed. While it’s branded an early alpha release at present, once it stabilizes and has a solid feature set, it’s likely to be integrated into Windows itself and to ship as a standard Windows component. Just as with the publishing of conhost.exe, this too represents something of a first: a (new) core Windows component that’s developed as open source.
Microsoft has changed. It’s not the company it once was. Open source is no longer the enemy—it’s now something that has a role across the entire company. And open source is not just for discrete, standalone applications; it’s now a viable building block for core Windows features.
Back in 2015, Mark Russinovich said that Microsoft could open source Windows. At the time, I wrote that this wouldn’t happen any time soon but that we might well expect individual components, such as increasing parts of the .NET Framework, having their source opened. Lo and behold, this appears to be the very path that Microsoft is taking. Open source is now just a part of the company’s toolkit, and there’s little apparent limit to where it can be used.