Linus Torvalds explicou quais são os problemas na implementação do ZFS para o kernel do Linux

Durante a discussão dos testes do planejador de tarefas, um dos participantes da discussão trouxe um exemplo de que, apesar das alegações sobre a necessidade de manter a compatibilidade ao desenvolver o núcleo do Linux, as mudanças recentes no núcleo interromperam o funcionamento correto do módulo «ZFS on Linux«. Linus Torvalds de forma muito detalhada, que o princípio «não quebrar dos usuários» se refere à preservação das interfaces externas do núcleo, utilizadas pelas aplicações no espaço do usuário, assim como do próprio núcleo. Mas ele não cobre as camadas de terceiros desenvolvidas separadamente acima do núcleo, que não foram aceitas na composição principal do núcleo, cujos autores devem assumir o risco de acompanhar as mudanças no núcleo por conta própria.

No que diz respeito ao projeto «ZFS no Linux», Linus não recomendou o uso do módulo zfs devido à incompatibilidade das licenças CDDL e GPLv2. A situação é tal que, devido à política de licenciamento da Oracle, as chances de que o ZFS possa um dia entrar na composição principal do núcleo são muito baixas. As camadas propostas para contornar a incompatibilidade de licenciamento, que transmitem o acesso às funções do núcleo para o código externo, são uma solução questionável — os advogados continuam discutindo se a reexportação das funções do núcleo GPL através de wrappers constitui uma obra derivada, que deve ser fornecida sob a licença GPL.

A única situação em que Linus aceitaria o código ZFS no núcleo principal é se obtivesse uma autorização oficial da Oracle, certificada pelo principal advogado da empresa, ou melhor, pelo próprio Larry Ellison. Soluções intermediárias, como as camadas entre o núcleo e o código ZFS, são inaceitáveis, considerando a política agressiva da Oracle em relação à propriedade intelectual das interfaces de programação (como exemplo, a disputa com o Google sobre a API do Java). Além disso, Linus considera a intenção de usar o ZFS mais uma questão de moda, do que vantagens técnicas. Os testes de desempenho que Linus analisou não favorecem o ZFS, e a falta de um suporte robusto não garante a estabilidade a longo prazo.

Vale lembrar que o código ZFS é distribuído sob a licença livre CDDL, que é incompatível com a GPLv2, o que impede a integração do ZFS no Linux ao ramo principal do núcleo do Linux, já que a mistura de códigos sob as licenças GPLv2 e CDDL não é permitida. Para contornar essa incompatibilidade de licenciamento, o projeto 'ZFS on Linux' decidiu distribuir o produto inteiramente sob a licença CDDL na forma de um módulo separado que é fornecido à parte do núcleo.

A possibilidade de distribuir o módulo pronto do ZFS como parte das distribuições gera controvérsias entre os advogados. Advogados da organização Software Freedom Conservancy (SFC) acreditam, sustentam que a entrega de um módulo binário do núcleo em uma distribuição cria um produto combinado com GPL, exigindo a distribuição do trabalho final sob a GPL. Advogados da Canonical não concordam afirmam que a entrega do módulo zfs é permitida, desde que o componente seja fornecido como um módulo autossuficiente, separado do pacote do núcleo. A Canonical observa que as distribuições há muito utilizam esse tipo de abordagem para fornecer drivers proprietários, como os drivers NVIDIA.

O outro lado argumenta que o problema de compatibilidade com o núcleo em drivers proprietários é resolvido com a entrega de uma pequena camada, que é distribuída sob a licença GPL (um módulo sob a licença GPL é carregado para o núcleo, que então carrega os componentes proprietários). Para o ZFS, uma camada como essa só pode ser preparada sob a condição de concessão de exceções de licenciamento pela Oracle. No Oracle Linux, a incompatibilidade com a GPL é resolvida pela concessão de uma exceção de licenciamento pela Oracle, que elimina a exigência de licenciamento do trabalho combinado sob a CDDL, mas essa exceção não se aplica a outras distribuições.

Uma manobra alternativa é fornecer na distribuição apenas os códigos-fonte do módulo, o que não leva a um vínculo e é considerado como a entrega de dois produtos separados. No Debian, isso é realizado através do sistema DKMS (Dynamic Kernel Module Support), onde o módulo é fornecido em códigos-fonte e compilado na máquina do usuário, logo após a instalação do pacote.

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