I have a unique perspective on Microsoft's Linux involvement. I help deliver Ubuntu on Windows Subsystem for Linux in my job on the Desktop team at Canonical. I regularly talk to many Microsoft employees working on Linux and various open source projects. I also get briefings on Microsoft products and strategy as an MVP. Note though, these are my personal thoughts, and I am not sharing anything here that is not public.
I have become somewhat of an intermediary between the Microsoft and Linux communities. It is something I am glad to do. There are creative, kind, and fascinating people in both communities. Interesting things happen when the lines between them blur. Fostering cross-pollination will make computing better for everyone.
I am deeply skeptical of the notion that Microsoft is going to shift the core of the Windows operating system to the Linux kernel, for both product and engineering reasons, any time soon. Let me explain why.
First, the reasons why I think this fantasy this keeps cropping up on Slashdot and Hacker News.
- It is effective clickbait.
- It is a long-held fantasy for open source and Linux advocates.
- The role of Windows is changing in a world where the pie of operating systems powering devices is now shared with Android, iOS, macOS, Chrome OS, and Ubuntu.
- The perceived plausibility of something like this is increasing, with things like Linux usage on Azure and WSL. The Overton Window has shifted.
The reasons I do not think Windows will be rebasing to a Linux kernel are as followed:
- The NT kernel in Windows offers a degree of backward compatibility, long-term support, and driver availability that Linux is just now approaching. It would cost millions of dollars to replicate these in Linux. Microsoft has plenty of paying customers to continue supporting Windows as-is, some for decades. Windows is not a drain on Microsoft that would justify the expense of rebasing to Linux for savings, as Raymond has argued. Lots of profitable companies exist solely to service existing operating systems. Even if it came down to rebasing to Linux, it could result in an undesirable kernel monoculture. Competition with Windows and macOS makes Linux a better operating system. The more desirable outcome is that open source innovation continues spreading across and between all operating systems. That Windows and Linux open source contributors share the best of both ecosystems.
- It is unclear if the Windows user space could even be rebased from NT to the Linux kernel and maintain the compatibility that Windows is known for, specifically what enterprise clients with mission-critical applications are paying to get. Windows does not have the same strict division between kernel space and user space that Linux does. The NT kernel has about 400 documented syscalls plus about 1700 documented Win32 API calls. That would be a huge amount of re-implementation to ensure precise compatibility that Windows developers and their tools expect. It goes beyond contributing some fixes to Wine. Linux only has 313 syscalls on amd64 and, even then, part of the reason Microsoft switched from a syscall translation layer in WSL 1 to a virtualized kernel in WSL 2 is because re-implementing the dozens of non-standard ways developers had come to exploit the Linux ABI was a pain in the ass. It is one thing to provide a NT-related compatibility layer for SQL Server on Linux, which Microsoft owns, it is another to guarantee it for millions of other developer's applications.
- Microsoft has doubled down on Windows in recent years. Microsoft has invested in usability, new features, and performance improvements for Windows 10 that have paid off. These improvements, collaborations with OEMs, and the Surface helped revitalize a PC market that at one point looked in danger of falling to iPads and Chromebooks. Microsoft has been working hard to make Windows an excellent development platform, with projects like Windows Terminal, PowerToys, Windows Subsystem for Linux, and Visual Studio 2019. The Insiders program is remarkably successful. Windows powers most of the Surface device lineup, a key focus of Microsoft right now. Internal reorganizations in 2018 and 2020 show that the future of the Surface and Windows are now inextricably linked. Windows powers the Xbox and we are in a resurgence of mostly Windows-based PC gaming. Microsoft also has ideas for Windows 10X, the next operating system concept following Windows 10 (that I think we will get in gradual pieces), with future hardware like the Surface Neo in mind.
- Microsoft does not have to rebase to Linux to stay relevant. Microsoft is aware of a changing device landscape after losing on Windows in mobile. They recognize a more diverse set of operating systems and platforms are powering the computing devices we use, which now includes Android, Ubuntu, iOS, macOS, Alexa, Chrome OS, and not just x86 but ARM. Microsoft has shown they are able to adapt by making relevant products and services available on those other platforms while simultaneously keeping their own platform, Windows, competitive in its traditional footholds. Microsoft is now driving innovation on Android in the mobile space, not just with ported Office apps, but a home screen launcher, and now the Surface Duo. On Ubuntu, they offer their tools that would make sense for Linux workstations, such as Code, .NET, Azure tools, Teams, PowerShell, Sysinternals for Linux, and soon Edge, which comes with Microsoft's custom web dev tools. Do you want to run Ubuntu on Azure? Microsoft has you covered and works closely with Canonical to make that a wonderful experience.
The much more interesting question is not whether Microsoft is planning to rebase Windows to Linux, but how far Windows will go on open source. We are already seeing components like Windows Terminal, PowerToys, and other Windows components either begin life as or go open source. The more logical and realistic goal here is a continued opening of Windows components and the Windows development process, even beyond the Insiders program, in a way that benefits other operating systems.
After all, Windows has already adopted the Ubuntu release cadence, of six-month releases in April and October with set releases getting extended support. Windows 2004 and Ubuntu 20.04 landed within days of each other. I kid.
Raymond is correct in one key part of his blog. I do think the era of the desktop OS wars is ending. We are entering a new era where your high-end workstation will run multiple operating systems simultaneously, like runtimes, and not necessarily all locally. The choice will not really be Windows or Linux, it will be whether you boot Hyper-V or KVM first, and Windows and Ubuntu stacks will be tuned to run well on the other. Microsoft contributes patches to the Linux kernel to run Linux well on Hyper-V and tweaks Windows to play nicely on KVM.
The best parts of Ubuntu will come to Windows and the best open source parts of Windows will come to Ubuntu, thanks to an increasing trend towards open source across Microsoft.
Neither Windows nor Ubuntu are going anywhere. They are just going to keep getting better through open source. Each will play to their relative strengths. Just now with more open source collaboration than imaginable before.