Linus Torvalds erläuterte die Probleme bei der Implementierung von ZFS für den Linux-Kernel

Während der Diskussion Tests Taskplaner gab einer der Diskussionsteilnehmer ein Beispiel dafür, dass trotz Aussagen über die Notwendigkeit, die Kompatibilität bei der Entwicklung des Linux-Kernels aufrechtzuerhalten, kürzliche Änderungen im Kernel den korrekten Betrieb des Moduls gestört haben.ZFS unter Linux". Linus Torvalds beantwortetdass der Grundsatz „nicht kaputtmachen Benutzer„bezieht sich auf die Beibehaltung der externen Kernel-Schnittstellen, die von User-Space-Anwendungen verwendet werden, sowie des Kernels selbst. Es gilt jedoch nicht für separat entwickelte Add-ons von Drittanbietern über dem Kernel, die nicht in die Hauptzusammensetzung des Kernels aufgenommen werden und deren Autoren Änderungen im Kernel auf eigene Gefahr und Gefahr überwachen müssen.

Für das ZFS-on-Linux-Projekt empfahl Linus aufgrund der Inkompatibilität der CDDL- und GPLv2-Lizenzen die Verwendung des zfs-Moduls nicht. Die Situation ist, dass aufgrund der Lizenzpolitik von Oracle die Chancen, dass ZFS jemals in den Hauptkernel gelangen kann, sehr gering sind. Die zur Umgehung von Lizenzinkompatibilitäten vorgeschlagenen Schichten, die den Zugriff auf Kernelfunktionen in externen Code übersetzen, seien eine zweifelhafte Lösung, so die Anwälte weiter streiten darüber, ob der erneute Export von GPL-Kernelfunktionen über Wrapper zur Erstellung eines abgeleiteten Werks führt, das unter der GPL verteilt werden muss.

Die einzige Möglichkeit, bei der Linus der Aufnahme des ZFS-Codes in den Hauptkernel zustimmen würde, besteht darin, eine offizielle Genehmigung von Oracle einzuholen, die vom Hauptanwalt oder besser noch von Larry Ellison selbst bestätigt werden muss. Zwischenlösungen wie Schichten zwischen dem Kernel und dem ZFS-Code sind aufgrund der aggressiven Richtlinien von Oracle in Bezug auf das geistige Eigentum von Programmierschnittstellen (z. B. Versuch mit Google bezüglich der Java API). Darüber hinaus betrachtet Linus den Wunsch, ZFS zu verwenden, nur als Hommage an die Mode und nicht an technische Vorteile. Die von Linus untersuchten Benchmarks unterstützen ZFS nicht und die fehlende vollständige Unterstützung garantiert keine langfristige Stabilität.

Wir möchten Sie daran erinnern, dass der ZFS-Code unter einer kostenlosen CDDL-Lizenz verteilt wird, die nicht mit GPLv2 kompatibel ist, wodurch ZFS unter Linux nicht in den Hauptzweig des Linux-Kernels integriert werden kann, da Code unter den GPLv2- und CDDL-Lizenzen gemischt wird ist inakzeptabel. Um diese Lizenzinkompatibilität zu umgehen, hat das ZFS-on-Linux-Projekt beschlossen, das gesamte Produkt unter einer CDDL-Lizenz in Form eines separat geladenen Moduls zu vertreiben, das separat vom Kernel bereitgestellt wird.

Die Möglichkeit, ein fertiges ZFS-Modul als Teil von Distributionskits zu verteilen, ist unter Juristen umstritten. Anwälte der Software Freedom Conservancy (SFC) betrachtendass die Lieferung eines binären Kernelmoduls in der Distribution ein mit der GPL kombiniertes Produkt bildet, mit der Anforderung, dass das resultierende Werk unter der GPL vertrieben wird. Kanonische Anwälte nicht zustimmen und geben Sie an, dass die Lieferung eines ZFS-Moduls akzeptabel ist, wenn die Komponente als eigenständiges Modul, getrennt vom Kernelpaket, bereitgestellt wird. Canonical weist darauf hin, dass Distributionen seit langem einen ähnlichen Ansatz verfolgen, um proprietäre Treiber wie NVIDIA-Treiber bereitzustellen.

Die andere Seite kontert, dass das Problem der Kernelkompatibilität bei proprietären Treibern durch die Bereitstellung einer kleinen, unter der GPL-Lizenz verteilten Schicht gelöst wird (ein Modul unter der GPL-Lizenz wird in den Kernel geladen, der bereits proprietäre Komponenten lädt). Für ZFS kann ein solcher Layer nur vorbereitet werden, wenn Lizenzausnahmen von Oracle bereitgestellt werden. In Oracle Linux wird die Inkompatibilität mit der GPL behoben, indem Oracle eine Lizenzausnahme bereitstellt, die die Anforderung zur Lizenzierung kombinierter Arbeiten unter CDDL aufhebt. Diese Ausnahme gilt jedoch nicht für andere Distributionen.

Eine Problemumgehung besteht darin, nur den Quellcode des Moduls in der Distribution bereitzustellen, was nicht zu einer Bündelung führt und als Lieferung zweier separater Produkte betrachtet wird. In Debian wird hierfür das DKMS-System (Dynamic Kernel Module Support) verwendet, bei dem das Modul im Quellcode bereitgestellt und unmittelbar nach der Installation des Pakets auf dem System des Benutzers assembliert wird.

Source: opennet.ru

Kommentar hinzufügen