Christoph Hellwig, un développeur renommé du noyau Linux, qui a été membre du comité technique de la Linux Foundation et a agi en tant que plaignant dans un litige lié à la GPL contre VMware, pour renforcer la protection contre l'association de pilotes propriétaires avec des composants du noyau Linux, exportés uniquement pour des modules sous licence GPL. Pour contourner la restriction sur l'exportation des symboles GPL, les fabricants de pilotes propriétaires utilisent un module de couche intermédiaire, dont le code est ouvert et distribué sous licence GPLv2, mais dont les fonctions se limitent à traduire l'accès du pilote propriétaire aux API nécessaires du noyau, interdites à l'utilisation depuis le code propriétaire directement.
Pour bloquer une telle manœuvre, Christoph Hellwig pour le noyau Linux a proposé des patchs visant à assurer l'héritage des flags liés à l'exportation de symboles GPL. La proposition consiste à hériter du flag TAINT_PROPRIETARY_MODULE dans tous les modules qui importent des symboles de modules avec ce flag. Ainsi, si le module de couche intermédiaire GPL tente d'importer des symboles d'un module non GPL, le module GPL hériterait de l'étiquette TAINT_PROPRIETARY_MODULE et ne pourrait pas accéder aux composants du noyau accessibles uniquement aux modules sous licence GPL, même si le module avait auparavant importé des symboles de la catégorie « gplonly ».
Lors de la discussion, il y avait aussi une proposition de blocage inversé - si un module importe des symboles EXPORT_SYMBOL_GPL, tous les symboles exportés par ce module ne devraient pas être importés par des modules ne déclarant pas explicitement leur compatibilité avec la GPL. C'est-à-dire que si un module importe des symboles EXPORT_SYMBOL_GPL, tous ses symboles exportés devraient être traités comme EXPORT_SYMBOL_GPL. Christoph Hellwig , a déclaré qu'il était 100% d'accord avec cette proposition, mais que ce changement ne passerait pas par Linus Torvalds, car il entraînerait l'inaccessibilité pour les pilotes propriétaires de la majeure partie des sous-systèmes du noyau, car lors du développement des pilotes, les symboles de base exportés sous la GPL sont utilisés.
Le changement a été proposé en réponse à un ingénieur de Facebook d'une série de patchs mettant en œuvre un nouveau sous-système netgpu, permettant d'organiser un échange direct de données (DMA
zero-copy) entre la carte réseau et le GPU, tout en effectuant le traitement du protocole par le biais du CPU. des développeurs a été provoqué par réalisations uniquement pour les pilotes propriétaires NVIDIA via la couche GPL fournie par ces pilotes. En réponse à l'auteur des patchs , que le sous-système n'est pas lié à NVIDIA et que son support peut être assuré également pour les interfaces logicielles vers les GPU AMD et Intel. En fin de compte, la promotion de netgpu dans le noyau a été jugée impossible jusqu'à l'apparition d'un support fonctionnel basé sur des pilotes libres, tels que AMDGPU, Intel i915 ou Nouveau.
Source : opennet.ru
