Предложение по блокировке драйверов-прослоек, предоставляющих доступ к GPL-вызовам ядра Linux

4 августа 2020 года

Кристоф Хелвиг (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".

Изменение предложено в ответ на публикацию инженером из Facebook серии патчей с реализацией новой подсистемы netgpu, позволяющей организовать прямой обмен данными (DMAzero-copy) между сетевой картой и GPU, при этом выполняя обработку протокола силами CPU. Недовольство разработчиков вызвала доступность реализации только для проприетарных драйверов NVIDIA через предоставляемую данными драйверами GPL-прослойку. В ответ на критику автор патчей указал, что подсистема не привязана к NVIDIA и её поддержка может быть обеспечена в том числе для программных интерфейсов к GPU AMD и Intel. В итоге продвижение netgpu в ядро было признано невозможным до появления рабочей поддержки на основе свободных драйверов, таких как AMDGPU, Intel i915 или Nouveau.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Предложение по блокировке драйверов-прослоек, предоставляющих доступ к GPL-вызовам ядра Linux», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.