licensing - GPL 和 BSD 内核中的专有模块

标签 licensing kernel driver gpl bsd

关闭。这个问题不符合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/

相关文章:

licensing - 将软件许可证绑定(bind)到机器/环境的最佳方法?

sql-server - 无法在 ap-southeast-2 中创建 db.r3.8xlarge SQL Server EE 实例

c - 在Windows中读写PCI BAR0寄存器

licensing - EULA 和许可证之间的区别

mysql - MySQL 连接器许可证

c - Linux内核源码中的 ">>="是什么意思?

c - 仅在 debian 中覆盖我的应用程序的系统调用

android - 物理地址、设备地址和虚拟地址的区别

database - oracle 11g 瘦 jdbc 驱动程序与 oracle 10g 数据库兼容吗?

来自用户空间总线错误的 Linux DMA