Despite Microsoft Corp.'s aggressive criticism of the open source movement -- most notably one of its flagship software licences, the GNU General Public License -- the company has quietly been publishing source code under that license for one of its own products for the past two years.
Microsoft distributes a product called Interix, which is used by customers to port Unix applications to its Windows operating systems. Interix includes a software compiler called the GCC (GNU Compiler Collection), a product first developed by Free Software Foundation founder Richard Stallman that is covered by the General Public License (GPL).
Microsoft's use of the GPL contradicts the increasing criticism it has leveled against the license, which senior company officials have called an intellectually property killer. While Microsoft's proprietary code remains under the tight watch of the Redmond, Washington, software maker, the company has made use of the popular open source compiler -- and adhered to its software license.
The GPL mandates that any software that incorporates source code already licensed under the GPL will itself become subject to the same terms of the license. In the case of Microsoft's use of the GCC in the Interix software, the company is only obliged to make available the source code for the compiler -- a program that turns written code into the ones and zeros that run on a computer -- not the entire software product that the compiler ships with.
"It's hypocritical for them to benefit from GPL software and criticize it at the same time," said Bradley Kuhn, a spokesman for the Free Software Foundation, which oversees the GCC and other open source projects.
Responding to the criticism of its use of the GPL, Microsoft Senior Vice President Craig Mundie argued it does not change the company's opinion on the dangers of open source software licenses. "In many cases there is a technical need to have these tools in order to successfully migrate the applications," he said in a statement. "The open source tools were part of the acquisition of the Interix product and are strictly maintained to meet the functionality requirements of our customers.
"While we occasionally run into these issues because of acquisitions, Microsoft develops and releases all new products under the commercial software model," he added.
How the GCC ended up in Microsoft's product portfolio is a somewhat complicated story. Microsoft acquired the Interix software -- and its incorporated open source technologies -- in 1999 when it purchased a small vendor called Softway Systems Inc. Softway had developed the suite of tools to help customers who were running Unix keep those legacy applications when migrating to Windows NT. Originally called OpenNT, Interix was the first product to allow customers to complete a Unix-Windows migration.
Interix was developed in the late 1990s in response to a similar version of the migration tools that Microsoft had created months earlier on its own, according to Mumit Khan, a former contracted engineer for Softway, who helped develop the compiler that ran on Interix.
"(Microsoft) had a baseline implementation (of migration tools) that basically didn't do anything," Khan said. So through a joint development and licensing agreement with Microsoft, Softway went to work on the Interix tools.
"Softway had a very interesting license agreement with Microsoft," said Jeremy Allison, co-creator of the open-source program Samba -- which allows users to access printers and files on a variety of operating systems -- who has followed Microsoft's acquisition of Softway and its ongoing criticism of open source. "They had access to Microsoft's source code with the idea that they would make a small operating system" within Windows that would run Unix programs.
Using parts of the Windows source code that were provided under a special agreement with Microsoft, Softway built a set of products that incorporated a number of open-source technologies, including the GPL-protected compiler and other technologies that were developed by the open-source community and made available under the BSD (Berkeley software distribution) open-source license.
Within a





