Microsoft's CIFS licence is the company's latest effort 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 "Pac-man like" -- 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 clone 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. HP has also translated Samba and supports the software as a way to update its decades-old HP 3000 server line. SGI offers and supports Samba for its Origin line of Unix servers. And Quantum, which employs Samba founder Andrew Tridgell, uses Samba for its storage devices, including the new higher-end Guardian line. 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 standardisation 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 licence agreement that raises the spectre of patent infringement. Specifically, the agreement grants a company a royalty-free licence 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 licences," including the GPL. Microsoft, though, isn't opposed to some open-source licences that allow shared software to be made secret, including so-called BSD-style licences that cover FreeBSD and related versions of Unix. Alternative plans
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 server software 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 licence 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.





