Linus Torvalds explicou os problemas coa implementación de ZFS para o núcleo de Linux

Durante a discusión probas planificador de tarefas, un dos participantes na discusión deu un exemplo de que, a pesar das declaracións sobre a necesidade de manter a compatibilidade ao desenvolver o núcleo de Linux, os cambios recentes no núcleo perturbaron o correcto funcionamento do módulo "ZFS en Linux". Linus Torvalds respondeuque o principio"non romper usuarios" refírese a preservar as interfaces externas do núcleo empregadas polas aplicacións do espazo de usuario, así como o propio núcleo. Pero non cobre complementos de terceiros desenvolvidos por separado sobre o núcleo que non se aceptan na composición principal do núcleo, cuxos autores deben supervisar os cambios no núcleo baixo o seu propio risco e risco.

En canto ao proxecto ZFS en Linux, Linus non recomendou usar o módulo zfs debido á incompatibilidade das licenzas CDDL e GPLv2. A situación é que, debido á política de licenzas de Oracle, as posibilidades de que ZFS poida entrar no núcleo principal son moi pequenas. As capas propostas para evitar a incompatibilidade de licenzas, que traducen o acceso ás funcións do núcleo a código externo, son unha solución dubidosa - continúan os avogados argumentar sobre se a reexportación das funcións do núcleo da GPL a través de envoltorios resulta na creación dun traballo derivado que debe ser distribuído baixo a GPL.

A única opción na que Linus aceptaría aceptar o código ZFS no núcleo principal é obter o permiso oficial de Oracle, certificado polo avogado principal, ou mellor aínda, o propio Larry Ellison. Non se permiten solucións intermedias, como as capas entre o núcleo e o código ZFS, dada a política agresiva de Oracle sobre a propiedade intelectual das interfaces de programación (por exemplo, xuízo con Google sobre a API de Java). Ademais, Linus considera o desexo de usar ZFS só unha homenaxe á moda, e non vantaxes técnicas. Os puntos de referencia que Linus examinou non admiten ZFS e a falta de soporte completo non garante a estabilidade a longo prazo.

Lembramos que o código ZFS distribúese baixo unha licenza CDDL gratuíta, que é incompatible con GPLv2, que non permite integrar ZFS en Linux na rama principal do núcleo de Linux, xa que mestura código baixo as licenzas GPLv2 e CDDL. é inaceptable. Para evitar esta incompatibilidade de licenzas, o proxecto ZFS en Linux decidiu distribuír todo o produto baixo unha licenza CDDL en forma de módulo cargado por separado que se subministra por separado do núcleo.

A posibilidade de distribuír un módulo ZFS preparado como parte dos kits de distribución é controvertida entre os avogados. Avogados da Software Freedom Conservancy (SFC) considereque a entrega dun módulo do núcleo binario na distribución forma un produto combinado coa GPL co requisito de que o traballo resultante se distribúa baixo a GPL. Avogados Canónicos non están de acordo e indica que a entrega dun módulo zfs é aceptable se o compoñente se proporciona como un módulo autónomo, separado do paquete do núcleo. Canonical sinala que as distribucións utilizaron durante moito tempo un enfoque similar para proporcionar controladores propietarios, como controladores NVIDIA.

O outro lado contesta que o problema da compatibilidade do núcleo nos controladores propietarios se soluciona proporcionando unha pequena capa distribuída baixo a licenza GPL (un módulo baixo a licenza GPL cárgase no núcleo, que xa carga compoñentes propietarios). Para ZFS, esta capa só se pode preparar se se proporcionan excepcións de licenza de Oracle. En Oracle Linux, a incompatibilidade coa GPL é resolta por Oracle proporcionando unha excepción de licenza que elimina o requisito de licenciar o traballo combinado baixo CDDL, pero esta excepción non se aplica a outras distribucións.

Unha solución alternativa é proporcionar só o código fonte do módulo na distribución, o que non leva á agrupación e considérase a entrega de dous produtos separados. En Debian, utilízase para iso o sistema DKMS (Dynamic Kernel Module Support), no cal o módulo se proporciona en código fonte e se monta no sistema do usuario inmediatamente despois de instalar o paquete.

Fonte: opennet.ru

Engadir un comentario