Kristofs Helvigs, slavens kodola izstrādātājs Linux, kurš savulaik bija organizācijas tehniskās vadības komitejas loceklis Linux Fonds un prasītājs ar GPL saistītā lietā ar VMware, pastiprināt aizsardzību pret patentētu draiveru apvienošanu ar kodola komponentiem Linux, eksportēts tikai GPL licencētiem moduļiem. Lai apietu GPL simbolu eksportēšanas ierobežojumu, patentētu draiveru izstrādātāji izmanto starpprogrammatūras moduli, kura kods ir atvērtā koda un izplatīts saskaņā ar GPLv2 licenci. Tomēr tā funkcionalitāte ir ierobežota ar patentētā draivera piekļuves tulkošanu nepieciešamajām kodola API, kuras ir aizliegts tieši izmantot no patentētā koda.
Lai bloķētu šādu manevru, Kristofs Helvigs kodolam Linux Ielāpi, kas nodrošina ar GPL simbolu eksportu saistīto karodziņu mantošanu. Priekšlikums būtībā ir TAINT_PROPRIETARY_MODULE karodziņa mantošana visos moduļos, kas importē simbolus no moduļiem ar šo karodziņu. Tādējādi, ja GPL starpprogrammatūras modulis mēģina importēt simbolus no moduļa, kas nav GPL licencēts, GPL modulis mantos TAINT_PROPRIETARY_MODULE etiķeti un nevarēs piekļūt galvenajiem komponentiem, kas pieejami tikai GPL licencētiem moduļiem, pat ja modulis iepriekš importēja simbolus no kategorijas "gplonly".
Diskusijas laikā bija arī reversās bloķēšanas ieteikums — ja modulis importē EXPORT_SYMBOL_GPL simbolus, šī moduļa eksportētos simbolus nedrīkst importēt moduļi, kuri nepārprotami nepretendē uz GPL saderību. Tie. ja modulis importē EXPORT_SYMBOL_GPL simbolus, tad visi tā eksportētie simboli ir jāuzskata par EXPORT_SYMBOL_GPL. Kristofs Helvigs , es 100% piekrītu šim priekšlikumam, taču šādas izmaiņas nepalaidīs garām Linuss Torvalds, jo tas novedīs pie lielākās daļas kodola apakšsistēmu nepieejamības patentētiem draiveriem, jo, izstrādājot draiverus, tiek izmantoti pamata simboli. tiek eksportēti saskaņā ar GPL.
Izmaiņas tika ierosinātas, reaģējot uz inženieris no Facebook, ielāpu sērija ar jaunas netgpu apakšsistēmas ieviešanu, kas nodrošina tiešu datu apmaiņu (DMA
nulles kopija) starp tīkla karti un GPU, vienlaikus apstrādājot protokolu CPU. sauca izstrādātāji ieviešanas tikai patentētiem NVIDIA draiveriem, izmantojot GPL slāni, ko nodrošina šie draiveri. Atbildot uz ielāpa autors ka apakšsistēma nav saistīta ar NVIDIA un tās atbalstu var nodrošināt arī programmatūras saskarnēm ar AMD un Intel GPU. Rezultātā netgpu ieviešana kodolā tika uzskatīta par neiespējamu, līdz kļuva pieejams darba atbalsts, kura pamatā ir tādi bezmaksas draiveri kā AMDGPU, Intel i915 vai Nouveau.
Avots: opennet.ru
