Comment un logiciel semi-propriétaire peut-il être basé sur le noyau Linux?

9

Si je comprends bien, le noyau Linux est sous licence GPL, ce qui signifie que si quelqu'un se base sur quoi que ce soit, il doit également concéder sous licence la totalité du travail dérivé sous GPL, ce qui permet à quiconque de modifier et / ou de redistribuer son travail dérivé.

Par exemple, toutes les versions d'Android sont basées sur le LK. Cela ne signifie-t-il pas que la version complète et tous ses composants doivent également être publiés sous GPL?

Par exemple, la plupart des versions d'Android sont livrées avec des composants propriétaires. Cela ne viole-t-il pas la GPL? Est-ce que l'ensemble du travail dérivé n'a pas besoin d'être publié sous la GPL?

Avec Ubuntu, par exemple, vous devez télécharger les codecs MPEG après l'installation. Je suppose que c'est parce que MPEG est propriétaire, et que la licence de MPEG est donc incompatible avec la GPL, donc ils ne peuvent pas être inclus dans la même version?

Comment les versions d'Android peuvent-elles contourner cela?

Revetahw dit de réintégrer Monica
la source
2
La version courte est que la qualité «virale» de la GPL ne peut agir que sur les œuvres dérivées du code sous licence, et un espace utilisateur appelant un noyau n'en fait pas un travail dérivé du noyau.
Tom Hunt
Je vois, le noyau et les autres logiciels en plus ont des licences distinctes, et la GPL le permet.
Revetahw dit Réintégrer Monica
Je voudrais également ajouter qu'à ma connaissance, il y a une assez grande différence entre GPL v2 et GPL v3 et Linus a continué à utiliser la GPL v2 qui est plus permissive que cette dernière. Voici quelques informations à ce sujet. Les deux premières réponses semblent assez bonnes.
KGIII

Réponses:

9

Tout d'abord, vous devez être clair que le code Android de Google et le code du noyau Linux sont séparés. Android lui-même est sous licence Apache License 2.0, qui est permissive, et dans les mots de Wikipedia :

La licence Apache est facultative dans la mesure où elle ne nécessite pas la distribution d'un travail dérivé du logiciel ou de modifications à l'original à l'aide de la même licence.

En tant que tel, aucune modification Android par les fournisseurs n'est normalement disponible.

Deuxièmement, dans le cas où le noyau Linux est sous licence GPLv2, le code est rendu public, soit enterré quelque part dans l'appareil (moins probable) ou disponible en téléchargement sur une page obscure du site Web du vendeur dédiée aux codes open source dans leurs produits.

Cependant, le code du noyau Linux mis à la disposition du public présente une mise en garde majeure: pilotes propriétaires et modules de noyau de fonctionnalités similaires. Le noyau Linux peut charger des blobs binaires distribués sous licence propriétaire, et le code source de ces blobs nécessaires pour faire fonctionner votre appareil n'est naturellement pas distribué. En fin de compte, même si vous parvenez à mettre la main sur la source du noyau spécifique à votre appareil, vous ne pourrez pas nécessairement l'utiliser pour compiler votre propre système d'exploitation Linux.


Permissif, en contexte

Qu'entendons-nous exactement par une licence permissive ? D'après vos commentaires, je pense que vous l'avez compris comme signifiant la capacité d'exécuter d'autres logiciels sous licence de manière permissive ou propriétaire. Mais c'est faux.

Permissif dans ce contexte signifie à quel point il est permis de vous laisser faire ce que vous voulez avec le code source.

La GPL n'est pas permissive en ce sens que vous êtes légalement tenu de publier toute modification que vous apportez à un code sous licence GPL. Il ne vous permet pas de prendre la contribution de tout le monde, de la modifier (indépendamment de la rendre meilleure ou pire) et de la cacher. Si vous allez distribuer le binaire, vous devez également distribuer le code source. Comme il ne pas vous permettre de faire des changements privés , il est donc pas permissive .

La licence Apache et les licences BSD sont des exemples de licences permissives. Contrairement à la GPL strictement non permissive, elle vous permet d'apporter toute modification aux codes sous licence et de la garder pour vous, en d'autres termes, elle est permissive . Autrement dit, vous pouvez prendre le code Android, même si vous le changez suffisamment pour le rendre méconnaissable, vous êtes libre de le garder vous-même. Et c'est exactement ce que font les fournisseurs d'appareils Android.

Oxwivi
la source
1
non. c'est parce que les programmes s'exécutant simplement sur un noyau (et faisant usage des appels système du noyau) ne sont pas des dérivés du noyau. Le code de l'espace utilisateur Android s'exécute simplement sur le noyau Linux.
cas
1
@Fiksdal Linux kernel est sous licence GPL, pas une licence permissive. Vous pouvez exécuter Android et les autres logiciels permissifs sous Linux de la même manière que vous pouvez utiliser le pilote propriétaire de Nvidia sur votre PC standard.
Oxwivi
1
@Fiksdal Ou un meilleur exemple serait, Android exécute des binaires propriétaires et permissifs sur Linux de la même manière qu'il peut exécuter Steam et Google Chrome.
Oxwivi
1
@Fiksdal, oui, c'est littéralement séparé. Considérez ceci: le même noyau peut exécuter Ubuntu ou d'autres distributions Linux régulières par-dessus. Le noyau Linux n'est rien d'autre qu'un noyau. Il est censé être capable d'exécuter toutes sortes de programmes en plus.
Oxwivi
1
@Fiksdal J'ai édité la réponse, vérifiez-la.
Oxwivi