Christoph Hellwig, un cunoscut dezvoltator al nucleului Linux, care a fost cândva membru al comitetului tehnic de conducere al organizației Linux Foundation și a acționat ca reclamant într-un proces legat de GPL cu VMware, pentru a întări protecția împotriva legării driverelor proprietare cu componentele nucleului Linux, care sunt exportate doar pentru module sub licența GPL. Pentru a ocoli restricția privind exportul simbolurilor GPL, producătorii de drivere proprietare folosesc un modul intermediar, a cărui cod este deschis și distribuit sub licența GPLv2, dar funcțiile sale se limitează la traducerea accesului driverului proprietar la API-urile nucleului, interzise pentru utilizarea din cod proprietar direct.
Pentru a bloca o astfel de manevră, Christoph Hellwig a propus pentru nucleul Linux patch-uri care asigură moștenirea etichetelor legate de exportul simbolurilor GPL. Propunerea constă în moștenirea etichetei TAINT_PROPRIETARY_MODULE în toate modulele care importă simboluri din module cu această etichetă. Astfel, dacă un modul GPL intermediar va încerca să importe simboluri dintr-un modul non-GPL, modul GPL va moșteni eticheta TAINT_PROPRIETARY_MODULE și nu va putea accesa componentele nucleului disponibile doar pentru module sub licența GPL, chiar dacă modulul a importat anterior simboluri din categoria „gplonly”.
În discuție a fost de asemenea o propunere de blocare inversă — dacă un modul importă simboluri EXPORT_SYMBOL_GPL, orice simboluri exportate de acel modul nu ar trebui să fie importate de module care nu declară în mod explicit compatibilitatea cu GPL. Adică, dacă un modul importă simboluri EXPORT_SYMBOL_GPL, toate simbolurile sale exportate trebuie tratate ca EXPORT_SYMBOL_GPL. Christoph Hellwig , este 100% de acord cu această propunere, dar o astfel de modificare nu va fi acceptată de Linus Torvalds, deoarece va duce la inaccesibilitatea pentru driverele proprietare a celei mai mari părți a subsistemului nucleului, din cauza faptului că în dezvoltarea driverelor se folosesc simboluri de bază, exportate sub GPL.
Modificarea a fost propusă ca răspuns la un inginer de la Facebook, o serie de patch-uri cu implementarea unui nou subsistem netgpu, care permite organizarea unei schimburi directe de date (DMA
zero-copy) între plăca de rețea și GPU, efectuând în același timp procesarea protocolului prin intermediul CPU-ului. dezvoltatorilor a fost provocată implementările sunt doar pentru driverele proprietare NVIDIA prin intermediul straturilor GPL furnizate de aceste drivere. Ca răspuns la autorul patch-urilor , sistemul nu este legat de NVIDIA și suportul acestuia ar putea fi asigurat și pentru interfețele de programare GPU AMD și Intel. Ca urmare, promovarea netgpu în kernel a fost considerată imposibilă până la apariția unui suport funcțional bazat pe drivere liber, cum ar fi AMDGPU, Intel i915 sau Nouveau.
Sursa: opennet.ro
