Pigs do fly: Microsoft unleashes 20,000 lines of Linux code

Nope, that's not a typo in the headline. Microsoft is releasing three Microsoft-developed Linux drivers to the Linux community for possible inclusion in the Linux source tree, the company announced on the opening day of the OSCON open-source conference.

Microsoft is releasing three Microsoft-developed Linux drivers to the Linux community for possible inclusion in the Linux source tree.

This is the first time Microsoft has made Microsoft-developed code available directly to the Linux community. The Redmondians have released various pieces of code under different open-source licenses over the past few years, but this is the first time Microsoft has released Linux code and the first time the company has used the GPL license to release code, I believe. (Anyone know otherwise?) My ZDNet blogging colleague Jason Perlow says Microsoft previously released part of the Linux Integration Components under the GPL, so this isn't technically the first-ever GPL'd code from the Softies.

Microsoft made the Linux driver announcement on July 20, the opening day of the O'Reilly OSCON open-source conference.

(The driver news also comes a week after Microsoft Chief Operating Officer Kevin Turner told Microsoft reseller partners that Microsoft has competed really well against “the fraudulent perception of free" that is at the core of many  Linux vendors' sales pitches. Not all of Microsoft management is onboard with this newfangled licensing world....)

Microsoft is touting today's release of 20,000 lines of code -- which it is putting under the GNU General Public License v2 (not GPL v3) licensing agreement -- as part of Redmond's commitment to improving the integration of Windows and Linux.

With today's announcement, Microsoft becomes one of many companies contributing code to the central Linux kernel committee. Back in 2008, the Linux Foundation said there were nearly 1,000 developers "representing well over 100 corporations" contributing pieces of code that were part of the kernel."  Currently, the top five named contributors to the Linux core are Red Hat, Intel, Novell, IBM and Oracle.

Unlike the case with Windows, Linux drivers are considered part of the operating-system kernel. As the Linux Foundation explains on its Web site: "The Linux model is that IHVs (independent hardware vendors) get the source code for their driver accepted into the mainline kernel....Having hardware reliably supported by Linux" requires this. It's unclear whether Microsoft's drivers, though submitted by a software vendor, and not an IHV, will be subject to the same process for approval.

(An aside: The Linux Driver Project lead is Greg Kroah-Hartman a programmer with Novell. Remember, Microsoft has a three-year-old and rather controversial  patent/interoperability relationship with Novell.)

Microsoft's Linux drivers were developed largely by members of Microsoft’s Open Source Technology Center (OSTC) team, which has developed expertise in Linux, Unix and open-source technologies.

Tom Hanrahan, the head of the OSTC, is quoted on Microsoft's press site as explaining the purpose of the drivers this way:

"Our initial goal in developing the (Linux driver) code was to enable Linux to run as a virtual machine on top of Hyper-V, Microsoft’s hypervisor and implementation of virtualization.

"The Linux device drivers we are releasing are designed so Linux can run in enlightened mode, giving it the same optimized synthetic devices as a Windows virtual machine running on top of Hyper-V. Without this driver code, Linux can run on top of Windows, but without the same high performance levels. We worked very closely with the Hyper-V team at Microsoft to make that happen."

(I'm not sure how much of the newly released Microsoft code is a repackaging and/or update of what it has been calling the Linux Integration Components for Hyper-V. I'll ask and update this post accordingly.)

Hanrahan also played up the consolidation message in explaining Microsoft's motivation for releasing the Linux driver code:

"Customers have told us that they would like to standardize on one virtualization platform, and the Linux device drivers will help customers who are running Linux to consolidate their Linux and Windows servers on a single virtualization platform, thereby reducing the complexity of their infrastructure."

I have lots of questions about this announcement and will be updating this post once I have a chance to talk to Microsoft officials. If you have questions, chime in and I'll try to get answers on those, too...

Meanwhile: What's your take? Is today's announcement more than just Microsoft dipping a toe in the GPL waters?

Update: Make sure not to miss Part 2 of this tale, where the pigs are flying low.... The plot thickens and Microsoft's motives for GPL'ing the drivers are looking a little suspect.