Hacker News new | past | comments | ask | show | jobs | submit login

It's not a restriction on use.

The GPL does not prevent users from running the Linux kernel in any manner they choose.

What it does disallow is for users to write code which is "based on" Linux code, and then distribute that code to other users on terms which are incompatible with the GPL.

You can run whatever mix of GPLd and non-GPLd code you want. You can even edit your Linux sources in a way that removes the GPL license checks for modules and build your own kernel, and run it, and no-one can legally stop you - not even Linus himself.

But you're not allowed to distribute work-based-on-GPLd-code-that-isn't-licensed-under-the-GPL to anyone else. And neither is Nvidia.

Unfortunately, suing Nvidia over this would cost millions, if not tens of millions, if not hundreds of millions, of dollars. So creating a technological barrier to fuck with them and their bullshit business model instead is a much more achievable goal.




Writing a program "based on" an API, i.e. which invokes the provided functions, is not a derivative work.

If this theory would be accepted almost all the existing programs that have been written since the first electronic computers would be derivative works and no software companies would have ever existed, because they could never have claimed copyright protection.

NVIDIA has never distributed any derivative of the Linux kernel in their GPU drivers. They distribute their own kernel modules, which are loaded by the end user and this is perfectly compatible with the GPL.

Some kernel developers try to cripple the NVIDIA modules by preventing them to find the symbol addresses that must be used, but this is a use restriction imposed by these developers on the Linux users and which has nothing to do with what is written in the GPL.


> Writing a program "based on" an API, i.e. which invokes the provided functions, is not a derivative work.

If that were the case, the LGPL would never have been needed.


Indeed, the LGPL should never have been needed, because LGPL is the correct variant of GPL and the standard GPL should have been identical to what LGPL is now.

Even with its illogical theory about the coverage of "combined" works, not even the GPL covers the programs that use an interface provided by a GPL program, but which are distributed only separately from it, like a shared library or a kernel module.

So the NVIDIA kernel modules have never been incompatible with the GPL.

The fight against non-GPL kernel modules has nothing to do with the GPL, but it is strictly the creation of certain kernel developers.


With static linking you take someone elses code and put it into your own artifact and then distribute that to users. This means that you need a license to distribute their code. Not just that, because of the way static linking works, you need a license to distribute modified version of the code.

With dynamic linking you never distribute someone else's code so you don't need a license to distribute it.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: