There have been a number of stories lately about Microsoft contributing code to the Linux kernel. Some of it has been pretty cynical and would make for a good popcorn movie. I’ll leave it up to you where my thoughts belong.
What did Microsoft contribute?
Just in case you’ve been on vacation, here is a story that gives you the basics. It was actually challenging to find a story that wasn’t filled with speculation and spin on what this means and why it’s happening.
Thoughts
This is one of those disclaimer times when I remind you that my comments and opinions are not necessarily those of IBM.
First, I think it’s interesting that Microsoft has taken this step. It is a very different approach to one that they had in the past of citing the irrelevance of Linux. Clearly they see that some of their audience is going to want to work with Linux and that it is to their advantage to have a level of cooperation with that. I believe these drivers have had some availability, but the source was closed. The most interesting part of this is Microsoft’s decision to release the code under the GPL v2.0 license. Microsoft leadership has shown some real distaste for the GPL in the past. Releasing the Linux code into the predominant Linux license seems enlightened to me.
Second, the code is not really a change to Linux. It’s simply drivers to allow Linux to run more smoothly within the Microsoft Windows 2008 virtual machine space. It’s really more of a punch at VMWare and other virtual machine developers/vendors. It would be nice to see this as more of a trend. There are many vendors that keep their Linux drivers proprietary which makes for brokenness when you exercise your right to manipulate the Linux environment. Being able to simply recompile any and all drivers into the environment of my choosing would make for a much happier Linux experience all the way around. It also allows the Linux community to help fix driver problems based on a vendors incomplete understanding of Linux best practices. (Yeah! Go ahead and laugh. There are Linux best practices.)
Third, the driver contribution is designed to make it easier for Linux to run subject to Windows. Windows will be your key environment and Linux will run safely inside of it. To me, this seems completely backwards. From time to time I am compelled to fire up Windows for some silly activity where people were unaware of the multi-platform options. I use VMWare to run Windows in those situations so I can get the activity over with… but Windows is safely encapsulated within my Linux environment, which reduces the exposure.
I think I can safely conclude that Microsoft expects users to be running Linux. They are accomodating that while maintaining the position that Windows should be the key environment. They chose to go along with the Linux conventions in their licensing which is actually pretty good form.
Overall this has little to no affect on Linux other than to make it easier for it to appear in some die-hard Windows environments. That means that techies who appreciate Linux can now leverage this in their environments where the ruling admins demand Windows. I find that when Linux gets into an environment doing work that people notice the benefits. An “Aha!” moment seems to come when something is reliable, or customizeable or fixible in a way that is empowering.
Does this mean a big love fest for Linux from Microsoft? Probably not. Microsoft will continue to agressively leverage their position against what they perceive as a threat. But maybe… just maybe… it will be a doorway for people inside Microsoft who see tools and techniques ported to Linux. Maybe Microsoft goes a little more multi-platform, and that wouldn’t be so bad.