Christoph Hellwig, noto sviluppatore del kernel Linux, che un tempo faceva parte del comitato tecnico dell'organizzazione Linux Foundation e ha agito come querelante in una causa relativa alla GPL contro VMware, per inasprire la protezione contro l'integrazione di driver proprietari con i componenti del kernel Linux, esportati solo per i moduli sotto licenza GPL. Per bypassare il limite sull'esportazione dei simboli GPL, i produttori di driver proprietari utilizzano un modulo intermedio, il cui codice è aperto e distribuito sotto licenza GPLv2, ma le funzioni si riducono alla traduzione dell'accesso del driver proprietario alle API del kernel, vietato per l'uso diretto da codice proprietario.
Per bloccare tale manovra, Christoph Hellwig per il kernel Linux patch che garantiscono l'eredità dei flag relativi all'esportazione dei simboli GPL. La proposta si limita all'ereditarietà del flag TAINT_PROPRIETARY_MODULE in tutti i moduli che importano simboli da moduli con questo flag. Così, se un modulo GPL di interfaccia tenterà di importare simboli da un modulo non GPL, il modulo GPL erediterà l'etichetta TAINT_PROPRIETARY_MODULE e non potrà accedere ai componenti del kernel disponibili solo per i moduli sotto licenza GPL, anche se il modulo aveva precedentemente importato simboli dalla categoria «gplonly».
Durante la discussione è stato anche una proposta di blocco inverso - 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 GPL. Cioè, se un modulo importa simboli EXPORT_SYMBOL_GPL, tutti i suoi simboli esportati devono essere trattati come EXPORT_SYMBOL_GPL. Christoph Hellwig , che è al 100% d'accordo con questa proposta, ma tale modifica non sarà accettata da Linus Torvalds, poiché porterebbe all'inaccessibilità della maggior parte delle sottocomponenti del kernel per i driver proprietari, dato che durante lo sviluppo dei driver vengono utilizzati simboli fondamentali esportati sotto GPL.
La modifica è stata proposta in risposta a un ingegnere di Facebook riguardo a una serie di patch che implementano una nuova sottosistema netgpu, permettendo uno scambio diretto di dati (DMA
zero-copy) tra la scheda di rete e la GPU, gestendo contemporaneamente l'elaborazione del protocollo da parte della CPU. degli sviluppatori è stato provocato da un'implementazione esclusivamente per i driver proprietari NVIDIA attraverso il layer GPL fornito da questi driver. In risposta a l'autore delle patch , ha affermato che la sottosistema non è legata a NVIDIA e il suo supporto può essere garantito anche per le interfacce software per le GPU AMD e Intel. Di conseguenza, la promozione di netgpu nel kernel è stata riconosciuta come impossibile fino a quando non sarà disponibile un supporto funzionante basato su driver liberi, come AMDGPU, Intel i915 o Nouveau.
Fonte: opennet.ru
