Linus Torvalds legde de problemen uit bij het implementeren van ZFS voor de Linux-kernel

Tijdens de discussie testen taakplanner gaf een van de deelnemers aan de discussie een voorbeeld dat ondanks uitspraken over de noodzaak om compatibiliteit te behouden bij het ontwikkelen van de Linux-kernel, recente veranderingen in de kernel de juiste werking van de module verstoorden "ZFS op Linux". Linus Torvalds antwoorddat het principe "Maak het niet kapot gebruikers" verwijst naar het behoud van de externe kernelinterfaces die worden gebruikt door toepassingen in de gebruikersruimte, evenals de kernel zelf. Maar het heeft geen betrekking op afzonderlijk ontwikkelde add-ons van derden voor de kernel die niet worden geaccepteerd in de hoofdsamenstelling van de kernel, waarvan de auteurs veranderingen in de kernel op eigen risico en risico moeten monitoren.

Wat het ZFS op Linux-project betreft, raadde Linus het gebruik van de zfs-module niet aan vanwege de incompatibiliteit van de CDDL- en GPLv2-licenties. De situatie is dat vanwege het licentiebeleid van Oracle de kans dat ZFS ooit de hoofdkernel zal kunnen betreden zeer klein is. De lagen die worden voorgesteld om de incompatibiliteit van licenties te omzeilen, die de toegang tot kernelfuncties vertalen naar externe code, zijn een twijfelachtige oplossing - vervolgen advocaten ruzie maken over de vraag of het opnieuw exporteren van GPL-kernelfuncties via wrappers resulteert in de creatie van een afgeleid werk dat onder de GPL moet worden gedistribueerd.

De enige optie waarbij Linus zou instemmen met het accepteren van de ZFS-code in de hoofdkernel is het verkrijgen van officiële toestemming van Oracle, gecertificeerd door de hoofdadvocaat, of beter nog, Larry Ellison zelf. Tussenoplossingen, zoals lagen tussen de kernel en ZFS-code, zijn niet toegestaan, gezien het agressieve beleid van Oracle ten aanzien van intellectueel eigendom van programmeerinterfaces (bijvoorbeeld proces met Google over de Java API). Bovendien beschouwt Linus de wens om ZFS te gebruiken alleen als een eerbetoon aan mode, en niet als technische voordelen. De benchmarks die Linus heeft onderzocht ondersteunen ZFS niet, en het gebrek aan volledige ondersteuning garandeert geen stabiliteit op de lange termijn.

Laten we u eraan herinneren dat de ZFS-code wordt gedistribueerd onder een gratis CDDL-licentie, die incompatibel is met GPLv2, waardoor ZFS op Linux niet kan worden geïntegreerd in de hoofdtak van de Linux-kernel, aangezien code wordt gemengd onder de GPLv2- en CDDL-licenties is onaanvaardbaar. Om deze licentie-incompatibiliteit te omzeilen, besloot het ZFS on Linux-project het volledige product onder een CDDL-licentie te distribueren in de vorm van een afzonderlijk geladen module die afzonderlijk van de kernel wordt geleverd.

De mogelijkheid om een ​​kant-en-klare ZFS-module te distribueren als onderdeel van distributiekits is controversieel onder advocaten. Advocaten van de Software Freedom Conservancy (SFC) overwegendat de levering van een binaire kernelmodule in de distributie een product vormt gecombineerd met de GPL met de eis dat het resulterende werk onder de GPL wordt gedistribueerd. Canonieke advocaten niet eens en stellen dat de levering van een zfs-module acceptabel is als de component wordt geleverd als een op zichzelf staande module, los van het kernelpakket. Canonical merkt op dat distributies al lang een vergelijkbare aanpak gebruiken om eigen stuurprogramma's te leveren, zoals NVIDIA-stuurprogramma's.

De andere kant antwoordt dat het probleem van kernelcompatibiliteit in propriëtaire stuurprogramma's is opgelost door een kleine laag aan te bieden die wordt gedistribueerd onder de GPL-licentie (een module onder de GPL-licentie wordt in de kernel geladen, die al propriëtaire componenten laadt). Voor ZFS kan zo’n laag alleen worden voorbereid als er licentie-uitzonderingen vanuit Oracle worden aangeleverd. In Oracle Linux wordt de incompatibiliteit met de GPL opgelost doordat Oracle een licentie-uitzondering biedt die de vereiste om gecombineerd werk onder CDDL te licentiëren wegneemt, maar deze uitzondering is niet van toepassing op andere distributies.

Een workaround is om alleen de broncode van de module mee te leveren in de distributie, dit leidt niet tot bundeling en wordt beschouwd als de levering van twee afzonderlijke producten. In Debian wordt hiervoor het DKMS-systeem (Dynamic Kernel Module Support) gebruikt, waarbij de module in broncode wordt aangeleverd en direct na installatie van het pakket op het systeem van de gebruiker wordt geassembleerd.

Bron: opennet.ru

Voeg een reactie