Предложение за блокиране на драйвери-прослоци, предоставящи достъп до GPL-викания на ядрото на Linux

Кристоф Хелвиг (Christoph Hellwig), известен като разработчик на ядрото на Linux, който някога е бил част от управителния технически комитет на Linux Foundation и е подал иск в свързаното с GPL съдебно дело с VMware, предложи за да се затегне защитата срещу свързването на проприетарни драйвери с компонентите на ядрото на Linux, които се разпространяват само за модули под лицензия GPL. За да заобиколят ограниченията за експортиране на GPL символи, производителите на проприетарни драйвери използват модул-прослойка, чийто код е отворен и разпространяван под лицензия GPLv2, но функциите са сведени до превод на достъпа на проприетарния драйвер до необходимите API на ядрото, забранени за използване от проприетарния код директно.

За да блокира подобен маневър, Кристоф Хелвиг подготви предлага за ядрото на Linux патчове, които осигуряват наследяване на флаговете, свързани с експортиране на GPL символи. Предложението се свежда до наследяване на флага TAINT_PROPRIETARY_MODULE във всички модули, които импортират символи от модули с този флаг. По този начин, ако GPL модул-прослойка се опита да импортира символи от не-GPL модул, то GPL модулът ще наследи етикета TAINT_PROPRIETARY_MODULE и няма да може да получава достъп до компонентите на ядрото, достъпни само за модули под лицензия GPL, дори ако модулът преди това е импортирал символи от категорията „gplonly“.

При обсъждането също така е било изказано предложено обратното блокиране — ако модулът импортира символи EXPORT_SYMBOL_GPL, всички символи, експортирани от този модул, не трябва да бъдат импортирани от модули, които ясно не заявяват съвместимост с GPL. Тоест, ако модул импортира символи EXPORT_SYMBOL_GPL, всички негови експортирани символи следва да се третират като EXPORT_SYMBOL_GPL. Кристоф Хелвиг написа, е напълно съгласен с това предложение, но такова изменение вероятно няма да бъде одобрено от Линус Торвальдс, тъй като ще доведе до недостъпност за проприетарни драйвери на по-голямата част от подсистемите на ядрото, заради задължителното включване на базови символи, експортирани под GPL при разработката на драйвери.

Предложението е направено в отговор на публикация инженерия от Facebook, серия патчи с реализация на новата подсистема netgpu, позволяваща извършване на директен обмен на данни (DMA
zero-copy) между мрежовата карта и GPU, като в същото време протоколното обработване се извършва от CPU. Недоволство от разработчиците е предизвикано наличността реализации само за проприетарни драйвери NVIDIA чрез предоставените от тези драйвери GPL-обвивки. В отговор на критика автор на пачовете бележи, което подсистемата не е свързана с NVIDIA и нейното поддържане може да бъде осигурено и за софтуерни интерфейси към GPU на AMD и Intel. В крайна сметка, напредъкът на netgpu в ядрото беше признат за невъзможен до появата на работеща поддръжка на базата на свободни драйвери, като AMDGPU, Intel i915 или Nouveau.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster