O desenvolvedor da NVIDIA Roberto Morell propôs a remoção de um marcador para a licença GPL do kernel Linux de uma interface de driver do kernel, aparentemente para permitir o uso da interface com drivers proprietários. Uma discussão sobre o tópico se seguiu e recebeu a participação de diversos desenvolvedores importantes do kernel que expressaram clara oposição à proposta e discutiram quais seriam os desenvolvedores necessários para consentir com essa mudança.
A mudança proposta diz respeito à interface do mecanismo de compartilhamento de buffer de DMA (dma_buf), desenvolvida para drivers do kernel, que foi integrada ao Linux 3.3. Ela oferece infraestrutura para permitir que múltiplos drivers dividam um mesmo buffer de DMA. Isso pode ser útil para sistemas embarcados, permitido, por exemplo, que os drivers de kernel encaminhem imagens capturadas por um smartphone para um componente de codificação de vídeo para compressão e armazenamento e simultaneamente para o núcleo gráfico para a reprodução ao vivo, sem a necessidade de copiar os dados de imagem. A infraestrutura também pode ser útil para soluções gráficas híbridas usadas nos modelos atuais de notebook, permitindo que processadores dedicados de imagem para transmitir imagens que processou com um mínimo de overhead para o núcleo gráfico do processador, que controla a tela. Isso é possível usando a infraestrutura prime do Linux 3.5, que faz uso do mecanismo de compartilhamento de DMA e forma a base para o suporte a gráficos híbridos no X Server 1.13.
A NVIDIA está considerando usar a infraestrutura prime para suportar sua tecnologia de gráficos híbridos Optimus, que é usado em seus drivers proprietários. A NVIDIA também parece querer usar o mecanismo de compartilhamento de DMA em sua série Tegra de processadores embarcados, o suporte Linux desses processadores é uma das áreas em que Morell está trabalhando. Contudo, da mesma maneira que os drivers das placas gráficas para desktop, os drivers para os núcleos gráficos nos processadores Tegra não são abertos.
Ainda não está certo se um driver proprietário pode usar interfaces desenvolvidas para drivers do kernel, e esse debate vem criando controvérsias há alguns anos. Em 2005, alguns desenvolvedores do kernel começaram a exportar interfaces de drivers em qualquer novo código que desenvolvessem usando a função EXPORT_SYMBOL_GPL(), ao invés de EXPORT_SYMBOL(). O nome dessa função pretende tormar claro que somente código disponibilizado com a mesma licença do kernel -- isto é, a GPLv2 ou uma licença compatível -- tem permissão para usar essas interfaces. Umas das principais funções do mecanismo de compartilhamento de buffer DMA está marcado como tal -- a remoção dessa marca já foi discutida quando o código foi integrado pela primeira vez no kernel.
Morell propôs mais uma vez a remoção da marca GPL, instigando mais debate. O veterano Alan Cox foi diretamente contra a mudança. Ele também deixou claro que, como um dos titulares de direito autoral do kernel Linux, ele consideria essa remoção uma violação das seções da GPL sobre trabalhos derivativos se fosse realizada com o objetivo de combinar código proprietário com o kernel. Mauro Carvaloh Chehab, que entre outras coisas mantêm o subsistema de mídia do kernel, contendo os drivers para DVBs e webcams, também expressou oposição à mudança.
Dave Airlie, que mantêm o subsistema DRM e drivers gráficos associados, destacou que, se a alternativa significa que drivers terão que implementar eles mesmo funções comparáveis, ele não liga se a interface é usada por drivers proprietários. Airlie também sugeriu que Morell já pode ter obtido o consentimento de todos os titulares de direito autoral sobre o mecanismo de compartilhamento de DMA para realizar a mudança proposta. Em resposta, Chehab afirmou que esse não parece ser o caso, uma vez que o código para o mecanismo de compartilhamento de DMA também expõe outras partes do código do kernel, incluindo, por exemplo, as interfaces do subsistema de mídia. Portanto, ele acredita que todos os detentores de direitos autorais para esse código também devem aprovar a mudança.
Após 30 horas, com mais de 20 mensagens, a discussão se deu por encerrada na noite de 15 de outubro sem um resultado claro. Ainda não está certo se a proposta será simplesmente esquecida, ou se a mudança será integrada ao kernel mais cedo ou mais tarde apesar das vozes dissidentes, e se for, quais consequências ela terá.
FONTE: Linux Magazine OnLine