LWN.net Logo

Support for drivers in user space

Support for drivers in user space

Posted Sep 14, 2006 8:57 UTC (Thu) by lgb (guest, #784)
In reply to: Support for drivers in user space by bboissin
Parent article: Support for drivers in user space

Well yes, I guess, the kernel part of these drivers should be released as GPL code. However, the bulk of the code is in user space ... If you were right, an average user space app is also a derivative work, since it's not only uses system calls, but may also use /dev or /proc or even /sys entries, besides syscalls. This splitted driver model just do this: a to-be-GPL'ed kernel part, and a user space part which needn't released as GPL.


(Log in to post comments)

Support for drivers in user space

Posted Sep 14, 2006 15:05 UTC (Thu) by gwg (guest, #20811) [Link]

Something that seems to be overlooked most of the time in these
discussions, is that the GPL applies to "work based on the Program",
and there are more types of such work that just derived work.

Another sort of work is a collective (or compilation) work.
GPL and non-GPL code doesn't have to be linked in any way to
both be part of a collective work. The point for discussion
in such cases is whether placing the GPL and non-GPL work
together, forms a collective work or not. One criteria for
deciding this might be the same one used to decide whether
a collective work qualifies for copyright protection,
ie. does it have authorship in the selection, co-ordination
or arrangement of its parts.

For a work to be a collective work, I don't think that it
is even necessary for the parts to be on the same media -
it's only necessary that the parts be supplied by the same
party, and be intended to work together, showing that there
is authorship in the selection, co-ordination or arrangement of
the parts (ie. consider the analogy in literature of a book
anthology being delivered in separate volumes).

If a user mode driver is arranged to work with the kernel
(and there would need to be authorship in the arrangement,
selection and co-ordination of the user and/or kernel parts
to achieve that), then surely if it is supplied with the
intention of running with GPL code supplied by the same
party, it forms a collective work, and the whole must be
licensed under the GPL.

Support for drivers in user space

Posted Sep 14, 2006 21:54 UTC (Thu) by zlynx (subscriber, #2285) [Link]

That may possibly be a valid legal argument, but its irrelevant to Linux, since it has always exempted user-space programs from any Linux-related license requirement.

Support for drivers in user space

Posted Sep 15, 2006 4:37 UTC (Fri) by gwg (guest, #20811) [Link]

Linus's explanation in the Linux "COPYING" file is unclear. In the relevant
sentence he states that "this copyright does *not* cover user programs that
use kernel services by normal system calls", which might be construed as
meaning that the Kernel copyright does not regard user programs as ever
being part of a "work based on the Program", or it could mean that no
copyright is claimed over user programs just because they make system
calls, or both, (these being two different things, one being the scope of
a collective work, the other being the copyright on the user program).

But then he goes on to say " - this is merely considered normal use of the
kernel, and does *not* fall under the heading of "derived work".", thereby
suggesting that the disclaimer is intended to have the narrower second meaning,
not the first. If this is the case, then my argument would apply to Kernel
code and user code, if they are presented as a collective work, supplied by
a single party.

Support for drivers in user space

Posted Sep 15, 2006 16:42 UTC (Fri) by zlynx (subscriber, #2285) [Link]

One more point. Your argument is clearly not the intent of Linus' exception.

For example, if you are correct, a Linux LiveCD with Unreal Tournament included is violating the GPL.

Unreal Tournament communicates with the GPU directly (well, through OpenGL direct rendering libraries), just as a user-space driver would.

So if one is violating the GPL by your argument, so is the other, and that is clearly ridiculous.

Support for drivers in user space

Posted Sep 16, 2006 2:32 UTC (Sat) by gwg (guest, #20811) [Link]

It's hard to say from Linus's statement in the COPYING file alone, what his intention was.
From common usage, you may regard such an interpretation as ridiculous, but that doesn't
somehow invalidate the interpretation of the licence. If a different contributor to the
Linux kernel wanted to make the interpretation I've made, then they could well take someone
distributing something like Unreal Tournament on a LiveCD to court, and see if the court
agrees that it's a collective work, and falls under the requirements of the GPL, as being a
"work based on the Program", and that Linus's disclaimer only applies to derived works.
I certainly regard anyone making use of my GPL licences code as being in violation of the
licence, if they release a collective work that does not itself comply with the GPL licence
(but then I don't have a Linus like disclaimer in my copy of the GPL).

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds