"To propriétaire - non": les pilotes intercouches pour l'accès aux appels GPL du noyau Linux ont suggéré un blocage
Le développement propriétaire a pénétré profondément dans le code de nombreuses applications et services. Dans les systèmes complexes, s'en débarrasser est très difficile. Des solutions de contournement sont souvent utilisées pour cela, qui ressemblent plus à des «béquilles». Le noyau Linux utilise des pilotes intercouches pour fonctionner avec des pilotes propriétaires, qui sont conçus presque exclusivement pour traduire les appels de pilotes vers le noyau. L'intercalaire a un code open source, donc il n'y a aucun problème avec la licence GPL, les formalités sont suivies.
Mais cette approche a de nombreux opposants. L'un d'eux est Christoph Hellwig, un développeur de noyau Linux. Il était auparavant membre du comité de pilotage technique de la Linux Foundation. Il a également été plaignant dans une action en justice avec VMware. Helwig a proposé de renforcer considérablement la protection contre la liaison de pilotes propriétaires aux composants du noyau Linux.
Pour ce faire, il propose d'utiliser des patchs qui permettent d'hériter des drapeaux associés à l'exportation de symboles GPL. Dans ce cas, l'indicateur TAINT_PROPRIETARY_MODULE est hérité dans tous les modules qui importent les symboles des modules avec cet indicateur. L'essence de la protection est que si le pilote intercouche importe quelque chose qui ne provient pas du module GPL, le module GPL héritera de l'étiquette TAINT_PROPRIETARY_MODULE et ne pourra pas accéder aux composants du noyau disponibles uniquement pour les modules GPL.
Source: 3dnews
Au cours de la discussion, un blocage inversé a également été proposé. Ainsi, si un module importe EXPORT_SYMBOL_GPL, alors les symboles exportés par le module ne doivent pas être importés par des modules qui ne revendiquent pas la compatibilité GPL. La proposition n'a pas été faite par Helwig, mais par un autre participant à la discussion. Mais Helwig était d'accord avec lui. Très probablement, Linus Torvalds ne sautera pas cette proposition, car elle bloquera un certain nombre de sous-systèmes du noyau pour les pilotes propriétaires.
Tout a éclaté après la publicationun ingénieur patch de Facebook avec l'implémentation du sous-système netgpu. Ce sous-système permet d'organiser l'échange direct de données entre la carte réseau et le GPU avec l'exécution du traitement du protocole par le CPU. Sur la base de la proposition, vous pouvez faire une implémentation générale de RDMA pour l'échange de données entre GPU ou CXD externe. De nombreux développeurs ont exprimé leur mécontentement face à de telles innovations, car l'implémentation n'est disponible que pour les pilotes NVIDIA propriétaires via la couche fournie par ces pilotes. Helvig a même appelé le développeur un troll.
À son tour, l'auteur du correctif a objecté que le sous-système n'est pas lié à NVIDIA, de sorte que sa prise en charge puisse être fournie pour les interfaces logicielles vers les GPU AMD et Intel. En fin de compte, il a été jugé impossible de promouvoir netgpu dans le noyau jusqu'à ce qu'il y ait un support fonctionnel basé sur des pilotes gratuits tels que AMDGPU, Intel i915 ou Nouveau.