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...
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.