我想编写自己的操作系统,暂时跳过编写内核的复杂任务,稍后再使用Linux内核回来。但是,我现在想将操作系统作为封闭源提供。Linux 内核在什么许可证下,是否可以将其用于闭源操作系统的发布?
编辑:我对关闭 Linux 内核的源代码不感兴趣,我仍然会将其作为开源提供。我想知道我是否可以使用带有开源内核的闭源操作系统。
进一步编辑:操作系统是指在内核之上运行并用于启动其他程序的系统。我当然不是有意将内核包含在封闭源代码声明中。
我想编写自己的操作系统,暂时跳过编写内核的复杂任务,稍后再使用Linux内核回来。但是,我现在想将操作系统作为封闭源提供。Linux 内核在什么许可证下,是否可以将其用于闭源操作系统的发布?
编辑:我对关闭 Linux 内核的源代码不感兴趣,我仍然会将其作为开源提供。我想知道我是否可以使用带有开源内核的闭源操作系统。
进一步编辑:操作系统是指在内核之上运行并用于启动其他程序的系统。我当然不是有意将内核包含在封闭源代码声明中。
你当然可以在你喜欢的 Linux 内核上编写任何闭源操作系统,只要你与你链接的组件的许可兼容。
当然,这可能包括 gnu C 库(或其他一些 C 库)。您可能还需要一些命令行实用程序,这些实用程序可能是 GPL 来执行文件系统维护、网络设置等操作。但如果您将它们保留为自己的独立程序,这应该不是问题。
您链接到内核本身的任何东西(例如自定义模块、补丁)都应该作为开源 GPL 发布以符合内核的许可。
Linux 内核是在 GPLv2 下发布的,您可以将其用作闭源操作系统的一部分,但您必须保持内核和所有修改都发布 GPLv2。
编辑:顺便说一句,您可能想改用 OpenSolaris 之类的东西。在我看来,它更容易使用(显然非常主观),如果你愿意,你可以保持修改的封闭源,只要你遵守 CDDL 的条款。
我认为您将不得不更具体地说明“操作系统”的含义。这绝不是一个明确的概念。有人会说内核就是整个操作系统。其他人会说外壳和核心实用程序(例如“ls”)是操作系统的一部分。其他人甚至会说记事本等标准应用程序是操作系统的一部分。
IANAL,但我认为没有什么可以阻止您将 Linux 内核与您自己的大量闭源程序捆绑在一起。但是请注意不要使用任何 GPL 库代码(LGPL 是可以的)。
我确实质疑你的动机。
它是 GPL 版本 2,您肯定不会关闭它的源代码。
您必须保持源代码开放,以及从代码派生的任何作品,但是,如果您使用内核,则在其之上编写自己的应用程序堆栈(几乎所有 GNU 的东西),那么您不必打开它.
GPL 说“派生”是有效的……所以如果你正在编写新代码,而不是展开,那很好。事实上,例如,您甚至可以使用 GNU 工具链、Linux 内核,然后在其之上拥有自己的系统(或只是一个封闭源代码的 DE)。
当您修改/派生某些东西时,您必须保持打开状态!
Linux 使用 GPL (v2) 作为其许可证,这意味着您必须开源任何衍生作品。
您可能想使用 BSD,它的许可证对您可以对衍生作品进行的操作限制较少
它是 GPL。简短的回答——不。
您始终可以保留您编写的任何扩展(模块)和/或应用程序的封闭源代码,但内核本身需要保持开源。
您可以在测试系统时利用 GPLv2 的一个不太明显的方面:您只需将源代码发布给有权访问系统的人。GPLv2 声明您需要向任何有权访问程序的二进制/编译分发的人授予对源代码的完全访问权限。因此,如果您只打算在支付开发费用的公司内部使用该软件,则无需将源代码分发给世界其他地方,而只需分发给他们即可。
一般来说,我会说你可以做这样的事情,只要你提供内核的源代码,但有一点我不确定:
在(GPL)内核和非 GPL 兼容应用程序之间的普通 Linux 系统上,始终存在 GNU libc,它是 LGPL,因此允许派生的作品是非自由的。现在,如果你有一个非自由的 libc,那可能被认为是一个派生的工作,因为你直接调用内核,并且还使用内核头文件。
正如许多其他人之前所说,使用 *BSD 可能会更好。
如果您认真开发一个新的操作系统并希望从一个工作内核开始,我建议您研究一下 FreeBSD 内核。它的许可证比 Linux 宽松得多,我认为您可能会觉得它值得。
只是我的2美分...
我同意 MarkR,但没有人向你说明这一点。如果你是认真的,你需要咨询在这方面有专业知识的律师。