Предложете да блокирате драйвери, които осигуряват достъп до GPL повиквания към ядрото на Linux

Лого ядро ​​Linux, Tux

Кристоф Хелвиг, изтъкнат разработчик на ядро ​​на Linux, който някога е бил член на техническия ръководен комитет на фондацията Linux и е съдил по съдебен спор с GPL срещу VMware.

Той предложи затягане на защитите против обвързване собствени драйвери за експортиране на компоненти на ядрото на Linux само за модули, лицензирани по GPL.

За да се избегне ограничение да експортирате GPL символи, собствените производители на контролери използват модул от слой, чийто код е с отворен код и се разпространява под лиценза GPLv2, но функциите се свеждат до предаване на достъпа на контролера на собственика до API-тата файлове на ядрото, чието използване е забранено директно от собствения код.

За да блокирате такава маневра, Кристоф Хелвиг подготви кръпки за ядрото на Linux, които осигуряват наследяване на флаговете, свързани с експортирането на GPL символи.

От първия ден имаме грешка в разделителната способност на модула _GPL,
т.е. модул може да претендира, че е лицензиран за GPL и да използва износ _GPL, като същевременно разчита на символи на модули, които не са GPL. Това се използва като заобикаляне на износа на _GPL чрез използване на малък модул за подложка, който използва износ на _GPL и друга функционалност.

Предложението се свежда до наследяване на показателя TAINT_PROPRIETARY_MODULE във всички модули, които импортират символи на модули с този флаг.

Следователно, ако модул на GPL от средния слой се опита да импортира символи от не-GPL модул, GPL модулът ще наследи маркера TAINT_PROPRIETARY_MODULE и няма да има достъп до компонентите на ядрото, достъпни само за лицензирани модули на GPL, дори ако модулът е импортиран преди това символи от "gplonly".

Пластирът на Hellwig сега се опитва да направи това трудно. Модулите, които импортират собствени символи, са маркирани като собствени и нямат достъп до символи GPL. 

Промяната беше предложена в отговор на поредица от пуснати кръпки от инженер на Facebook с внедряването на нова подсистема netgpu, която позволява директен обмен на данни (нулево копие DMA) между мрежовата карта и графичния процесор, като същевременно извършва обработката на протокола от процесора.

Това би избегнало метода, първоначално планиран от Джонатан Лимон за вашите кръпки и би причинило развитието на междинните слоеве да пропусне символа GPL да бъде много по-трудно, дори ако все още има малка разлика, както е посочено.

В дискусията, която водят в момента различни разработчици на ядрото на Linux беше предложено обратно блокиране: Ако модул импортира символи EXPORT_SYMBOL_GPL, символите, експортирани от този модул, не трябва да се импортират от модули, които не претендират изрично за съвместимост с GPL.

Тези без модул импортират символи EXPORT_SYMBOL_GPL, всичките им експортирани символи трябва да се третират като EXPORT_SYMBOL_GPL.

Кристоф Хелвиг писа, че е 100% съгласен с това предложение, но Linus Torvalds няма да пропусне тази промяна, тъй като ще направи повечето подсистеми на ядрото недостъпни за собствени драйвери, поради факта, че при разработването на драйвери основните символи се експортират под GPL

Разработчиците не бяха доволни от наличността на внедряването само за собствените драйвери на NVIDIA чрез слоя GPL, предоставен от тези драйвери.

В отговор на критика, авторът на кръпката посочи, че подсистемата не е свързана с NVIDIA и неговата поддръжка може да бъде осигурена, наред с други неща, за софтуерни интерфейси за AMD и Intel графични процесори.

В резултат на това популяризирането на netgpu в ядрото беше счетено за невъзможно, докато не се получи работеща поддръжка, базирана на безплатни драйвери като AMDGPU, Intel i915 или Nouveau.

Трябва да помните това в миналото, общността на ядрото на Linux има внедри различни промени че съзнателно или като страничен ефект, са възпрепятствали развитието на собственически модули или не е съвместим с лицензи.

Накрая ако искате да научите повече за това, можете да проверите подробностите, като отидете към следната връзка.

Fuente: https://lkml.org/


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   David каза той

    Може би би било по-добре да поставите статията на английски, вместо да използвате преводач. Има много части, които са неразбираеми за мен.