[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: making a non-GPLed module




> Gilad Ben-Yossef <gilad@benyossef.com> writes:
> 
> > Again, I am no lawyer, but the "official" GNU/FSF standpoint as I
> > understand is that the fact that module links against a GPLed work
> > (the Linux kernel) means in is considered a "derived work" of the
> > Linux kernel and therefor can only be published under the GPL.
> 
> Let me get the technical terminology correct.  Are the modules
> considered "linked" against the kernel? Or are they "loaded" at
> runtime and constitute - as Linus put it - "normal usage of the
> kernel"? I must admit never delved into the details of this (though

The GPL itself does not raise the question of "normal usage" or otherwise. it simply states that is your code "links" with the GPLed code, your code is considered "derived work" or the purpose of the GPL.

> I did build kernels numerous times). Is "linkage" defined as "running
> ld(1) or equivalent (e.g. via a compiler front-end) on the module
> and the kernel"? Then I's say they are not linked... However the
> insmod(8) man page does say "link". I suppose this means that modules
> are linked, indeed.

Even according to your own definition of link (e.g. running ld(1) or equivalent)  the kernel and modules are indeed linked because the piece of kernel code that loads a module is ld(1) equivalent - it does what ld(1) does: fill in  a table with pointers to structures and functions (that exact details are not important). 

The "loading" here is irrelevant, it's just a form of dynamic linking, much like a DLL. The only "strange" thing here is that usually when a proccess loads a library dynamicly the dynamic loader will "patch" in the process table of functions and structures addresses with the addresses gotten from the lib, whereas with a kernel module, the table belongs to the module, so you can say a kernel module is really a proccess that uses the kernel as a library would. But these are just details, of course...

Personally, I agree that the test should be more in the lines of Linus observation that when a module use of the kernel is not really different from a program use of the kernel it is ok to be closed and otherwise not (the "use" test) but this may be very difficult to prove in a crourt where the test the GPL requires is a simple technical question.

Gilad.


-- 
Gilad Ben-Yossef <gby@kagoor.com>
Tel: +972(9)9717330 | Fax: +972(9)9717334   | Cel: +972(54)756701
Kagoor Networks ltd | http://www.kagoor.com | 


To unsubscribe, send mail to linux-il-request@linux.org.il with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request@linux.org.il