Re: Linux GPL and binary module exception clause?

Linus Torvalds
2003-12-10T17:10:53Z

On Wed, 10 Dec 2003, Larry McVoy wrote:
>
> Which is? How is it that you can spend a page of text saying a judge doesn't
> care about technicalities and then base the rest of your argument on the
> distinction between a "plugin" and a "kernel module"?

I'll stop arguing, since you obviously do not get it.

I explained the technicalities to _you_, and you are a technical person.

But if you want to explain something to a judge, you get a real lawyer,
and you make sure that the lawyer tries to explain the issue in _non_
technical terms. Because, quite frankly, the judge is not going to buy a
technical discussion he or she doesn't understand.

Just as an example, how do you explain to a judge how much code the Linux
kernel contains? Do you say "it's 6 million lines of C code and header
files and documentation, for a total of about 175MB of data"?

Yeah, maybe you'd _mention_ that, but to actually _illustrate_ the point
you'd say that if you printed it out, it would be a solid stack of papers
100 feet high. And you'd compare it to the height of the court building
you're in, or something. Maybe you'd print out _one_ file, bind it as a
book, and wave it around as one out of 15,000 files.

But when _you_ ask me about how big the kernel is, I'd say "5 million
lines". See the difference? It would be silly for me to tell you how many
feet of paper the kernel would print out to, because we don't have those
kinds of associations.

Similarly, if you want to explain the notion of a kernel module, you'd
compare it to maybe an extra chapter in a book. You'd make an analogy to
something that never _ever_ mentions "linking".

Just imagine: distributing a compiled binary-only kernel module that can
be loaded into the kernel is not like distributing a new book: it's more
like distributing a extra chapter to a book that somebody else wrote, that
uses all the same characters and the plot, but more importantly it
literally can only be read _together_ with the original work. It doesn't
stand alone.

In short, your honour, this extra chapter without any meaning on its own
is a derived work of the book.

In contrast, maybe you can re-write your code and distribute it as a
short-story, which can be run on its own, and maybe the author has been
influenced by another book, but the short-story could be bound AS IS, and
a recipient would find it useful even without that other book. In that
case, the short story is not a derived work - it's only inspired.

Notice? This is actually _exactly_ what I've been arguing all along,
except I've been arguing with a technical audience, so I've been using
technical examples and terminology. But my argument is that just the fact
that somebody compiled the code for Linux into a binary module that is
useless without a particular version of the kernel DOES MAKE IT A DERIVED
WORK.

But also note how it's only the BINARY MODULE that is a derived work. Your
source code is _not_ necessarily a derived work, and if you compile it for
another operating system, I'd clearly not complain.

This is the "stand-alone short story" vs "extra chapter without meaning
outside the book" argument. See? One is a work in its own right, the other
isn't.

Linus