RE: GPL vs non-GPL device drivers

From: Neil Brown
Date: Sat Feb 17 2007 - 03:30:49 EST

On Friday February 16, davids@xxxxxxxxxxxxx wrote:
> I cite the case only because it does a good job of explaining the principle.
> Copyright cannot allow you to own every practical way of accomplishing
> something. It can only allow you to own the one particular way you chose to
> do something out of a universe of other possible equally good ways. Only
> patent allows you to protect the "best way" or "every way" to perform a
> function.

I think you have over-simplified this principle.

Suppose someone created a work of fiction titled - for example -
"Picnic at Hanging Rock". And suppose further that this someone left
some issues unresolved at the end of the story, leaving many readers
feeling that they wanted one more chapter to complete the story and
give them a sense of closure.

Suppose that a number of independent individuals wrote such a chapter
that in very different ways completed the story.

You seem the be claiming that because copyright "Cannot allow you to
own every practical way of accomplishing something" that the original
author has no rights over any of these "final chapters" as they are
all ways to accomplish "complete the story of A Picnic at Hanging

But I'm fairly sure you would find that isn't true. All of those
final chapters would be derived works of the original work of fiction
so that the original author would have some rights over how they were

They are derived works because they borrow the characters, the setting,
the theme, etc of the original work, and build on it.

In a similar way, people claim that any driver written for Linux will
inevitably borrow some creative content that is in Linux, via the
various interfaces that are used (and it is the nature of kernel
modules that the interface between the module and the kernel is quite
intimate). And so, they claim that any driver written for Linux will
ipso-facto be a derived work. The interface that ties the kernel and
the module together is certainly more intimate than the interface
between the Printer and the Toner in the Lexmark case.

Also, the "every practical way" point doesn't entirely apply. In a
growing number of cases, it is possible to write a driver in
user-space. This is apparently true for USB and is becoming true for
PCI. And writing drivers as user-space programs is explicitly not a
derived work for the purposes of the Linux kernel license.

So while that case sets an interesting precedent, I don't think it can
apply to the general issue of Linux kernel modules.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at