How clean must the room be?
[Posted June 7, 2006 by corbet]
The discussion on what features should be merged into the 2.6.18 kernel has
begun (see
this week's Kernel
Page for the details). One item which was mentioned is the
acx100 driver, which
has been sitting in the -mm tree for some time. This driver works, is
useful to a broad community of users, and appears to be entirely acceptable
to the kernel developers who have reviewed it - except for one little
problem.
This driver, it seems, was developed by reverse engineering a binary-only
driver released by TI for the 2.4 kernels. Reverse engineering is not a
problem in itself, as long as due care is taken to avoid copying any code
from the non-free driver. The normal way of taking due care is to employ a
"clean room" technique: the person who does the reverse engineering work
writes a document describing how the hardware functions, but does not write
any code. Instead, another developer, who has never looked at the original
driver in any way, writes the new driver based on the information in the
document. This approach shields the developers from any charges of copying
code, since they have never seen the code in question.
The acx100 driver was not developed in this way; instead, the people who
did the reverse engineering went on to implement the new driver directly.
Nobody has alleged that these developers copied any code in this process.
But the process they used opens the door to such charges in the future. So
the code is seen as being tainted, even though it is probably entirely
legitimate. This taint has been enough to keep the driver out of the
kernel.
One kernel developer objects to this course
of events, calling it excessive:
I disagree there (not speaking for any company just for myself
here): the "clean room" thing is ONLY a USA thing, and is not even
required in the USA. It is a "we want to be extra safe in the USA"
thing only.
He goes on to say that, if the developers can certify that they copied no
code, and especially if the work was done outside of the USA, the driver
should be able to go into the mainline kernel.
Others disagree, however, noting that "being extra safe" is no bad thing.
The SCO case has shown how disruptive a copyright-based challenge to the
Linux code base can be. Linux has, by all appearances, come through that
challenge looking even better than it did before; the kernel code truly
is clean. What a shame it would be to merge code which ends up
bringing on another lawyer storm and ruining the kernel's hard-won clean
bill of health. Sad though it may be, leaving out the driver might be the
better choice.
Still, there is a lingering issue here: which laws should be allowed to
control which code is accepted into the kernel? By many accounts, the
acx100 driver would pass muster in Europe; it is U.S. laws that are of
concern. But the laws of, for example, Haiti, Egypt, and Georgia have not
been consulted. Complying with laws across the entire planet would be a
tall order. Conflicts with laws on, say, spectrum use, surveillance
capabilities, or "piracy prevention" in various parts of the world seem
increasingly likely. Steering a global operating system through this maze
will be an interesting challenge.
(
Log in to post comments)