Recently, Microsoft got a good deal of press for having open-sourced its Hyper-V drivers for Linux, releasing them under the GPL v2 even. To anyone paying attention to Microsoft’s earlier rhetoric about the GPL being “un-american“, this is surprising news. To those of us who know what’s actually going on underneath the finely crafted patina of a sudden change of heart, this move is every bit as cynical as every other Microsoft has ever taken.
First up, Microsoft has a well-known, practiced, and effective method of combatting any free or open standard that conflicts with their goals. This method is known as EEE: Embrace, Extend and Extinguish. It is well known because the US Department of Justice caught Microsoft using it internally in discussing how to take over the internet proper. See, the problem with every open source or open standard initiative, in their eyes, is that Microsoft cannot leverage their existing near-monopoly of the OS market to force consumers to use another of their products if anyone has access to the specifications and therefore can create a competing product. The TCP/IP stack, upon which the Internet is fundamentally based, is not a Microsoft specific protocol. It is derived from BSD. Sadly for Microsoft, by the time they realized the internet was not merely some passing fad, it was too ubiquitous for them to supplant. The HTML protocol, however, was not — when they came around to building internet browsers, while Mosaic and Netscape dominated that marketplace, Internet Explorer (the first version being based off Mosaic) came along and introduced new tags and subtle rendering differences that did not belong to the original HTML protocol.
Soon websites everywhere popped up that “looked better” in one browser or another, and Microsoft’s monopoly on the Windows market allowed them to bundle their browser with their newest version of Windows, being 95, thus granting them as much market penetration instantaneously for their browser as their operating system. Therefore, the IE standards became the de facto standards.
Microsoft does the same trick in the Office world — the .doc file is now, despite only being properly and legally readable in the Microsoft Office suite, the de facto standard because everyone’s using it, and everyone’s using it because everyone else is using it. Then OpenDocument comes along and provides for every single technical advantage that Microsoft’s Office has in every one of their file formats, only they do it in a manner that’s easily duplicable by other office suites. OpenOffice takes up the standard for the non-Microsoft office suite. Microsoft becomes upset that their binary, proprietary, impossible to duplicate without licensing from Microsoft, document formats, get snubbed by the international standards bodies that pass OpenDocument with hardly a problem. Microsoft creates a competing “Open” standard called Office OpenXML, which retains binary blobs and tags that suggest a document should be “treated like X version of MS Office”, which in itself provides a stumbling block for compatibility because only Microsoft knows how Microsoft documents are read and written at any point in time.
Thus, in pretending to be open, they are embracing the open movement, while retaining whatever hooks that keep the customer addicted to Microsoft. And when they can’t keep the customer addicted to their format, they either pick an old version of the open standard and implement it, so they can legitimately claim the standard is inferior to their own document format and drive their customers to the proprietary side, or they actively add features to the standard (because standards are open) such that only they can effectively implement them. They do this subtly, most times, because everyone’s rightfully wary of Microsoft.
The second major issue I have with Microsoft opening the source of these Hyper-V drivers, is the reason they created the drivers to begin with. Microsoft is losing ground in the server market for one major reason — virtualization. It is far easier presently to create a Linux or Unix based server, and virtualize any Windows environment you happen to need, while simultaneously virtualizing other Linux servers, than it is to do it the other way around, with Windows as the host system, because Linux works far worse under a virtualized server on Windows than the other way around.
So, they created drivers that would allow Linux to run better under Windows, so as to keep people paying for Windows when they theoretically might not have to (e.g., by running a Linux host as well as Linux guest servers). Microsoft saw the Linux host as eliminating one license that they could otherwise have been charging for, and rightfully (in their minds) took aim at the crux of the issue. And unfortunately, they have some allies — sysadmins today are desperately hooked on Microsoft and will fight tooth and nail to keep open source from being adopted. And where it IS adopted, it’s in virtual machines within Windows. I have seen this from direct experience, and am lucky to have as many Linux-based servers in my domain as I do presently, where other sites in my company are hopelessly Windows-oriented.
And finally, the third major issue is the major-est issue of all. Microsoft opened the source to those drivers not because they wanted to, to provide openness to the community, because other third-party companies *ahemNVidiacoughATIcough* — excuse me — because other third parties have proven that they can get away with only a little bit of ire from the Linux community by releasing binary-only blobs. See, the thing that pushed them over the GPL cliff was the fact that they had both GPL’d and statically-linked components in their drivers simultaneously, which is not allowed under the GPL. They were in violation of copyright law by including GPL’d code and statically built libraries simultaneously, so they were forced to open the whole shebang lest they be forced to stop distributing this, their trojan horse into the Linux community.
That we recognize this move for what it is, is important. This is not merely an anti-Microsoft bashing post. This is knowing the enemy, and recognizing what is its true intentions in its 180o reversal on the GPL. Forewarned is forearmed.