Linus Torvalds a expliqué les problèmes liés à l'implémentation de ZFS pour le noyau Linux

Pendant la discussion tests planificateur de tâches, l'un des participants à la discussion a donné un exemple selon lequel malgré les déclarations sur la nécessité de maintenir la compatibilité lors du développement du noyau Linux, les changements récents dans le noyau ont perturbé le bon fonctionnement du module "ZFS sur Linux". Linus Torvalds répondreque le principe "ne pas casser utilisateurs" fait référence à la préservation des interfaces externes du noyau utilisées par les applications de l'espace utilisateur ainsi que du noyau lui-même. Mais il ne couvre pas les modules complémentaires tiers développés séparément sur le noyau qui ne sont pas acceptés dans la composition principale du noyau, dont les auteurs doivent surveiller les modifications apportées au noyau à leurs risques et périls.

Quant au projet ZFS sur Linux, Linus n'a pas recommandé d'utiliser le module zfs en raison de l'incompatibilité des licences CDDL et GPLv2. La situation est qu'en raison de la politique de licence d'Oracle, les chances que ZFS puisse un jour entrer dans le noyau principal sont très faibles. Les couches proposées pour contourner l'incompatibilité des licences, qui traduisent l'accès aux fonctions du noyau en code externe, sont une solution douteuse - continuent les avocats argumenter sur la question de savoir si la réexportation des fonctions du noyau GPL via des wrappers entraîne la création d'une œuvre dérivée qui doit être distribuée sous GPL.

La seule option dans laquelle Linus accepterait d'accepter le code ZFS dans le noyau principal est d'obtenir l'autorisation officielle d'Oracle, certifiée par l'avocat principal, ou mieux encore, Larry Ellison lui-même. Les solutions intermédiaires, telles que les couches entre le noyau et le code ZFS, ne sont pas autorisées, compte tenu de la politique agressive d'Oracle concernant la propriété intellectuelle des interfaces de programmation (par exemple, procès avec Google concernant l'API Java). De plus, Linus considère le désir d'utiliser ZFS uniquement comme un hommage à la mode, et non comme un avantage technique. Les benchmarks examinés par Linus ne prennent pas en charge ZFS, et le manque de support complet ne garantit pas la stabilité à long terme.

Rappelons que le code ZFS est distribué sous licence CDDL gratuite, incompatible avec la GPLv2, ce qui ne permet pas d'intégrer ZFS sous Linux dans la branche principale du noyau Linux, puisque mélangeant du code sous licences GPLv2 et CDDL est inacceptable. Pour contourner cette incompatibilité de licence, le projet ZFS sur Linux a décidé de distribuer l'intégralité du produit sous licence CDDL sous la forme d'un module chargé séparément et fourni séparément du noyau.

La possibilité de distribuer un module ZFS prêt à l'emploi dans le cadre de kits de distribution est controversée parmi les avocats. Avocats du Software Freedom Conservancy (SFC) considérerque la livraison d'un module de noyau binaire dans la distribution forme un produit combiné avec la GPL avec l'exigence que le travail résultant soit distribué sous la GPL. Avocats canoniques en désaccord et indiquez que la livraison d'un module zfs est acceptable si le composant est fourni en tant que module autonome, distinct du package du noyau. Canonical note que les distributions utilisent depuis longtemps une approche similaire pour fournir des pilotes propriétaires, tels que les pilotes NVIDIA.

L'autre côté rétorque que le problème de compatibilité du noyau dans les pilotes propriétaires est résolu en fournissant une petite couche distribuée sous licence GPL (un module sous licence GPL est chargé dans le noyau, qui charge déjà des composants propriétaires). Pour ZFS, une telle couche ne peut être préparée que si des exceptions de licence sont fournies par Oracle. Dans Oracle Linux, l'incompatibilité avec la GPL est résolue par Oracle en fournissant une exception de licence qui supprime l'obligation d'obtenir une licence pour les travaux combinés sous CDDL, mais cette exception ne s'applique pas aux autres distributions.

Une solution de contournement consiste à fournir uniquement le code source du module dans la distribution, ce qui n'entraîne pas de regroupement et est considéré comme la livraison de deux produits distincts. Dans Debian, on utilise pour cela le système DKMS (Dynamic Kernel Module Support), dans lequel le module est fourni en code source et assemblé sur le système de l'utilisateur immédiatement après l'installation du paquet.

Source: opennet.ru

Ajouter un commentaire