In late March, Microsoft published a document that outlines how third-party developers can use Common Internet File Sharing (CIFS), a protocol developed by Microsoft that specifies how Windows PCs share files with servers.
Though publishing the document should make it easier to write software that incorporates CIFS, it contains a crucial restriction that has instead handcuffed some developers.
Specifically, Microsoft requires programmers to sign an agreement that prohibits using information in the document when building software governed by the General Public License (GPL). Among the products affected by the restriction is Samba, widely used software that competes with file sharing technology in Microsoft's Windows operating system. Samba uses CIFS to communicate with client systems.
"In brief, it sucks," said Jeremy Allison, a leader of the Samba project. He called Microsoft's agreement "a direct attack" on Samba and the GPL.
It is unclear whether Microsoft would take legal action against programmers who reviewed the document and used the information in GPL-governed code, though the implied threat is enough to cause concern.
The dispute's ramifications also extend well beyond the group of self-appointed programming hobbyists who launched the open-source movement. Microsoft business partners IBM, Hewlett-Packard and others have embraced Samba and other open-source packages; Sun Microsystems is adding open-source efforts to its increasingly bitter struggle against Microsoft; and even Intel, a stalwart Microsoft ally, has invested in open-source Linux companies.
The issue also plays a role in the Microsoft antitrust trial. Nine states and the District of Columbia are seeking stiffer sanctions against the software giant than those found in a November settlement by the U.S. Justice Department and nine other states. In pursuing those harsher sanctions, lawyers for the non-settling states have raised the issue of CIFS and Samba.
Microsoft notes that releasing CIFS documentation was required under the proposed settlement with the Justice Department and nine settling states.
But critics counter that Microsoft's use of the licensing agreement could stifle one of Microsoft's "most effective competitors."
The Free Software Foundation (FSF), creator and advocate of the GPL, said Microsoft transformed the antitrust settlement into an "attack" against GPL programmers. The FSF singled out two Microsoft patents to which the license agreement grants programmers royalty-free access.
"They've turned to their patent pool as their last resort to assail us," FSF Executive Director Bradley M. Kuhn said in a statement after Microsoft posted the technical reference.
Samba software lets Linux and Unix-based servers look like Windows servers, allowing them to communicate effortlessly with Windows PCs. Because a federal judge has already determined that Microsoft has a monopoly on the desktop-computer operating system, the ability of competitors' server computers to work with Windows PCs is a central issue in whether the company is behaving anti-competitively to extend its monopoly into the server market and other areas. The desktop-server connection is also part of Sun Microsystems'suit against Microsoft.
Though the document published in March deals with older Microsoft software, the company is expected to publish additional information this summer that could further frustrate many developers.
The March document describes CIFS in Windows NT 4.0--introduced in 1996. Microsoft plans to release details in August on CIFS in the more current Windows 2000 and. Including the current CIFS restriction in the new document could prevent Samba developers and others from using the information in software that works with these newer products.
My license or yours?
Microsoft's CIFS license is the company's latest to raise legal concerns about the GPL, which underlies Linux and many other open-source projects and has been a flashpoint in the open-source debate.
Microsoft has raised the hackles of open-source advocates by calling the GPL "viral" and " "--arguing that using GPL-covered code in a program means the entire program must then be governed by the GPL.
"This licensing model has the effect of foreclosing a business's choice of what intellectual property to share with the community and on what terms," Microsoft has argued.
Open-source fans don't always get along well with Microsoft, but they hold no delusions that they can ignore prevailing Microsoft technologies. Samba is just one of many pieces of open-source software that enable non-Microsoft products to exist in a Microsoft-dominated world.
OpenOffice, for example, a Sun-backed effort to create an open-source competitor to Microsoft Office, boasts as a key feature the ability to read and write Microsoft Office files. And Ximian programmers are working with the assistance of HP and Intel to the underpinnings of Microsoft's .Net Internet software.
Samba also enjoys the support of several large Microsoft competitors.
IBM includes Samba in its marketing pitch that tries to persuade customers to consolidate multiple lower-end servers onto a single mainframe simultaneously running several instances of Linux.
And Quantum, which employs Samba founder Andrew Tridgell, uses Samba for its storage devices, including the new higher-endline.
Samba is also key to one of the popular uses of Linux: powering inexpensive servers that store shared files, a task Microsoft would rather see Windows handling.
Early history of CIFS
The relationship between Samba and Microsoft wasn't always so contentious. In 1996, when Microsoft was just introducing CIFS, it had to contend with competition such as the Sun-Novell alliance behind Sun's WebNFS software. Microsoft at that time pledged that it was "making sure that CIFS technology is open, published and widely available for all computer users," and it noted that Samba used CIFS.
Microsoft submitted the first version of CIFS to the Internet Engineering Task Force at the time, a first step in the standardization process. That process went nowhere, but a 1997 version of that submission is still available on the Internet. The submission made no mention of two related patents, which Microsoft received in 1993 and 1995. In addition, Microsoft shared information in a series of CIFS conferences that began in 1996.
The patents, however, rose to prominence this year.
In the technical document describing CIFS in Windows NT 4.0, Microsoft prohibits companies from using the information in software covered by the GPL, which includes Samba. Microsoft requires readers of the document who plan to implement its description to sign a license agreement that raises the specter of patent infringement.
Specifically, the agreement grants a company a royalty-free license to two Microsoft patents but prohibits the developer from using the CIFS information in software that would subject that company to "intellectual property rights-impairing licenses," including the GPL.
Microsoft, though, isn't opposed to some open-source licenses that allow shared software to be made secret, including so-called BSD-style licenses that cover FreeBSD and related versions of Unix.
Despite the legal threat, Samba has told developers not to panic and argues that the patents don't apply. Microsoft itself stopped using the techniques described in the patents, and CIFS information is available elsewhere.
"Some people have incorrectly assumed that Samba must implement the methods described in these patents. In fact, the methods described in these patents are quite inappropriate for a Unix...CIFS implementation such as Samba," Samba said on its Web site last week, in conjunction with information about the first-ever SambaXP developers conference.
The two Microsoft patents involve reading or writing files over a network using the "raw" method, which speeds data transfer by stripping out some information. The patents aren't relevant to Unix and Linux, Samba's Allison said, because the operating systems don't use the same networking methods.
Samba suggests that developers avoid using the Microsoft document and instead rely on a document newly released by the Storage Networking Industry Association (SNIA). This document was produced with the assistance of Microsoft, among others.
But patents aren't the only obstacle, and the SNIA document is only a partial solution. Allison said the specification in the SNIA document isn't sufficient for servers that must communicate with Windows "client" PCs.
"The SNIA CIFS spec is an ideal description of how the clients should operate and isn't too bad as an initial guide," he said. "The problem comes when you have to talk to real Microsoft clients, (which) don't actually follow this spec--whether by design or accidental bugs is not clear."
Documents or not, Samba will continue to rely on programmers to use nothing more than careful observation to figure out how Windows servers and clients work, a process similar to reverse engineering, Allison said.
The antitrust connection
Meanwhile, CIFS and Samba have emerged as an issue in Microsoft's antitrust trial. A part of the settlement requires Microsoft to disclose server-communication protocols to ensure that the company cannot make Windows desktop software work better with its own than with that of competitors.
In the remedy hearings with Microsoft and the non-settling states last week, Microsoft's opponents raised CIFS questions with Rob Short, corporate vice president in charge of the innards of Windows, who said the technology is governed by the settlement.
"Some of our competitors have been complaining that they are not able to fully interoperate with some of these protocols, and we've agreed to make the protocols completely available. So I thought that would solve the complaints," Short testified.
But that's the rub: The protocols are available to those willing to sign Microsoft's license agreement prohibiting their use in GPL projects.
In a statement posted in March, Microsoft said it would license CIFS technology used in the older Windows NT 4.0. In August, the company will make a similar move with "proprietary enhancements" to Server Message Block (SMB)--the foundation on which CIFS is built. Those enhancements are already used in the more modern Windows 2000 and Windows XP.
Additionally, Microsoft disagrees that its patents are irrelevant and says they apply to more than just Windows.
"Microsoft reviewed the two identified patents and believes that they are necessary for the implementation of the CIFS communication protocol as set forth in the technical reference," Michele Herman, director of intellectual property strategy at Microsoft, said in a statement.
The company said a CIFS implementation based on different documentation wouldn't necessarily require the patents to be licensed, however.
Microsoft's patent stance is complicated by its earlier submission of CIFS to the Internet Engineering Task Force, said Claude Stern, an intellectual property lawyer with Palo Alto, Calif., law firm Fenwick & West. "You shouldn't be able to sue somebody for patent infringement when you were trying to make what is the subject of the patent a standard," he said.
Samba programmers are further protected if they ensure their implementation of CIFS isn't based on the Microsoft technical reference, Stern said.
Indeed, that's a precaution Allison said he is taking.