News

Fighting Fire with Fire

It's no secret that Microsoft sees open source software as a threat, in large part because it's unlikely that giving away products for free is going to add yet another billion dollars to the bank accounts in Redmond. This leads to bizarre behavior such as rolling out custom testing and build utilities for Visual Studio .NET "Whidbey" (in some cases hiring the developers of the open source alternatives), rather than figure out how to play better with the already-standard open source versions. After all, NAnt and NUnit are licensed under the GPL, and Microsoft continues to pretend that any use of GPL software would require them to release the source code for Windows and Office (which is just silly; it's disingenuous at best for the Microsofties to pretend that they don't grasp the distinction between using open-source software and incorporating its source code in their own products).

And yet...there's a strange Alice in Wonderland corner of Microsoft where this paranoia about open source doesn't seem to apply. Pop in the CD-ROM for Services for Unix (version 3.5 is due to release today), drill down a bit, and you'll eventually find the source code for GCC, the Gnu Compiler Collection. Open the file named copying and you can read:


		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

That's right, Microsoft actually distributes some software under the GPL. Even more amazing is that, starting with a special offer for version 3.0, and now continuing as the regular price, they're giving it away. That's right, Services for Unix is a free product from Microsoft. Or as those naughty open-source zealots say, free as in beer and free as in speech.

What's going on here? Well, to understand that, you need to look at what SFU provides. SFU is a collection of "platform interoperability and application migration components" for Unix developer seeking to integrate Windows into their networks. Various utility and driver chunks offer things like password synchronization and file-sharing between the two worlds, while the Interix subsystem provides a Unix environment that runs atop the Windows NT kernel, complete with the bash shell, a boatload of other command-line utilities, and even the aforementioned gcc compiler. Take your Unix source code, recompile it in this environment and voila, you've migrated to a Windows box without rewriting your software. (The Interix bits, by the way, were developed externally and then purchased by Microsoft a couple of years ago.)

The price for Services for Unix has been steadily dropping over the past few years. Version 3.0 hit $99, and then late last year they started a "temporary" promotion, giving the product away for free. Now Microsoft has confirmed that the new version 3.5 will be free from the get-go. Of course, this isn't just altruism on the part of Microsoft. They're not, after all, selling Unix of any flavor here, but Unix migration -- as in, Migration to Windows. It looks to me like their target market is not the big-name open source applications, but all the thousands of business applications hidden away in the corporate world, running on Unix hardware. Faced with the costs of another HP or Solaris server to roll out one more copy of the Unix-based fleet maintenance program, the thought of using a low-cost Wintel server instead, along with a free copy of Services for Unix, must look pretty attractive. And it serves Microsoft just fine every time the IT guys unplug a bit of Unix iron and roll in a Dell server running Windows instead, even if the application it's intended for is still calling the Unix APIs. After all, that's one less box that's calling out for other Unix applications.

So, there you have it. When it suits their purposes, Microsoft is perfectly capable of distributing open-source software and supporting Unix APIs. Funny thing, this doesn't seem to have infected all of their other source code with that nasty viral license stuff. Now, if only they could give me support for NAnt and NUnit rather than developing their own separate but equal versions...

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.