¿Cómo puede basarse el software semi-propietario en el kernel de Linux?

9

Si entiendo correctamente, el Kernel de Linux está licenciado bajo la GPL, lo que significa que si alguien basa algo en él, también deben licenciar todo el trabajo derivado bajo la GPL, lo que permite a cualquiera modificar y / o redistribuir su trabajo derivado.

Por ejemplo, todas las versiones de Android se basan en el LK. ¿Eso no significa que toda la versión y todos sus componentes también tienen que ser lanzados bajo la GPL?

Por ejemplo, la mayoría de los lanzamientos de Android se envían con componentes patentados. ¿Eso no viola la GPL? ¿No es necesario publicar todo el trabajo derivado bajo la GPL?

Con Ubuntu, por ejemplo, debe descargar códecs MPEG después de la instalación. Supongo que esto se debe a que MPEG es propietario, y que la licencia de MPEG es incompatible con la GPL, por lo que no se pueden incluir en la misma versión.

¿Cómo se solucionan los lanzamientos de Android?

Revetahw dice reinstalar a Mónica
fuente
2
La versión corta es que la calidad 'viral' de la GPL solo puede actuar en trabajos derivados del código bajo licencia, y un usuario que llama a un núcleo no lo convierte en un trabajo derivado del núcleo.
Tom Hunt
Ya veo, el kernel y el otro software además tienen licencias separadas, y la GPL lo permite.
Revetahw dice Reinstate a Monica el
También me gustaría agregar que, a mi entender, hay una gran diferencia entre GPL v2 y GPL v3 y Linus ha seguido usando la GPL v2, que es más permisiva que esta última. Aquí hay un poco de información sobre esto. Las dos respuestas principales parecen ser bastante buenas.
KGIII

Respuestas:

9

Primero, debe tener claro que el código de Android de Google y el código del kernel de Linux están separados. El propio Android tiene licencia de Apache License 2.0, que es permisiva, y en palabras de Wikipedia :

La licencia de Apache es permisiva ya que no requiere un trabajo derivado del software, o modificaciones al original, para ser distribuidas usando la misma licencia.

Como tal, ninguna modificación de Android por parte de los proveedores normalmente está disponible.

En segundo lugar, en el caso de que el kernel de Linux tenga licencia bajo GPLv2, el código se libera al público, ya sea enterrado en algún lugar dentro del dispositivo (menos probable) o disponible para descargar en alguna página oscura en el sitio web del proveedor dedicado a códigos de código abierto en sus productos.

Sin embargo, hay una advertencia importante para el código del kernel de Linux puesto a disposición del público: controladores propietarios y módulos del kernel de funcionalidad similar. El kernel de Linux puede cargar blobs binarios distribuidos bajo licencia propietaria, y el código fuente de dichos blobs necesarios para ejecutar su dispositivo no se distribuye naturalmente. En pocas palabras, incluso si logra tener en sus manos la fuente del kernel específica de su dispositivo, no necesariamente podrá usarla para compilar su propio sistema operativo basado en Linux.


Permisivo, en contexto

¿Qué queremos decir exactamente con una licencia permisiva ? A partir de sus comentarios, creo que lo ha entendido como la capacidad de ejecutar otro software con licencia permisiva o propietaria. Pero eso está mal.

Permisivo en este contexto significa, lo permisible que es permitirte hacer lo que quieras con el código fuente.

GPL no es permisivo en el sentido de que está legalmente obligado a publicar cualquier modificación que realice en un código con licencia GPL. No le permite tomar la contribución de todos, hacer cambios (independientemente de que sea mejor o peor) y ocultarlo. Si va a distribuir el binario, también debe distribuir el código fuente. Como no le permite realizar cambios privados, no es permisivo .

La licencia Apache y las licencias BSD son ejemplos de licencias permisivas. Al contrario de la GPL estrictamente no permisiva, le permite hacer cualquier modificación a los códigos bajo licencia y guardarla para usted, en otras palabras, es permisiva . Es decir, puede tomar el código de Android, incluso si lo cambia lo suficiente como para hacerlo irreconocible, puede guardarlo usted mismo. Y eso es exactamente lo que hacen los vendedores de dispositivos Android.

Oxwivi
fuente
1
No. es porque los programas que simplemente se ejecutan en un núcleo (y hacen uso de las llamadas al sistema del núcleo) no son derivados del núcleo. El código de usuario de Android simplemente se ejecuta en el kernel de Linux.
cas
1
@Fiksdal Linux kernel está licenciado bajo la GPL, no es una licencia permisiva. Puede ejecutar Android y el otro software permisivo en Linux de la misma manera que puede usar el controlador propietario de Nvidia en su PC normal.
Oxwivi
1
@Fiksdal O un mejor ejemplo sería, Android ejecuta binarios patentados y permisivos en Linux de la misma manera que puede ejecutar Steam y Google Chrome.
Oxwivi
1
@Fiksdal, sí, literalmente está separado. Considere esto: el mismo núcleo puede ejecutar Ubuntu u otras distribuciones regulares de Linux encima. El kernel de Linux es solo eso, un kernel. Está destinado a poder ejecutar todo tipo de programas encima.
Oxwivi
1
@Fiksdal He editado la respuesta, échale un vistazo.
Oxwivi