[LWN Logo]

Date:	Sun, 4 Oct 1998 15:23:57 -0600
From:	Richard Stallman <rms@santafe.edu>
To:	linux-kernel@vger.rutgers.edu
Subject: UDI and Free Software

		       UDI and Free Software

Intel has a project called UDI: Uniform Driver Interface.  The idea is
to define a single interface between operating system kernels and
device drivers.  What should the free software movement make of this

If we imagine a number of operating systems and hardware developers,
all cooperating on an equal footing, UDI (if technically feasible)
would be a very good idea.  It would permit us to develop just one
driver for any given hardware device, and then all share it.  It would
enable a higher level of cooperation.

When we apply the idea to the actual world, which contains both free
software developers seeking cooperation, and proprietary software
developers seeking domination, the consequences are very different.
No way of using UDI can benefit the free software movement.  If it
does anything, it will divide and weaken us.

If Linux supported UDI, and if we started designing new drivers to
communicate with Linux through UDI, what would the consequences be?

* People could run free GPL-covered Linux drivers with Windows systems.

This would help only Windows users; it would do nothing for us users
of free operating systems.  It would not directly hurt us, either; but
the developers of GPL-covered free drivers could be discouraged to see
them used in this way, and that would be very bad.  It can also be a
violation of the GNU GPL to link the drivers into a proprietary
kernel.  To increase the temptation to do so is asking for trouble.

* People could run non-free Windows drivers on GNU/Linux systems.

This would not directly affect the range of hardware supported by free
software.  But indirectly it would tend to decrease the range, by
offering a temptation to the millions of GNU/Linux users who have not
learned to insist on freedom for its own sake.  To the extent that the
community began to accept the temptation, we would move to using
non-free drivers instead of writing free ones.

UDI would not in itself obstruct development of free drivers.  So if
enough of us rejected the temptation, we could still develop free
drivers despite UDI, just as we do without UDI.

But why encourage the community to be weaker than it needs to be?  Why
make unnecessary difficulties for the future of free software?  Since
UDI does no good for us, it is better to reject UDI.

Given these consequences, it is no surprise that Intel has started to
"look to the Linux community for help with UDI."  How does a rich and
self-seeking company approach a cooperating community?  By asking for
a handout, of course.  They have nothing to lose by asking, and we
might be caught off guard and say yes.

Cooperation with Intel is not out of the question.  We should not
label Intel, or anyone, as a Great Satan.  But before we participate
in any proposed deal, we must judge it carefully, to make sure it is
advantageous for the free software community, not just for proprietary
system developers.  On this particular issue, that means requiring
that cooperation take us a step further along a path that leads to the
ultimate goal for free kernels and drivers: supporting *all* important
hardware with free drivers.

One way to make a deal a good one could be by modifying the UDI
project itself.  Eric Raymond has proposed that UDI compliance could
require that the driver be free software.  That would be ideal, but
other alternatives could also work.  Just requiring source for the
driver to be published, and not a trade secret, could do the
job--because if that driver is not free, it would at least tell us
what we need to know to write a free driver.

Intel could also do something else, outside of UDI, to help the free
software community solve this problem.  For example, there may be some
sort of certification that hardware developers seek, that Intel plays
a role in granting.  If so, Intel could agree to make certification
more difficult if the hardware specs are secret.  That might not be a
complete solution to the problem, but it could help quite a bit.

One difficulty with any deal involving UDI is that we would do our
part for Intel at the beginning, but Intel's payback would extend over
a long time.  In effect, we would be extending credit to Intel.  But
would Intel continue to repay its loan?  Probably yes, if we get it in
writing and there are no loopholes; otherwise, we can't count on it.
Corporations are notoriously untrustworthy; the people we are dealing
with may have integrity, but they could be overruled from above, or
even replaced at any time with different people.  When making a deal
with a corporation, always get a binding commitment in writing.

Given Intel's involvement in I2O, a broad plan to keep hardware
specifications secret, it is not likely that they will accept a deal
that gives us what we need.  In fact, UDI seems like a plan to make it
easier to keep specifications secret.

Still, there is no harm in keeping the door unlocked, as long as we
are careful whether we let Intel in.

Copyright 1998 Richard Stallman
Verbatim copying and distribution is permitted in any medium
provided this notice is preserved.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/