半专有软件如何基于Linux内核?

半专有软件如何基于Linux内核?

如果我理解正确的话,Linux 内核是根据 GPL 授权的,这意味着如果任何人基于它进行任何开发,他们也必须根据 GPL 授权整个衍生作品,从而使任何人都可以自由修改和/或重新分发他们的衍生作品。

例如,所有 Android 版本都基于 LK。这是否意味着整个版本及其所有组件也必须在 GPL 下发布?

例如,大多数 Android 版本都附带专有组件。这不违反GPL吗?整个衍生作品不需要在GPL下发布吗?

例如,对于 Ubuntu,您必须在安装后下载 MPEG 编解码器。我认为这是因为 MPEG 是专有的,因此 MPEG 的许可证与 GPL 不兼容,因此它们不能包含在同一版本中?

Android 版本如何解决这个问题?

答案1

首先,你必须清楚,谷歌的 Android 代码和 Linux 内核代码是分开的。Android 本身是在 Apache License 2.0 下授权的,这是宽松的,而且维基百科的话:

Apache 许可证是宽松的,因为它不需要使用相同的许可证来分发软件的衍生作品或对原始版本的修改。

因此,供应商通常不会对 Android 进行任何修改。

其次,如果是 Linux 内核,则根据 GPLv2 获得许可,代码会向公众发布,要么埋藏在设备内的某个位置(不太可能),要么可以在供应商网站上专门用于开源代码的某个不起眼的页面上下载。他们的产品。

然而,公开发布的 Linux 内核代码有一个重要的警告——具有类似功能的专有驱动程序和内核模块。 Linux 内核可以加载在专有许可下分发的二进制 blob,并且运行设备所需的此类 blob 的源代码自然不会分发。最重要的是,即使您确实设法获得了特定于您的设备的内核源代码,您也不一定能够使用它来编译您自己的基于 Linux 的操作系统。


宽容,在上下文中

我们所说的到底是什么意思许可?根据您的评论,我认为您已将其理解为运行其他许可或专有许可软件的能力。但这是错误的。

在这种情况下,宽容意味着允许您按照自己的意愿处理源代码。

GPL 并不宽容,因为您具有法律约束力公开您对 GPL 许可的代码所做的任何修改。它不允许你接受每个人的贡献,对其进行更改(无论使其变得更好或更糟)并将其隐藏起来。如果您要分发二进制文件,则还必须分发源代码。既然如此不是允许您进行私人更改,因此不宽容

Apache 许可证和 BSD 许可证是宽松许可证的示例。与严格不允许的 GPL 相反,它允许您对根据其许可的代码进行任何修改并保留给您自己,换句话说,它是宽容的。也就是说,你可以拿走Android代码,即使你对它进行了足够大的修改,使其无法识别,你也可以自行保留它。这正是 Android 设备供应商所做的。

相关内容