Microsoft Is Contributing 20,000 Lines of Code to the Linux Kernel
Microsoft is contributing 3 Linux device drivers, 20,000 lines of code, to the Linux kernel 2.6.32 under GPLv2 license.
Tom Hanrahan, Director of Microsoft’s Open Source Technology Center, explains what motivated Microsoft to make this rather unusual step:
It’s important to understand one key point of virtualization. When you have an operating system running as a virtual machine, it needs to know it is doing that, so it won’t make calls directly to various peripherals. In Microsoft terminology we call this enlightenment. The Windows Server 2008 was designed enlightened so it would know when it is running as a virtual machine and it would know when it is running on physical hardware.
In order for Linux to have the same kind of experience on Hyper-V, it had to have the same enlightenment. In order to do this, we had to run Linux device drivers.
These device drivers were previously available for download to be used with the first version of Hyper-V, but the Linux community convinced Microsoft, through Greg Kroah-Hartman, who was the first to approach Microsoft on this, that the way to add Linux device drivers is to contribute them to the community, so any commercial or non-commercial distributor can make use of them, modify and distribute them at will.
Hank Janssen, Manager on Microsoft’s Open Source Technology Center, the man leading the team who wrote these drivers promises they won’t stop working on the code:
We will continue to update the driver code to enhance interoperability on an ongoing basis, but it's our hope that other developers in the community will find the code useful and worthy of collaboration.
Jay Lyman, an analyst for the 451 Group, made some comments on the significance of this move. Layman thinks that Microsoft will retain the intellectual property of the code:
The copyright for the code will remain with Microsoft, with the contributor credit going to its engineering lead, Hank Janssen, group program manager at Microsoft’s Open Source Technology Center,
but his understanding is that Microsoft agrees not to claim any patent rights, and consequently not charge any royalty for the code:
If we were putting money on the most likely conspiracy theory to emerge in response to this news it would be that this is a Trojan horse and Microsoft is contributing code to Linux that it will later claim patent rights over. Whether that is even theoretically possible depends on your understanding of the GPLv2.
… Ultimately this is a question for a lawyer, or an eloquence of lawyers (yes it is ironic,apparently). In the meantime, it is our understanding that Microsoft’s understanding is that contributing code using the GPLv2 includes a promise not to charge a royalty for, or assert any patents covering, the code being contributed.
Lyman also expressed his opinion on why Microsoft made this move:
Red Hat and Novell’s Linux distributions already support enlightened mode, thanks to the development work done by both in partnership with Microsoft. One benefit for Microsoft of contributing to the kernel is that it reduces duplication of effort and the cost of supporting multiple, unique implementations of Linux. Once the code has been accepted into the kernel, Microsoft will use the kernel tree code as the basis for future virtualization integration development.
It also means that community Linux distributions will be able to use the code, which opens up more opportunities for Microsoft in the hosting market, where adoption of community Linux distributions such as Ubuntu, Debian and CentOS is significant. It also therefore slightly strengthens the challenge those community operating systems can make to Red Hat and Novell, which are more direct commercial challengers to Windows.
Make no mistake about it, Microsoft’s contribution is driven by its own interests. While it must serve and respond to enterprise customers that continue to drive the use of multiple operating systems and mixed environments, Microsoft also benefits by differentiating its Hyper-V virtualization technology from virtualization leader VMware. We believe Microsoft sees an opportunity to make virtualization with Windows more Linux-friendly than VMware.
As a note, Linux can run on Hyper-V without the mentioned device drivers, but its performance is degraded. This is the first time Microsoft contributes code to the Linux kernel and it is the first time Microsoft releases code under GPLv2.