Use of patented code in the kernel
[Posted December 23, 2003 by corbet]
A kernel developer recently
asked: should
code implementing an algorithm known to be patented be submitted for
incorporation into the Linux kernel? Given that Linus has
promoted an approach to software patents in the
past that some see as being a bit cavalier, one might be forgiven for not
knowing the answer in advance. But
Linus's
answer was clear: "
Don't submit, and find an unencumbered
algorithm."
The two points of view expressed by Linus are entirely compatible. Code
which is known to have patent encumbrances cannot go into the kernel,
because such inclusion is (or could lead to) a knowing act of
infringement. On the other hand, kernel developers should not go out of
their way looking for potential patent problems with their code. That way
lies madness -- there's no end of bogus software patents out there. Known
problems should be kept out of the kernel; the rest should not be worried
about until something comes up.
That said, a couple of interesting points were raised in the discussion.
One is that the exclusion of patented code hurts all users of the kernel,
even though many of them (a majority, even) are, for now at least, in
jurisdictions which do not recognize the patents in question. Rather than
exclude code with patent encumbrances, why not create a configuration option making the code
available to those who can legally use it? The burden would then be on the
end users to think about what they can do before explicitly turning on an
option which would enable patented code.
Various objections can be raised to this scheme, of course. It would turn
our free kernel into a partially proprietary system, at least in some
countries. Patents are public knowledge, so publishing an implementation
should not be a problem as long as the patented code is not used in places
where the patent is recognized. But somebody might still try to file a
suit complaining that the kernel (and its developers) are contributing to
an infringement. The community also does not need another reason for
certain critics to proclaim that Linux is putting its end users into legal
danger. For all these reasons, the inclusion of patented code with a
configuration option seems unlikely.
There is one other potential issue, however; as Jamie Lokier pointed out, there is already some code in the
kernel with patent issues. There is a
documentation file in the kernel source which discusses the SB-Live
mixer code - and patents which may cover it. If there is a license which
allows those patents to be used in the kernel, the file fails to mention
it. The kernel also contains a "flash translation layer" memory card
driver; the FTL format it implements is subject to a patent owned by M-Systems. The
license that goes with that code allows the use of the patented technology
- but only with PCMCIA cards. The covered code is, thus, not entirely
free.
Given the nature of the software patent regime (especially in the U.S.), it
seems certain that more patent-encumbered code will be found in the
future. It would not be surprising if, one day, we were faced with a
patent covering an important piece of code in a heavily-used kernel
subsystem. At that point, some difficult choices will need to be made.
Until then, however, there is little to be done.
(
Log in to post comments)