公司正在生产嵌入式网络设备。我们需要保护内核模块中的一些私有功能免受 GPL 违规,我记得有些内核 API 可以在不违反 GPL 的情况下使用。如,libc、skb、dev。
但是有人知道可以在非 GPL 内核模块中使用的确切内核 API 列表吗?
任何建议将不胜感激。
水手
公司正在生产嵌入式网络设备。我们需要保护内核模块中的一些私有功能免受 GPL 违规,我记得有些内核 API 可以在不违反 GPL 的情况下使用。如,libc、skb、dev。
但是有人知道可以在非 GPL 内核模块中使用的确切内核 API 列表吗?
任何建议将不胜感激。
水手
导出的接口标有EXPORT_SYMBOL
和EXPORT_SYMBOL_GPL
,后者仅限于 GPL(兼容)代码。另请参阅这篇文章,其中有一个相关线程的各种 lkml 帖子的摘要和摘录:
lkml 最近的一篇文章开头是“我正在根据专有许可编写一个模块”。关于内核模块是否是 Linux 内核本身的衍生作品并因此也必须在 GPL 下发布的争论已经出现了很多次。