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
http://www.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.

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.