Linus Torvalds explicó cuáles son los problemas de la implementación de ZFS para el núcleo de Linux

Durante la discusión de pruebas del planificador de tareas, uno de los participantes en la discusión citó el ejemplo de que, a pesar de las declaraciones sobre la necesidad de mantener la compatibilidad en el desarrollo del núcleo de Linux, los recientes cambios en el núcleo han interrumpido el funcionamiento correcto del módulo «ZFS on Linux». Linus Torvalds en detalle, que el principio «no romper usuarios» se refiere a la conservación de las interfaces externas del núcleo usadas por aplicaciones en el espacio de usuario, así como del propio núcleo. Pero esto no abarca las extensiones de terceros desarrolladas por separado sobre el núcleo, que no han sido aceptadas en la versión principal del núcleo, cuyos autores deben, bajo su propio riesgo, supervisar los cambios en el núcleo.

En cuanto al proyecto «ZFS on Linux», Linus no recomendó el uso del módulo zfs debido a la incompatibilidad entre las licencias CDDL y GPLv2. La situación es tal que, debido a la política de licencias de la empresa Oracle, las posibilidades de que ZFS pueda entrar en la versión principal del núcleo son muy escasas. Las capas propuestas para sortear la incompatibilidad de licencias, que traducen el acceso a las funciones del núcleo para código externo, son una solución dudosa: los abogados continúan discutiendo si la reexportación de funciones del núcleo bajo GPL a través de capas crea un trabajo derivado que debe ser entregado bajo la licencia GPL.

La única opción bajo la cual Linus aceptaría el código de ZFS en el núcleo principal sería obtener un permiso oficial de la compañía Oracle, validado por el abogado principal, o mejor aún, por el mismo Larry Ellison. Soluciones intermedias, como las capas entre el núcleo y el código de ZFS, son inaceptables, dado el agresivo enfoque de Oracle hacia la propiedad intelectual sobre las interfaces de programación (como ejemplo, el litigio con Google sobre Java API). Además, Linus considera que el interés por usar ZFS es solo una cuestión de moda, y no de ventajas técnicas. Las pruebas de rendimiento que Linus ha revisado no favorecen a ZFS, y la falta de un soporte adecuado no garantiza la estabilidad a largo plazo.

Recordemos que el código ZFS se distribuye bajo la licencia libre CDDL, que no es compatible con GPLv2, lo que impide la integración de ZFS on Linux en la rama principal del núcleo de Linux, ya que la mezcla de código bajo las licencias GPLv2 y CDDL no es aceptable. Para evitar esta incompatibilidad de licencia, el proyecto "ZFS on Linux" decidió distribuir el producto en su totalidad bajo la licencia CDDL en forma de un módulo que se carga por separado del núcleo.

La posibilidad de distribuir el módulo ZFS listo para usar como parte de las distribuciones es motivo de debate entre los abogados. Los abogados de la organización Software Freedom Conservancy (SFC) consideran, afirman que la entrega de un módulo binario del núcleo en una distribución forma un producto combinado con GPL, exigiendo que la obra final se distribuya bajo GPL. Los abogados de Canonical no están de acuerdo sostienen que la entrega del módulo ZFS está permitida si el componente se entrega en forma de un módulo autosuficiente, separado del paquete del núcleo. Canonical señala que las distribuciones han utilizado este enfoque desde hace tiempo para la entrega de controladores propietarios, como los controladores de NVIDIA.

La otra parte argumenta que el problema de compatibilidad con el núcleo en los controladores propietarios se resuelve mediante la entrega de una pequeña capa, distribuida bajo licencia GPL (se carga en el núcleo un módulo bajo GPL, que carga los componentes propietarios). Para ZFS, esta capa solo se puede preparar si Oracle proporciona excepciones de licencia. En Oracle Linux, la incompatibilidad con GPL se resuelve mediante la concesión por parte de Oracle de una excepción de licencia que elimina el requisito de licenciamiento de la obra combinada bajo CDDL, pero esta excepción no se aplica a otras distribuciones.

Una maniobra alternativa es distribuir en la distribución solo los códigos fuente del módulo, lo que no conduce a la vinculación y se considera como la entrega de dos productos separados. En Debian, esto se realiza a través del sistema DKMS (Soporte para Módulos de Núcleo Dinámicos), donde el módulo se entrega en códigos fuente y se compila en el sistema del usuario, inmediatamente después de la instalación del paquete.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster