RE: Linux GPL and binary module exception clause?
From: Kendall Bennett
Date: Fri Dec 05 2003 - 13:49:38 EST
Linus Torvalds <torvalds@xxxxxxxx> wrote:
> So you can run the kernel and create non-GPL'd programs while running it
> to your hearts content. You can use it to control a nuclear submarine, and
> that's totally outside the scope of the license (but if you do, please
> note that the license does not imply any kind of warranty or similar).
> BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES.
Right, and by extension of the same argument you cannot use kernel
headers to create non-GPL'ed binaries that run IN USER SPACE! Just
because a program runs in user space does not mean that it is not a
dervived work. There is nothing special about a user mode program
compared to a module just because it uses Linux system calls. The same
principles you apply to determine whether a module is a derived work also
apply to user space programs, *ESPECIALLY* if you consider that the GPL
kernel header files contains code (inline C or assembler) that probably
gets linked either directly or indirectly (through the C runtime library)
into *EVERY* Linux user mode program.
This exact reasoning is what RedHat (aka Cygnus) has been using for years
with the Cygwin toolkit for Windows. Although 99% of the code built with
the GNU compilers and Cygwin includes the glibc runtime library that is
LGPL, every program *must* include the C runtime library startup code or
it cannot function. *That* code is pure GPL, and by extension any program
using the Cygwin libraries is a derived work and must be GPL. If you
don't like that, by a commercially licensed version of Cygwin from
This is also IMHO why so few people outside of Red Hat contribute to
Cygwin, but that is a different issue ;-)
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
~ SciTech SNAP - The future of device driver technology! ~
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/