Propuesta para bloquear controladores intermediarios que permiten el acceso a llamadas al núcleo de Linux bajo GPL

Christoph Hellwig, un reconocido desarrollador del núcleo de Linux que alguna vez formó parte del comité técnico de Linux Foundation y fue demandante en relación con la GPL proceso judicial con VMware, propuso endurecer la protección contra el enlace de controladores propietarios con componentes del núcleo de Linux exportados únicamente para módulos bajo licencia GPL. Para eludir la restricción sobre la exportación de símbolos GPL, los fabricantes de controladores propietarios utilizan un módulo intermediario cuyo código es abierto y se distribuye bajo la licencia GPLv2, pero cuya función se limita a traducir el acceso del controlador propietario a los API necesarios del núcleo, que están prohibidos para su uso desde código propietario directamente.

Para bloquear tal maniobra, Christoph Hellwig preparó parches para el núcleo de Linux que aseguran la herencia de las banderas relacionadas con la exportación de símbolos GPL. La propuesta consiste en heredar la bandera TAINT_PROPRIETARY_MODULE en todos los módulos que importen símbolos de módulos con esta bandera. De este modo, si un módulo intermediario GPL intenta importar símbolos de un módulo no GPL, el módulo GPL heredará la etiqueta TAINT_PROPRIETARY_MODULE y no podrá acceder a los componentes del núcleo disponibles solo para módulos bajo licencia GPL, incluso si el módulo había importado anteriormente símbolos de la categoría «gplonly».

En la discusión también se presentó la propuesta de bloqueo inverso: si un módulo importa símbolos EXPORT_SYMBOL_GPL, cualquier símbolo exportado por dicho módulo no debe ser importado por módulos que no declaren explícitamente su compatibilidad con GPL. Es decir, si un módulo importa símbolos EXPORT_SYMBOL_GPL, todos sus símbolos exportados deben ser tratados como EXPORT_SYMBOL_GPL. Christoph Hellwig escribió, está 100% de acuerdo con esta propuesta, pero este cambio no será aprobado por Linus Torvalds, ya que resultará en la inaccesibilidad para los controladores propietarios de la mayor parte de las subsistemas del núcleo, debido a que durante el desarrollo de controladores se utilizan símbolos básicos, exportados bajo GPL.

El cambio se propuso en respuesta a la publicación un ingeniero de Facebook sobre una serie de parches que implementan un nuevo subsistema netgpu, que permite organizar el intercambio directo de datos (DMA
copia cero) entre la tarjeta de red y la GPU, realizando el procesamiento del protocolo mediante el CPU. Descontento de los desarrolladores provocó de diferentes versiones del mismo paquete. A diferencia de las Software Collections, la instalación simultánea la implementación solo para controladores propietarios de NVIDIA a través de la capa GPL proporcionada por dichos controladores. En respuesta a las críticas el autor de los parches especificé, afirmó que el subsistema no está vinculado a NVIDIA y su soporte puede proporcionarse también para las interfaces de programación de GPUs AMD e Intel. En consecuencia, la promoción de netgpu en el núcleo fue considerada imposible hasta que haya soporte funcional basado en controladores libres, como AMDGPU, Intel i915 o Nouveau.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster