1
23
重要的是要认识到“GPL”可以指两个许可证。
其中任何一个都非常清楚地指出,它将库中的代码与程序混合在一起视为 联合工作 现在,两个许可证之间的差异变得非常重要。
幸运的是(还是不是?根据您的视图),gnuc库不包含在GPL中。它由LGPL覆盖。LGPL表示,简单地加载和使用systemc库确实构成了一个组合工作,但是有一个例外,即允许专有应用程序这样做,而不必遵守GPL的分发要求。因此,在这种情况下,Oracle可以自由地使用systemc库(需要运行它们的代码),而不必发布它们的源代码。
就内核而言,仅仅使用其syscall接口并不构成一个组合工作。虽然我们大多数人只是让systemc库将这些复杂性抽象出来,但您完全可以自由地在任何条件下实现自己的系统调用。这说明了为什么systemc库的LGPL是一个非常战略性的选择。如果情况正好相反,GNU/Linux会让更多的开发人员望而却步。还要注意的是,许多定义与内核的syscall接口对话所需的幻数的Linux头都没有提到任何许可证。看到了吗
注意,Linus特别指出使用内核头和syscall接口并不构成 派生 (如简单使用的)工作。这是Linux和GNU之间裂痕的一部分。我提到这个只是因为你间接地提到了GPL的影响。Linus(有时)想要修改内核的代码,但是选择了GPL来确保(有时)是他的选择。 简而言之,如果您链接或加载GPL覆盖的库,则必须使代码在同一许可证下可用。如果您链接或加载LGPL所涵盖的库,则许可条款由您决定。 另外请注意,LGPL还有很多要说的,特别是关于修改、静态链接等。我所描述的只是回答您问题的部分。 最后,GPL仅在您分发或 传达 FSF在licensing@fsf.org -如果你对某个案件有任何疑问,想确保你不会惹上麻烦,他们会非常友好,乐于回答问题。。即使你正在制作非自由软件。他们喜欢人们花一些精力来确保他们适当地遵循许可证,不幸的是,这种情况并不时有发生。
|
2
8
Linux是内核,没有应用程序会直接使用内核,而是通过一个库,通常是LGPL下发布的GLIBC。这稍微打破了GPL链,因为GLIBC syscalls内核,但这似乎是一致的。所以我担心你无法从Oracle获得代码:-)。 但是,如果应用程序使用任何GPL许可的代码,那么您必须使该应用程序的源代码可用(但不只是在您选择的许可证下的开源代码)。这使得GPL实际上是一个相当严格的许可证,是“污染”产品,这就是为什么它也被称为病毒许可证。 |
3
3
大多数使用GPL许可软件的软件可能会“合并”它,因此如果发布它,它本身就需要根据GPL发布(GPL不需要发布,而只是控制发布必须如何进行。)例如,使用基于GPL的库就符合合并的条件。 FAQ 在一份报告中提到了这一点 previous answer precise discussion 并给出了一个编译器和内核符合arms-length关系的例子,因此编译器可以在没有内核可能拥有的任何GPL许可证的情况下单独发布,只要发布操作正确。然而,我认为这是一个例外,而不是涉及到GPL的规则。 GPL license 在这方面与 LGPL license ,这是更宽容的释放。 |
4
1
|