It all started with some free lunch four years ago, and then it morphed into a free patch. Along came Moonlight and some other developments, and now Microsoft has donated 20,000 lines of driver code to be included in the Linux tree. Yes– Microsoft contributed drivers to the Linux community.Okay, so there weren’t a whole lot of drivers (only three), and they weren’t ones most people would be interested in (there won’t be better support for hardware such as sound cards or wireless chips because of them), but it’s another interesting move from Microsoft nonetheless. The drivers were also released under the GPLv2 license.
At first-glance, it brings one to wonder what Microsoft’s angle is. Everybody, after all, has an angle. As it turns out, these three drivers are made specifically for Linux to perform better while being virtualized on Windows Server 2008 Hyper-V. Microsoft’s seeing that helping Linux to improve will help its own services to improve. To be fair, this helps customers of Windows Server 2008 more than anyone else at this time.
The reasons Microsoft did this probably are varied, but chiefest of them are economics and customer demand. Businesses are working to reduce costs in every area possible so as to keep their highly-skilled personnel, and sometimes this means consolidating hardware and software. Virtualization can accomplish this sort of consolitation. According to Tom Hanrahan, director of the Open Source Technology Center at Microsoft, “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.”
On the same topic, Sam Ramji, senior director of Platform Strategy in Microsoft’s Server and Tools organization, added that “requests from our customers and partners were really the impetus behind [these] efforts. We are hearing more and more customers and open source partners telling us they see some of their best value when they deploy new open source software solutions on top of existing Microsoft platforms. Today’s release would have been unheard of from Microsoft a few years ago, but it’s a prime example that customer demand is a powerful catalyst for change.”
Despite it being for Microsoft and their customers’ benefit, it can’t be denied that this is a good turn of events for the Linux kernel. A few more drivers that will improve virtualization performance can only be good, and who can complain when there are no strings attached with the GPLv2 license? Though this is the first actual contribution of code to the open source arena by Microsoft, the company has participated and helped several open source projects along already, and it’s probably safe to say that this won’t be the last contribution to the community. When asked what was in the future for Microsoft and open source, Ramji’s first statement was, “we’re focused on building sustainable business strategies for open source at Microsoft.” Essentially, if it’s profitable for Microsoft’s business, then it’ll deal with open source. Can you blame them, though? Money talks especially in this age.
Microsoft also included a driver for the USB Patella-Stim Strap, which is activated when Microsoft’s drivers are initially loaded in the kernel. It was determined that the current OHCI/UHCI HID driver was sufficient to generate the knee-jerk response.
Can you point me to a mailinglist message (or other publication on the web) where this 4th driver is discussed and rejected? Because I can only find Greg Kroah-Hartman’s announcement of the patch on 3 Linux lists. And apart from some grumbling about the readability of the original patches, I haven’t found a real discussion about their functionality (yet. Possibly because people haven’t had the time to take a good look.).
I’d like to make it clear that I do not really doubt your claim about the existence of that rejection, but I would like to read it for myself. Especially, I’d like to test my expectation that there actually are good reasons to reject that driver (and that it is not, as you claim, a knee-jerk reaction. But to each his own opinion.)
Sorry, this is my version of a joke, probably a bad one. I chose the name “USB Patella-Stim Strap”, to represent a hypothetical USB device that would stimulate the patella (I think that is the knee cap) and cause it to jerk. Thus, my joke was that when people hear Microsoft and Linux that probably have a knee-jerk reaction. Pardon my wierd humor.
Resume normal transmission…
Ah, that’s what that whooosh was: the sound of a joke going over my head
Thanks for the clarification anyway. And yes, as I read the original message, I couldn’t help wondering if the knee-jerk comment was a knee-jerk reaction in itself. Which in turn probably shows the bias I have, even if I usually try to view the other side of the coin too.
So, while the joke went over my head, it did have somewhat of the intended effect of introspection. *Tips hat*
“This is the end of the world as we know it…”
I wonder if this means the Year of the Linux Desktop is coming up…?
Edited 2009-07-20 18:27 UTC
Nah, this is just “the Year of Microsoft Realizing that People Will Continue To Want to Run Linux(tm)”, and therefore are attempting to make it run better… on *their* operating system. Their desired result? For people to neatly avoid “switching” any computer completely to Linux, and instead run it as a virtualized program under none other than Windows. In other words, they’re just trying to get people to use their OS as a virtualization host–nothing new here.
It looks like embrace-extend-extinguish all over again, only this time with a twist. The only surprise is that Microsoft itself is contributing to the Linux kernel under (the big shocker) the GPL. But then, there’s no way in hell the Linux kernel team would accept it under any other license. It’s a “win” for Microsoft, and a lose for Linux; nothing will stop Microsoft from purposely changing their OS in such a way that it renders these couple thousand lines of code useless once they’ve got their way.
Personally, I hope no major (or minor for that matter) Linux distros ship with these Windows virtualization, er, I mean kernel drivers enabled by default; I only see it helping Microsoft, and likely hurting Linux in the future. Novell will surely jump right on it, but then, they’ve been in Microsoft’s pocket for a few years now.
Edited 2009-07-20 23:40 UTC
Whether this is a win or a loss for linux depends on how you look at it. It adds additionally functionality to linux. That’s a good thing. Linux can do more, better.
The reason that you could argue that it’s bad for linux is because what’s being improved is its ability to run virtualized in a competing operating system, therefore making it easier for people to switch to linux without fully switching. So, if your looking at linux’s goal as getting everyone to switch to it fully and eliminate everyone else, then yes, this could be considered a bad thing.
However,
1. It’s not the goal of everyone in the linux community to crush Windows into oblivion.
2. Even if it were, allowing people to better run linux inside Windows could still get them to switch. It’s just better enabling a slow transition rather than encouraging people to jump in the deep end right away.
Personally, I think that this is a great thing. Linux can do more, better. And having these drivers in the kernel rather than under Microsoft’s complete control will help lead to them being better integrated and doing their job better. Linux has been improved.
Now, there’s no doubt that Microsoft is looking to improve their position and better sell their products with any move that they make, and they would not make this move if they didn’t believe that it benefited them in some way. So, if you’re looking this as entirely a Windows vs Linux thing and think that someone has to lose out, then yes, this could be considered bad for linux. However, not everyone looks at it this way.
This move by Microsoft will help various businesses do what they do, and if Microsoft continues this sort of thing, we may continue to get improvements to the linux that will make it easier for people to switch to linux. Yes, this is Microsoft that we’re talking about here, but making Windows and Linux more interoperable makes life easier for lots of people and can lead to making it easier to get people to switch to linux.
Well, this is getting a bit long. But my point is that this move by Microsoft improves linux and is great for a certain set of linux users. Microsoft isn’t going to kill linux. Linux isn’t going to kill Windows either – certainly not anytime soon. Getting them to work together better is great for users. And if Microsoft makes linux better, that’s great. It’s not like they’re going to control it. Anything they do can be rejected by the linux community. I’m an avid linux user and I think that this announcement is great news.
That joke isn’t funny anymore.
Yes it is!
Apparently Microsoft has moved away from bashing (except Mac OS) and choking (BeOS) competition and to hand out free lollipops. Why?
Eh? What has that got to do with “I wonder if this means the Year of the Linux Desktop is coming up” ..
Well this strategic move must mean something, perhaps that Linux is growing to the extent that Microsoft simply cannot ignore it in their service towards their customers.
(btw I’m not trying to lift up Linux by such remarks, I’m actually not a Linux user at all, but I appreciate the OS)
This isn’t like IBM funding massive SMP, or Sun contributing ZFS. This is MS making linux work well with their HyperVisor. If the only place you get news from is highly biased sources, this may be sort of surprising, however they have been playing much nicer with everyone else for the last few years now then they used to.
Ah yes, the new nice Microsoft that is currently suing companies for using VFAT drivers.
Not companies, a company, and there is probably more to that story then is being reported. I think this is more a good ol fashion shakedown by a big company to a smaller one that is on the rise (like this http://www.forbes.com/asap/2002/0624/044.html) rather then a general direction of not interoperating with anyone.
If you note, I said
and the whole point of that post was that people shouldn’t get too excited over this.
The net result of suing TomTom has been Buffalo signing an agreement with Microsoft – kinda reminds me of the mafia, “well, you know, we are looking out for your best interests; we don’t want you crippled like that poor store owner Pete on the corner. Now if you sign an agreement with us, I’m sure such a tragedy would never occur to you”.
Edited 2009-07-20 19:47 UTC
Will it be included into the Linux Kernel ? Even though MS made this code available, that doesn’t mean that it will automatically be included into the kernel itself. I might be wrong though.
Yeah Linus has to pull the patches, BUT Novell for one will certainly include them into their Linux offerings. Others might as well even as a separate patch.
PS. “no strings attached” is technically not true. Theoretically patents can still bite with GPLv2, you need it in GPLv3 to have a patent license as well. But this is nitpicking as the kernel is GPL2/GPL2 or later
No, the Linux kernel is strictly GPL2. Nothing less, and most definitely nothing more. There is not even a remote possibility of the Linux kernel becoming GPL3 or later.
BS.
Most code in the kernel is “version 2 of the License, or (at your option) any later version.”
Not strictly GPL2
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=…
But patents are no worry:
http://news.slashdot.org/comments.pl?sid=1308785&cid=28758991
Edited 2009-07-20 22:45 UTC
With providing these drivers for the Linux kernel to run better in MS’s virtualizataion environment, they make Linux, at least for this use case, just another Windows app.
I’ve been running WinXP under VirtualBox for many months (and I’m pretty sure there are many like me) and I didn’t see anyone complaining. To me, right now, WinXP is just an app I use to run other apps.
In any case, the fact that they aren’t ignoring the platform altogether like they used to do is a great step. Hopefully, one day Windows and Linux clients will be able to operate without many issues.
Of course, Linus Torvalds had the opportunity after all the auditing that went on around Linux copyrights (when SCO was pointing the finger) to advocate GPLv3 adoption across the whole sources, but oh no: it was all hands off, “I’m pragmatic”, “I don’t see the need for protection against patents”, and “my friends in industry give me the gadgets to play with – why hobble them with reponsibilities to the paying consumer?”, with specious reasoning about how big business will come to their senses around patents.
Had Microsoft been obliged to submit drivers under the GPLv3 (or face being marginalised), the implications would have been somewhat more profound. Instead, Linux insisted on painting the bikeshed black – against expert advice – and now it’s too hot to use in summer.
We could argue about version 2 and version 3 of the GPL until the cows come home, but the GPLv2 did exactly what Linus was looking for. In the whole open source vs free software debate, he’s squarely in the open source camp. Switching to version 3 would have been a royal pain for the kernel (doable, but a royal pain nonetheless), and it wouldn’t have really achieved what Linus wants with regards to the license for the kernel. Many people agree with him. Many do not.
True, the situation with this announcement would be somewhat different if the kernel had been switched to the GPLv3, but it’s still big news, and it doesn’t mean that it’s going to be a problem. The linux kernel is under the GPLv2 and that’s not going to change. Whether that’s a good thing or a bad thing is debatable, but I really don’t think that it makes this announcement bad news or anything like that. It might be less significant, but it’s still significant.
And honestly, I have a hard time believing that Microsoft would ever get away with suing anyone over patent infringement for use of this code when they are the ones releasing it under the GPL. Not to mention, if Microsoft is doing all this open source stuff as a PR campaign on any level, then suing over patents in linux would pretty much ruin that.
I can understand that anyone who disagrees with Linus’ take on licensing would think that it was a mistake to leave the linux kernel on the GPLv2, and that that might make this announcement somewhat less significant, but it’s not like it invalidates it in any way. This is big news.
What would actually be impressive would be a Xen domU kernel even if it weren’t OSS.
Xen / some derivatives of it do have some support for Microsoft’s *own* paravirt API so that MS code can get paravirt speedups when running on Xen.
I asked this question on another site where I saw this story, but I’ll ask it here too. Should the community as a whole shun all things Microsoft? Microsoft for years has had an aggressive attitude toward Linux. Yet now they see a way of making money off of open source projects, by making sure they run great on Windows. Should we let them? What if we as a group told Microsoft that we didn’t want to cooperate anymore? Right now, as I see it, we are standing on a foggy cliff with a bear behind us. Do we trust the bear not to eat us? Or do we take our chances and jump, knowing there might be sharp rocks under us?
I have always had the opinion that Linux should fall or stand on its own merits. I get mad when I see Microsoft holding it back. I also get mad when I see Microsoft using open source to boost its platform.
Do you actually produce any source code, or do you like to be part of the Linux community just for tribalistic reasons?
Also, secondarily, in what way has the Linux community been ‘cooperating’ with Microsoft thusfar that would potentially come to an end?
Well, for one, several open source projects have taken donations from Microsoft to help ensure that their software runs as well on Windows as it does on Linux. Apache was one of these projects. Now there is this code dump. Which makes Linux run better on Microsoft’s hypervisor. Yet, did they help getting Windows running better on KVM? I just have a sneaking suspicion that Microsoft will take advantage of Open Source as much as possible without giving anything back to the community.
The hypercall interface used by the NT Kernel for the built-in enlightenments (process switching, idle, spinlock boosting, TB Flush, and a few others) are public. The KVM developers can use them if they want.
They’d probably have to develop their own synthetic I/O drivers, however. But once again, these are public interfaces. What exactly do you expect?
I think the MS take here is that their customers want to run Windows + Linux, so they want to make sure that Linux works as well as possible *on the Windows hypervisor*. No altruism there, nor would we have any reason or right to expect any.
However, I also think that one of the great strengths of Linux is that it runs on *everything* and that it absorbs support for all sorts of great technologies. Politics is usually left out of the equation by the kernel development community – at least, compared to some other FOSS projects. Although MS is hardly a friend to Linux in general, in this case I believe we have a fairly simple question:
Do these patches make the Linux kernel a better piece of code?
If they are well-prepared and sensibly architected – preferably, though not necessarily, with active maintainers (rather than just a code dump) – then the answer is yes, since they should let Linux run better on the MS hypervisor without making it run worse anywhere else.
If the patches are not yet up to kernel quality, we can still probably agree that making Linux run better in more situations makes the kernel technically better, regardless of whether Microsoft wants Linux to be healthy in business. So we still want the drivers, once they’re whipped into better shape. As such, the authors should have access to the same review process that any other contributor would.
I don’t expect Microsoft want to help Linux do well, so I’d still keep half an eye on the angry bear. I also don’t expect that they fully understand that a great part of its success is its flexibility. More drivers = more flexibility. That can only be a good thing for Linux in the long run.
Microsoft have NEVER supported dual-boot setups and strictly prohibited dual-boot setups in OEM vendor contracts. A move towards “facilitating” dual-boot setups is strange to say the least.
As the article and above comments have concluded, money is at play here. So apparently there must now be certain players on the stage that could earn Microsoft a lot of income if Windows will finally become more “friendly” towards other OSes.
Well that’s a first! Either way, Microsoft are still miles off from proper inter-platform compatibility, as they have always refused to do anything on this part; other platforms were to be compatible with Windows, not the other way around.
On the other hand, it *could* also mean Microsoft is seeing they are slowly but progressively losing market share and Linux is gaining. I’m sure Microsoft will want to turn that tide, which I think is a wise approach. I just hope they’ll stick to fair play this time.
My answer is that you seem to take it way too religious.
Yes, these patches directly benefit existing customers of Microsoft, in the way that they don’t have to install Linux on their physical hardware to run it well. But I guess they are therefore more likely to try (and keep) it.
Really, one more Linux machine running is one more Linux machine running, be it on real hardware or inside a virtualized environment. If it runs nice with both, so much the better.
This is basically Microsoft contributing drivers so that Linux can be better paravirtualised under Windows 2008 and Hyper-V so that Hyper-V doesn’t become totally pointless in the face of alternatives like KVM. You will note, however, that there is nothing whatsoever that will help Windows be better virtualised under a Linux system here.
It’s a strategic decision that doesn’t mean that anything has changed nor should anyone get particularly excited about it.
Without this code, how well does Linux run in a VM under a Windows host?
Windows runs pretty well under KVM. Surely anyone who wants to run virtual machines would be better off with a Linux host and then running the odd virtual Windows server (as required) under that?
The more services one runs on Linux servers, and the more of one’s client machines that use services on said Linux servers instead of requiring a per-user CAL to use the equivalent services on a Windows server (virtual or not in either case), the better and cheaper it will be.
For example, use Alfresco on a Linux server rather than Sharepoint on a Windows server. The more client machines you have, the cheaper it will be. Use CUPs on a Linux server instead of a Windows print server. Use Samba on a Linux server for the file server. And so on, and so forth.
The more services that you can host on Linux servers, for more client machines, the cheaper “squared” it will be.
I lot of people seem to be viewing Hyper-V as some kind of toy when compared to KVM.
I think that is off the mark. I’ll admit I haven’t used KVM much (just to kick the tires) but I’ve been using VMWare for about 8y, VirtualBox since it was publicly released, Virtual PC (and Server) since they were purchased and re-released by MS, and Hyper-V for just the last few months. Of all of them, I think Hyper-V is second only to VMWare for “fit and finish.” I’m willing to bet the Hyper-V management tools are at least the equal of KVM offerings. Hyper-V has standard GUI and CLI (powershell) management, and also the for-fee enterprise management tools, which can manage Hyper-V, VS2005, VMWare, et al from the same app.
Hyper-V itself is a decent pick for VMs. I used it for a recently added small/medium server at the local office (4 cores, 16GB RAM, 4 drives) after a brief try at VMWare ESXi on that hardware. ESXi, while nice, is very limited on hardware compatibility. This has good qualities as HCL approved items are guaranteed to work together. On the other hand, Windows has an HCL too: it is just much bigger. This particular box is pretty standard Tyan server hardware, but the onboard SATA isn’t supported by ESXi. The option then is:
a) Purchase a supported controller (most the supported ones aren’t cheap, so you are looking another $300 or so; maybe you need it anyway, but in our case the onboard controller was fine performance wise).
b) Hack the ESXi install to try to get it to recognize this onboard controller.
c) Use something else.
(b) had been my original plan before setting the box up, but after some thought I chose (c) and Hyper-V and have been pleased with the pick. It is easy to manage, performs well, and has decent built-in backup options for VMs. (ESXi offers no free backup solution, and trying to make one is not trivial.) ESXi also lacks USB support (Hyper-V supports USB) which added another complication for backups, as we normally do backups to locally attached USB drives which get rotated out.
The only downside is that Hyper-V has no memory overcommit support. In this specific instance that was fine, however, as we aren’t currently using but about 8-10GB of the 16. I’ll reveal my ignorance on KVM and ask, does it have overcommit support?
The forthcoming release of the Hyper-V Server 2008 R2 is going to add HA clustering and live-migration to their no-cost version, all supported by their standard management tools.
My point isn’t that Hyper-V is the best thing since sliced bread; my point is that it isn’t a toy and real businesses actually do use it. I imagine a lot more will be using it with live migration and better Linux support. (I had to do a lot of tweaking in order to compile a working kernel for our CentOS VMs that included support for their earlier guest additions. It doesn’t need done often, but it was still a pretty big pain.)