Microsoft Technical Fellow Mark Russinovich recently caused a stir by telling a crowd of geeks at ChefConf that an open-source Windows “is definitely possible.”
The fact that a top Microsoft engineer would say such a thing is a massive change from the Microsoft so many of us grew up with, which argued vociferously that open-source software was “un-American.” Microsoft is definitely behaving differently under new CEO Satya Nadella, and it’s taking terrific first steps towards a more open mindset—but recent events show why you shouldn’t expect an open-source version of Windows any time soon.
Spartan’s rendering engine will only be open to “major Web entities”
Microsoft is currently creating a new rendering engine for Windows 10’s Spartan browser, known as “EdgeHTML.” The rendering engine in Internet Explorer is known as “Trident.”
All other browsers now use open-source rendering engines. Mozilla Firefox uses Gecko, Safari uses WebKit, and Google Chrome and Opera uses Blink. Even if a browser itself isn’t open-source—like Safari—the underlying rendering engine is.
This leaves Microsoft as the only company with a closed-source rendering engine, but the Internet Explorer Team realizes there’s a problem.
“Adobe is a major contributor to open source browser engines such as WebKit, Blink, and Gecko. In the past, it was challenging for them (or anyone external to Microsoft) to make contributions to the Internet Explorer code base. As a result, as Adobe improved the Web platform in other browsers, but couldn't bring the same improvements to Microsoft's platform.”
Microsoft has a solution, though. They’ve given Adobe some access to the EdgeHTML code, allowing them to contribute improvements. “In the same spirit of openness, we’ve been making changes internally to allow other major Web entities to contribute to the growth of our platform,” it says.
That sounds like an improvement, sure—but, rather than just open-sourcing EdgeHTML and letting anyone contribute, they’re approving individual “major web entities” in a piecemeal fashion. Microsoft is twisting itself into pretzels to get some of the benefits of being open-source without actually going open-source.
.NET is open-source on the server, but the desktop bits are staying closed
Microsoft has recently been trumpeting their open-sourcing of the .NET runtime. Some websites even wrote headlines that Microsoft was open-sourcing .NET, full stop. But it hasn’t actually open-sourced all of .NET. Instead, Microsoft has open-sourced the .NET server stack and began porting the runtime itself to Mac and Linux.
That’s a good thing, really. But Microsoft didn’t just open-source .NET—it carefully drew lines around the things they wanted to open-source. “You can build a .Net app and then decide if you want to run it on a Linux server or on Windows Server,” said Microsoft’s S. Somasegar.
This works well for Microsoft. It even hosts Linux servers on the Microsoft Azure cloud service. Use Microsoft technologies to build your server solutions and you can take them between Linux and Windows. Great!
But Microsoft won’t be open-sourcing the client-side .NET software, like WPF (Windows Presentation Foundation) and Windows Forms, which are used to build desktop applications with .NET. This would potentially allow businesses to migrate old .NET business applications away from the Windows desktop to other platforms. That’s not beneficial to Microsoft’s business model, so they’re keeping those bits closed-source.
The free and open-source Mono 4.0 was recently released, and it includes some of Microsoft’s newly open-sourced .NET code. That’s a win, but Microsoft is ensuring the desktop bits stay locked up and Windows-only.
Microsoft still wants to sell and control Windows
But let’s say Microsoft decides to change their tune and open-sources all of Windows 10 at some point. It won’t happen, but let’s pretend.
Microsoft would struggle with bigger problems. It’d still be able to sell Windows, but other people would be able to take the Windows source code, strip out the branding, and make their own freely downloadable variations of Windows. People could legally create versions of Windows without Windows activation built in, so they wouldn’t need a product key. Microsoft wouldn’t really be able to sell Windows—just support contracts that provided access to Windows patches quickly. And those patches could be taken and re-released for the community versions of Windows, just like how CentOS repackages the commercial Red Hat Enterprise Linux software.
And remember, Windows 10 isn’t actually free—it’s just a free upgrade for the first year for existing Windows 7 and 8 consumer users. It’s not free for consumers after that, it’s not free for DIY system builders, and it’s not free for businesses. It’s also not free for hardware manufacturers. Microsoft is still betting on Windows licensing revenue.
Worse yet for Microsoft, competing companies could take Windows and use it to make a competing operating system. Amazon’s Fire OS is based on Android with Google’s services stripped out and Amazon’s included. Imagine a Fire OS version of Windows, one that ran all the Windows software you might want, but had Amazon’s—or another companies—services integrated into it. This open-sourcing would actually hurt Microsoft’s bid to become a services company.
Projects like Wine would also get a big boost, and it could become much easier to run Windows applications on non-Windows platforms.
The idea of Microsoft open-sourcing all of Windows is clearly a lot of hot air today, and even if it will happen someday, that day is far in the future. Really, Mark Russinovich's statement isn’t about Windows. It’s about Microsoft and its culture. He’s saying that Microsoft is no longer ideologically opposed to open-source software, and they’ll continue looking at open-sourcing things they can benefit from open-sourcing. Microsoft gets a good headline and gains some credibility points with geeks who like and use open-source software.
But all of Windows won’t be open-source any time soon. Don’t hold your breath!