User: Password:
|
|
Subscribe / Log in / New account

Support for drivers in user space

Support for drivers in user space

Posted Sep 7, 2006 6:49 UTC (Thu) by bboissin (subscriber, #29506)
Parent article: Support for drivers in user space

Although there seems to be a consensus among kernel devs that if it is in userspace then the GPL is not applicable.
Doesn't a driver in userspace constitute a derivative work from the kernel (especially since the API is specific to Linux) ?

The note from Linus in the COPYING file only says:
" This copyright does *not* cover user programs that use kernel
services by normal system calls"

Maybe someone can enlighten me (please no flames).


(Log in to post comments)

Support for drivers in user space

Posted Sep 7, 2006 9:33 UTC (Thu) by pphaneuf (subscriber, #23480) [Link]

I'd say this is correct. But this device driver is incomplete, you still need to create a kernel module that adds the missing interrupt handler. That part will still need to comply with whatever the licensing rules for kernel modules are.

This is not a flame...

Posted Sep 7, 2006 13:19 UTC (Thu) by hummassa (subscriber, #307) [Link]

Google for abstraction, filtration and comparison.
After doing so, my opinion: no, a device driver is not necessarily a
derivative work of the kernel. But, as the sibling post states, the kernel
module that handles the interrupts (and possibly suspending/resuming)
probably _is_ a derivative work of the kernel.

Support for drivers in user space

Posted Sep 14, 2006 8:57 UTC (Thu) by lgb (guest, #784) [Link]

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.

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).

Support for drivers in user space

Posted Sep 15, 2006 18:14 UTC (Fri) by efexis (guest, #26355) [Link]

I don't think so; you can communicate with something without being a derivative work of it. Maybe you could write a portable driver, where the majority of the code can run under different OS's, that just uses a small glue to connect to the actual kernel. The driver itself could maybe run under Linux, Solaris, and Windows... but does that make it a derivate of all three?


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