The Microsoft Antitrust Trial and Free Software
With the Microsoft antitrust trial moving toward a conclusion, the question of what to demand of Microsoft if it loses is coming to the fore. Ralph Nader is even [when this was written, in March 1999] organizing a conference about the question (see appraising-microsoft.org).
The obvious answers—to restrict contracts between Microsoft and computer manufacturers, or to break up the company—will not make a crucial difference. The former might encourage the availability of computers with the GNU/Linux system preinstalled, but that is happening anyway. The latter would mainly help other proprietary application developers compete, which would only offer users alternative ways to let go of their freedom.
So I propose three remedies that would help enable free software operating systems such as GNU/Linux compete technically while respecting users' freedom. These three remedies directly address the three biggest obstacles to development of free operating systems, and to giving them the capability of running programs written for Windows. They also directly address the methods Microsoft has said (in the “Halloween documents”) it will use to obstruct free software. It would be most effective to use all three of these remedies together.
- Require Microsoft to publish complete documentation of all
interfaces between software components, all communications
protocols, and all file formats. This would block one of
Microsoft's favorite tactics: secret and incompatible interfaces.
To make this requirement really stick, Microsoft should not be allowed to use a nondisclosure agreement with some other organization to excuse implementing a secret interface. The rule must be: if they cannot publish the interface, they cannot release an implementation of it.
It would, however, be acceptable to permit Microsoft to begin implementation of an interface before the publication of the interface specifications, provided that they release the specifications simultaneously with the implementation.
Enforcement of this requirement would not be difficult. If other software developers complain that the published documentation fails to describe some aspect of the interface, or how to do a certain job, the court would direct Microsoft to answer questions about it. Any questions about interfaces (as distinguished from implementation techniques) would have to be answered.
Similar terms were included in an agreement between IBM and the European Community in 1984, settling another antitrust dispute. See www.cptech.org.
- Require Microsoft to use its patents for defense only, in the field
of software. (If they happen to own patents that apply to other
fields, those other fields could be included in this requirement,
or they could be exempt.) This would block the other tactic
Microsoft mentioned in the Halloween documents: using patents to
block development of free software.
We should give Microsoft the option of using either self-defense or mutual defense. Self defense means offering to cross-license all patents at no charge with anyone who wishes to do so. Mutual defense means licensing all patents to a pool which anyone can join—even people who have no patents of their own. The pool would license all members' patents to all members.
It is crucial to address the issue of patents, because it does no good to have Microsoft publish an interface, if they have managed to work some patented wrinkle into it (or into the functionality it gives access to), such that the rest of us are not allowed to implement it.
- Require Microsoft not to certify any hardware as working with
Microsoft software, unless the hardware's complete specifications
have been published, so that any programmer can implement software
to support the same hardware.
Secret hardware specifications are not in general Microsoft's doing, but they are a significant obstacle for the development of the free operating systems that can provide competition for Windows. To remove this obstacle would be a great help. If a settlement is negotiated with Microsoft, including this sort of provision in it is not impossible—it would be a matter of negotiation.
This April, Microsoft's Ballmer announced a possible plan to release source code for some part of Windows. It is not clear whether that would imply making it free software, or which part of Windows it might be. But if Microsoft does make some important part of Windows free software, it could solve these problems as regards that part. (It could also be a contribution to the free software community, if the software in question could be useful for purposes other than running other proprietary Microsoft software.)
However, having the use as free software of a part of Windows is less crucial than being permitted to implement all parts. The remedies proposed above are what we really need. They will clear the way for us to develop a truly superior alternative to Microsoft Windows, in whatever area Microsoft does not make Windows free software.