Oferta de bloqueio de drivers de camada que fornecem acesso a chamadas GPL do núcleo do Linux

Christoph Hellwig, um conhecido desenvolvedor do núcleo Linux, que foi membro do comitê técnico da Linux Foundation e atuou como demandante em um processo relacionado à GPL judicial com a VMware, um patch escrito à mão para correção. para reforçar a proteção contra o vínculo de drivers proprietários a componentes do núcleo Linux, exportados apenas para módulos sob licença GPL. Para contornar a limitação na exportação de símbolos GPL, os fabricantes de drivers proprietários usam um módulo intermediário, cujo código é aberto e distribuído sob a licença GPLv2, mas cujas funções se resumem à tradução de acesso do driver proprietário às APIs necessárias do núcleo, proibidas para uso a partir de código proprietário diretamente.

Para bloquear esse tipo de manobra, Christoph Hellwig preparou para o núcleo Linux patches que garantem a herança de bandeiras relacionadas à exportação de símbolos GPL. A proposta consiste na herança da bandeira TAINT_PROPRIETARY_MODULE em todos os módulos que importam símbolos de módulos com essa bandeira. Assim, se o módulo intermediário GPL tentar importar símbolos de um módulo não GPL, o módulo GPL herdará a marca TAINT_PROPRIETARY_MODULE e não poderá acessar componentes do núcleo disponíveis apenas para módulos sob licença GPL, mesmo que o módulo tenha importado anteriormente símbolos da categoria "gplonly".

Durante a discussão, também foi sugerido uma proposta de bloqueio reverso — se um módulo importar símbolos EXPORT_SYMBOL_GPL, quaisquer símbolos exportados por esse módulo não devem ser importados por módulos que não declaram explicitamente sua compatibilidade com GPL. Ou seja, se um módulo importar símbolos EXPORT_SYMBOL_GPL, todos os seus símbolos exportados devem ser tratados como EXPORT_SYMBOL_GPL. Christoph Hellwig escreveu, que concorda 100% com essa proposta, mas tal mudança não será aceita por Linus Torvalds, pois levará à inacessibilidade para drivers proprietários da maior parte das subsistemas do núcleo, devido ao fato de que, ao desenvolver drivers, símbolos básicos exportados sob GPL são incorporados.

A alteração foi proposta em resposta a publicação um engenheiro do Facebook com uma série de patches implementando um novo subsistema netgpu, permitindo a organização de troca direta de dados (DMA
zero-copy) entre a placa de rede e a GPU, enquanto a manipulação do protocolo é realizada pela CPU. A insatisfação dos desenvolvedores foi provocada pela disponibilidade implementações apenas para drivers proprietários da NVIDIA através da camada GPL fornecida por esses drivers. Em resposta a críticas autor dos patches referiu, que o subsistema não está vinculado à NVIDIA e seu suporte pode ser garantido também para interfaces de programação de GPUs AMD e Intel. No final, a promoção do netgpu no núcleo foi considerada impossível até que aparecesse suporte funcional baseado em drivers livres, como AMDGPU, Intel i915 ou Nouveau.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster