Linus Torvalds explicó los problemas al implementar ZFS para el kernel de Linux

Durante la discusión pruebas programador de tareas, uno de los participantes en la discusión dio un ejemplo de que a pesar de las declaraciones sobre la necesidad de mantener la compatibilidad al desarrollar el kernel de Linux, los cambios recientes en el kernel interrumpieron el correcto funcionamiento del módulo "ZFS en Linux". Linus Torvalds contestadoque el principio "No romper usuarios" se refiere a preservar las interfaces externas del kernel utilizadas por las aplicaciones del espacio de usuario, así como el propio kernel. Pero no cubre los complementos del kernel desarrollados por terceros por separado que no se aceptan en la composición principal del kernel, cuyos autores deben monitorear los cambios en el kernel bajo su propia responsabilidad y riesgo.

En cuanto al proyecto ZFS en Linux, Linus no recomendó utilizar el módulo zfs debido a la incompatibilidad de las licencias CDDL y GPLv2. La situación es que, debido a la política de licencias de Oracle, las posibilidades de que ZFS alguna vez pueda ingresar al núcleo principal son muy pequeñas. Las capas propuestas para evitar la incompatibilidad de licencias, que traducen el acceso a las funciones del kernel a código externo, son una solución dudosa: continúan los abogados discutir sobre si la reexportación de funciones del núcleo GPL a través de contenedores da como resultado la creación de un trabajo derivado que debe distribuirse bajo la GPL.

La única opción en la que Linus aceptaría aceptar el código ZFS en el núcleo principal es obtener el permiso oficial de Oracle, certificado por el abogado principal, o mejor aún, el propio Larry Ellison. No se permiten soluciones intermedias, como capas entre el kernel y el código ZFS, dada la política agresiva de Oracle con respecto a la propiedad intelectual de las interfaces de programación (por ejemplo, ensayo con Google con respecto a la API de Java). Además, Linus considera que el deseo de utilizar ZFS es sólo un homenaje a la moda y no a una ventaja técnica. Los puntos de referencia que examinó Linus no son compatibles con ZFS y la falta de soporte total no garantiza la estabilidad a largo plazo.

Le recordamos que el código ZFS se distribuye bajo una licencia CDDL gratuita, que es incompatible con GPLv2, lo que no permite que ZFS en Linux se integre en la rama principal del kernel de Linux, ya que se mezcla código bajo las licencias GPLv2 y CDDL. es inaceptable. Para evitar esta incompatibilidad de licencias, el proyecto ZFS en Linux decidió distribuir el producto completo bajo una licencia CDDL en forma de un módulo cargado por separado que se suministra por separado del kernel.

La posibilidad de distribuir un módulo ZFS ya preparado como parte de kits de distribución es controvertida entre los abogados. Abogados de Software Freedom Conservancy (SFC) considerarque la entrega de un módulo de kernel binario en la distribución forma un producto combinado con la GPL con el requisito de que el trabajo resultante se distribuya bajo la GPL. Abogados Canónicos en desacuerdo y declarar que la entrega de un módulo zfs es aceptable si el componente se suministra como un módulo autónomo, separado del paquete del kernel. Canonical señala que las distribuciones han utilizado durante mucho tiempo un enfoque similar para suministrar controladores propietarios, como los controladores NVIDIA.

La otra parte responde que el problema de la compatibilidad del kernel en los controladores propietarios se resuelve suministrando una pequeña capa distribuida bajo la licencia GPL (un módulo bajo la licencia GPL se carga en el kernel, que ya carga componentes propietarios). Para ZFS, dicha capa solo se puede preparar si Oracle proporciona excepciones de licencia. En Oracle Linux, Oracle resuelve la incompatibilidad con la GPL al proporcionar una excepción de licencia que elimina el requisito de licenciar el trabajo combinado bajo CDDL, pero esta excepción no se aplica a otras distribuciones.

Una solución alternativa es proporcionar solo el código fuente del módulo en la distribución, lo que no conduce a la agrupación y se considera la entrega de dos productos separados. En Debian se utiliza para ello el sistema DKMS (Dynamic Kernel Module Support), en el que el módulo se suministra en código fuente y se ensambla en el sistema del usuario inmediatamente después de instalar el paquete.

Fuente: opennet.ru

Añadir un comentario