Christoph Hellwig, noto sviluppatore del kernel Linux, che in passato faceva parte del comitato tecnico esecutivo della Linux Foundation e ha agito come querelante in un'azione legale relativa alla GPL contro VMware, per inasprire la protezione contro il binding dei driver proprietari con i componenti del kernel Linux, esportati solo per i moduli sotto licenza GPL. Per aggirare il divieto di esportazione dei simboli GPL, i produttori di driver proprietari utilizzano un modulo intermedio, il cui codice è aperto e distribuito sotto licenza GPLv2, ma le cui funzioni si riducono alla traduzione dell'accesso del driver proprietario alle API del kernel, vietate per l'uso diretto da codice proprietario.
Per bloccare tale manovra, Christoph Hellwig per il kernel Linux ha proposto patch che garantiscono l'ereditarietà dei flag relativi all'esportazione dei simboli GPL. La proposta consiste nell'ereditare il flag TAINT_PROPRIETARY_MODULE in tutti i moduli che importano simboli da moduli con questo flag. In questo modo, se un modulo GPL intermedio prova a importare simboli da un modulo non GPL, il modulo GPL erediterà il badge TAINT_PROPRIETARY_MODULE e non potrà accedere ai componenti del kernel disponibili solo per i moduli sotto licenza GPL, anche se il modulo ha precedentemente importato simboli dalla categoria "gplonly".
Durante la discussione è stata avanzata anche una proposta di inversione del blocco: se un modulo importa simboli EXPORT_SYMBOL_GPL, qualsiasi simbolo esportato da questo modulo non deve essere importato da moduli che non dichiarano esplicitamente la compatibilità con la GPL. Cioè, se un modulo importa simboli EXPORT_SYMBOL_GPL, tutti i suoi simboli esportati devono essere trattati come EXPORT_SYMBOL_GPL. Christoph Hellwig , ha dichiarato di essere completamente d'accordo con questa proposta, ma tale modifica non sarà accettata da Linus Torvalds, poiché porterà all'inaccessibilità per i driver proprietari della maggior parte delle sottosistemi del kernel, a causa del fatto che durante lo sviluppo dei driver vengono coinvolti simboli di base esportati sotto GPL.
La modifica è stata proposta in risposta a un ingegnere di Facebook che ha presentato una serie di patch contenenti l'implementazione di un nuovo sottosistema netgpu, che consente lo scambio diretto di dati (DMA
zero-copy) tra la scheda di rete e la GPU, consentendo di gestire il protocollo tramite la CPU. degli sviluppatori è stata realizzazioni solo per driver proprietari NVIDIA tramite uno strato GPL fornito da questi driver. In risposta a autore delle patch , la sottosistema non è legato a NVIDIA e il suo supporto può essere garantito anche per le interfacce software per GPU AMD e Intel. Di conseguenza, la promozione di netgpu nel kernel è stata giudicata impossibile fino all'arrivo di un supporto funzionante basato su driver liberi, come AMDGPU, Intel i915 o Nouveau.
Fonte: opennet.ru
