On Sun, May 25, 2008 at 03:36:02PM -0600, Vadim Klishko wrote: > > > You are right, of course: it is a kernel module. However, I want to > split it in two parts. One part would be open source and would > interface with the kernel. The other part would be a library that > would only be used by the other part of the module and would not call > any kernel API. The library would only contain self-sufficient math > code. Think of it this way: my module has a function: > > int square( int x ) { return( x * x ) } > > Can I put it in a separate library to call from my module? Sure, that's fine. > Will it be illegal? It depends on how you license this module. If it is not under the GPL, yes, that is not allowed. You are explicitly not allowed to add hooks to GPL kernel code to call non-GPL kernel code. That has been explicitly stated for many, many, many years now by all of the kernel developers, Linus included. Please see a lawyer for details if you need them. Actually, please see a lawyer if you are considering not releasing all of your kernel code under the GPL, as you will need it. If you can not afford a lawyer, then just release the code, it must not be worth that much to you then :) Again, this is way off-topic for this list, which is about the linuxdriverproject.org group. If you wish our help in creating a driver for you, it must all be under the GPLv2. Otherwise, you are on your own, sorry. good luck and I hope you have some good lawyers :) greg k-h