Proponi di bloccare i driver che forniscono l'accesso alle chiamate GPL al kernel Linux

Logo del kernel Linux, Tux

Cristoph Hellwig, un importante sviluppatore di kernel Linux che una volta era un membro del comitato direttivo tecnico della Linux Foundation e citato in giudizio in una controversia GPL contro VMware.

Ha proposto di inasprire le protezioni contro la legatura driver proprietari per esportare i componenti del kernel Linux solo per i moduli con licenza GPL.

Per evitare restrizioni per esportare simboli GPL, i produttori di controller proprietari utilizzano un modulo di livello, il cui codice è open source ed è distribuito sotto licenza GPLv2, ma le funzioni si riducono al passaggio dell'accesso del controller proprietario alle API file del kernel, il cui utilizzo è vietato direttamente dal codice proprietario.

Per bloccare una simile manovra, Christoph Helwig ha preparato patch per il kernel Linux che garantiscono l'ereditarietà dei flag associati all'esportazione dei simboli GPL.

Abbiamo riscontrato un errore nella risoluzione del nostro modulo _GPL sin dal primo giorno,
cioè, un modulo può affermare di avere una licenza GPL e utilizzare esportazioni _GPL, pur facendo affidamento su simboli di modulo non GPL. Viene utilizzato per aggirare le esportazioni di _GPL utilizzando un piccolo modulo wrapper che utilizza le esportazioni di _GPL e altre funzionalità.

La proposta si riduce a ereditare l'indicatore TAINT_PROPRIETARY_MODULE in tutti i moduli che importano i simboli dei moduli con questo flag.

Pertanto, se un modulo di livello intermedio GPL tenta di importare simboli da un modulo non GPL, il modulo GPL erediterà il tag TAINT_PROPRIETARY_MODULE e non sarà in grado di accedere ai componenti del kernel disponibili solo per i moduli con licenza GPL, anche se il modulo è stato precedentemente importato simboli da "gplonly".

La patch di Hellwig sta ora cercando di rendere questo difficile. I moduli che importano simboli proprietari sono contrassegnati come proprietari e non hanno accesso ai simboli GPL. 

La modifica è stata proposta in risposta a una serie di patch rilasciate da un ingegnere di Facebook con l'implementazione di un nuovo sottosistema netgpu, che consente lo scambio diretto dei dati (zero copy DMA) tra la scheda di rete e la GPU, mentre esegue l'elaborazione del protocollo da parte della CPU.

Ciò eviterebbe il metodo originariamente previsto da Jonathan Lemon per le tue patch e farebbe lo sviluppo degli intercalari omettendo il simbolo GPL essere molto più difficile, anche se c'è ancora un piccolo spazio, come indicato.

Nella discussione che stanno attualmente avendo anche vari sviluppatori di kernel Linux è stato suggerito il blocco inverso: Se un modulo importa simboli EXPORT_SYMBOL_GPL, i simboli esportati da quel modulo non dovrebbero essere importati da moduli che non rivendicano esplicitamente la compatibilità GPL.

Quelli senza un modulo importano simboli EXPORT_SYMBOL_GPL, tutti i loro simboli esportati dovrebbero essere trattati come EXPORT_SYMBOL_GPL.

Christoph Helwig ha scritto di essere d'accordo al 100% con questa proposta, ma Linus Torvalds non perderà questa modifica poiché renderà la maggior parte dei sottosistemi del kernel non disponibili per i driver proprietari, a causa del fatto che durante lo sviluppo dei driver i simboli di base vengono esportati sotto GPL

Gli sviluppatori non erano soddisfatti della disponibilità dell'implementazione solo per i driver NVIDIA proprietari attraverso il livello GPL fornito da questi driver.

In risposta alle critiche, l'autore della patch ha indicato che il sottosistema non è collegato a NVIDIA e il suo supporto può essere fornito, tra le altre cose, per interfacce software per GPU AMD e Intel.

Di conseguenza, la promozione di netgpu nel kernel è stata ritenuta impossibile fino alla disponibilità di un supporto funzionante basato su driver gratuiti come AMDGPU, Intel i915 o Nouveau.

Devi ricordarlo in passato, la comunità del kernel Linux ha implementato una serie di modifiche che consapevolmente o come effetto collaterale, hanno ostacolato lo sviluppo di moduli proprietari o non compatibile con le licenze.

Infine se vuoi saperne di più, puoi controllare i dettagli andando al seguente collegamento.

fonte: https://lkml.org/


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   David suddetto

    Forse sarebbe meglio mettere l'articolo in inglese invece di usare un traduttore. Ci sono molte parti che mi sono incomprensibili.