关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
6年前关闭。
Improve this question
由于 Linux 内核是 GPL 而不是 LGPL,我认为将专有代码链接到它是非法的。业界如何规避这种情况?我希望 GPL 许可证将迫使任何开发人员在 GPL 驱动程序和/或内核模块下发布。
也许我很困惑,实现一个新模块并没有真正链接到内核代码???企业如何应对这种情况?也许以相反的方式链接(从内核到他们的二进制文件)?
另一方面是BSD内核。您可以自由链接 protected IP。您能否在 BSD 内核中获得更好的设计来实现您的驱动程序?为 GPL 内核实现驱动程序时是否有任何设计限制?
最佳答案
正如您所说,BSD 内核使用的 BSD 许可证更加自由,因此链接那里的任何许可模块都没有问题。
对于 linux 案例,GPL 本身禁止链接非 GPL 兼容代码是正确的,这些代码不允许链接专有模块,甚至是 LGPL 模块。
但是,Linux 版权持有者允许您将“LGPL”模块与任何专有代码链接。一个例子是 nvidia 驱动程序:
/------------.-\
| Kernel |
| |
| /--------\ |
| | Module | | /-------------------\
| | (LGPL) <========> proprietary code |
| \--------/ | \-------------------/
\--------------/
根据 GPL,这仍然是非法的,但是 Linux 内核明确允许。 作为引用,请参阅 Linus Torvalds 对此问题的看法:
http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html
附言链接是 GPL 术语中的对称操作。
关于licensing - GPL 和 BSD 内核中的专有模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721290/