如果我理解正确,Linux内核是根据GPL许可的,这意味着如果有人基于它,他们还必须根据GPL许可整个衍生作品,使任何人都可以*修改和/或重新分发他们的衍生作品.
例如,所有Android版本都基于LK.这是否意味着整个版本及其所有组件也必须在GPL下发布?
例如,大多数Android版本都附带专有组件.这不违反GPL吗?整个衍生作品是否需要根据GPL发布?
例如,使用Ubuntu,您必须在安装后下载MPEG编解码器.我认为这是因为MPEG是专有的,因此MPEG的许可证与GPL不兼容,因此它们不能包含在同一版本中?
Android版本如何解决这个问题?
解决方法:
首先,您必须清楚Google的Android代码和Linux内核代码是分开的. Android本身在Apache License 2.0下获得许可,这是许可的,并以Wikipedia的话说:
The Apache License is permissive in that it does not require a derivative work of the software, or modifications to the original, to be distributed using the same license.
因此,供应商的Android修改通常都不可用.
其次,如果是Linux内核,在GPLv2下获得许可,代码将被发布给公众,或者埋在设备中的某个地方(不太可能),或者可以在供应商专用于开源代码的网站上的某个不起眼的页面上下载.他们的产品.
但是,对Linux内核代码提出了一个重要的警告 – 公开可用的专有驱动程序和具有类似功能的内核模块. Linux内核可以加载在专有许可下分发的二进制blob,并且运行设备所需的这些blob的源代码自然不会分发.最重要的是,即使您确实设法了解特定于您的设备的内核源代码,您也不一定能够使用它来编译您自己运行的基于Linux的操作系统.
宽容,在上下文中
许可许可证到底是什么意思?根据您的评论,我认为您已将其视为能够运行其他许可或专有许可的软件.但这是错误的.
在这种情况下,宽容意味着允许你按照自己的意愿使用源代码.
从某种意义上讲,GPL不是宽容的,因为您在法律上有义务宣传您对GPL许可代码所做的任何修改.它不允许你接受每个人的贡献,对其进行更改(无论是好还是坏)并将其隐藏起来.如果您要分发二进制文件,您也需要分发源代码.由于它不允许您进行私人更改,因此不允许.
Apache许可证和BSD许可证是许可许可证的示例.与严格不允许的GPL相反,它允许您对其下许可的代码进行任何修改并保留给自己,换句话说,它是允许的.也就是说,您可以使用Android代码,即使您进行了足够的更改以使其无法识别,您也可以自己保留它.这正是Android设备供应商所做的.