ZFS az Ubuntuban: lesz-e licencháború?
A Canonical szerint a jogi oldal rendben van, a fájlrendszer támogatással együtt bekerülhet az Ubuntu következő LTS kiadásába. A talaj azonban továbbra is ingatag a megvalósítás alatt, és egyáltalán nem egyértelmű, a döntés hosszú távon védhető lesz-e.
Régóta várt funkció kerül be gyárilag az Ubuntuba: a Linux-disztribúció április 21-én megjelenő 16.04-es LTS (long term support) kiadása alapértelmezetten tartalmazni fogja a ZFS (Zettabyte File System) fájlrendszer kernelmodult, és az Ubuntu Advantage keretében fizetős, professzionális támogatás is kérhető majd hozzá. Bár az operációs rendszer a 15.10 Willy óta lehetőséget nyújt a ZFS használatára, az nem volt az alapcsomag része, és műszaki támogatást sem kapott, ez nagyvállalati környezetben komoly stigmának számít.
ZFS - ha az integritás számít
A ZFS egy fájlrendszer és egy kötetmenedzser (volume manager) is egyben, amely a Solaris 10-ben debütált 2004-ben. Az akkor hipermodernnek számító megoldás előnyei mára több alternatíva is kezdi utolérni, ennek ellenére az ZFS az egyik legjobb vállalati fájlrendszernek számít. A Sun és később az Oracle önálló tárolót is kiadott a technológiára építve, a ZFS Storage Appliance tagjai gyakorlatilag Solarist futtató, a fájlrendszer előnyeit maximálisan kihasználó célszerverek.
A megoldást a kapacitás és az adatintegritás szempontjai mentén fejlesztette eredetileg a Sun Microsystems. A ZFS 128 bites címzést használ, amivel elméletileg 256 kvintillió zettabájtos lehet a maximális mérete, egy-egy tároló pool 256 zettabájtig (~274 milliárd terabájtig) terjeszkedhet, egy fájl pedig legfeljebb 16 exabájtos (~16 millió terabájtos) lehet. A fejlesztés során kiemelt szempont volt az adatintegritás védelme és a hibajavítás, így minden adat és metaadat ellenőrző összeggel (checksum) védett, és a fájlrendszer a blokkok elérésénél mindig kiszámítja az ellenőrző összeget és összeveti a tárolt megfelelőjével.
Licencproblémák
A Canonical bejelentése alapvetően nem műszaki szempontból érdekes, mert Linux rendszereken a ZFS használata eddig is megoldható volt, legfeljebb nem ilyen könnyen. Az igazi újdonság az, hogy a cég szerint alaposan körüljárták és (legalábbis magukban) feloldották azokat a licencelési ellentéteket, melyek nagyon megnehezítették a fájlrendszer Oracle-ön kívüli fejlesztését és támogatott terjesztését. Lássuk tömören, miről is van szó?
A ZFS a Sun Microsystemsnél született, és 2005. október 31-én lett nyílt forrásúként elérhető az OpenSolaris részeként, a kereskedelmi Solaris 10-be pedig 2006 júniusában került be. Az OpenSolarist a Sun saját CDDL (Common Development and Distribution License) licence alatt adta ki, ami nem kompatibilis a linuxos világ GPL-alapú szemléletével, ez az ellentét pedig azóta is nehezíti az elvben nyílt forrású ZFS helyzetét. Az eredeti forráskódból született módosításoknak (forkok, kiegészítők) szintén CDDL licenc alatt élnek tovább, és bár komponensként lehetnek részei nagyobb és más licencfeltételeket is tartalmazó megoldások (például disztribúciók) részei, a GNU GPLv2 alatt futó Linux kernelbe nem kerülhetnek be, mert ez a ZFS "újralicencelésének", a CDDL felülírásának számítana.
Az OpenSolaris megjelenése után néhány évvel elindult a ZFS on Linux fejlesztése, ami a fájlrendszer kernelspace-ben futó linuxos implementációja (az azt megelőző FUSE-os, tehát userspace-es megoldással ellentétben). A fejlesztés oroszlánrészét az amerikai Védelmi Minisztérium finanszírozásában a foglalkozó Lawrence Livermore Nemzeti Laboratórium végezte (a szimulációs munkákhoz szükséges szuperszámítógépekhez), az első stabil kiadás 2013-ban jelent meg, számos egyedi fejlesztéssel (és fejlődése azóta is folyamatos) – viszont még mindig hordoz sunos örökséget. Így hiába került be az OpenZFS kezdeményezés ernyője alá, ami összefogja a különböző portok fejlesztését, a kódbázis több eleme továbbra is CDDL licenc alá tartozik.
Az Oracle 2009-ben felvásárolta a Sunt, 2010-ben leállította az OpenSolaris projektet, a Solarist "bezárta", a fájlrendszer további fejlesztései pedig rendszerspecifikusak lettek, így máshol nem hasznosíthatóak. Amíg viszont az egyes portok tartalmaznak a Suntól származó kódot (márpedig tartalmaznak, hiszen portok és nem alapoktól újraírt fejlesztések), addig az Oracle megpróbálhatja érvényesíteni a CDDL-ben foglalt feltételeket, az pedig nem teljesen egyértelmű, hogy a Canonical "minden rendben" álláspontját bíróság előtt meg tudja-e védeni.
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
Jogi eljárásra pedig akár sor is kerülhet, az Oracle jogérvényesítési előéletét ismerve egyáltalán nem lenne meglepő egy ilyen lépés a vállalattól. Azzal, hogy a Canonical "forintosítható", fizetős támogatással elérhető formába öntötte a ZFS on Linuxot, egyben célponttá is tette magát. A ZFS on Linux külön felhívja a licenckonfliktusra a figyelmet, bár itt az szerepel, hogy a bináris modulként történő terjesztést egyik licencfeltétel szabályozás sem gátolja.
Hol a határ?
Itt jön a fent említett gócpont magyarázata: a GPLv2 derivatív feltételeit és a kernel valamint a különálló kernelmodulokban megvalósított funkciók kapcsolatát a Canonical úgy értelmezi, hogy lehetősége legyen erre a lépésre. A cég szerint ugyanis a zfs.ko modul a Linux kernellel nem áll származékos kapcsolatban, hanem egy teljesen önálló egység, így nem vonatkozik rá a GPLv2 licenc, amely felülírná a Sun-féle CDDL-t. Az érvelés viszont egy olyan érzékeny témát feszeget, ami mellett és ellen is számos érv született az elmúlt években.
Kódbázisát tekintve a ZFS kernelmodul tényleg nem kötődik a Linux kernelhez, így csupán ez alapján meghúzható egy határvonal a CDDL és a GPLv2 között. Ami azonban a funkcionális kapcsolatot illeti, egyáltalán nem ilyen egyértelmű a helyzet. A GPLv2 ugyanis nem csak a kód, hanem a funkcionális összetartozás alapján is próbál irányadó lenni – azért csak próbál, mert a szövegezés nem definiálja feketén-fehéren ezt a területet. Az tiszta sor, hogy a GPLv2 licenc alá szoftverek részeit vagy egészét tartalmazó, vagy abból mondjuk architekturálisan származó alkotásoknak is örökölnie kell ezt a licencet. A szintén a feltételekben szereplő, az egyes komponesek egymástól "ésszerű [mértékű] függetlensége" esetén ezt a követelményt érvénytelenítő kitétel viszont nem.
Ez a "jogászkodós" probléma nem újkeletű dolog, és a Linux atyja egyáltalán nem szereti, ha egyes fejlesztők erre hivatkozva nem vonják a GPLv2 ernyője alá szoftverüket. "Manapság a kernelmodulokat lényegében mindenre használják, olyasmire is, ami nagyon is belső kernelfunkciónak minősül, így tönkretéve a történelmileg kialakult és [a licencbe értett] határt a GPL licenc alá tartozó kernel és a támogató modulok között. Vannak esetek, amikor valami annyira Linux-specifikus, hogy egyszerűen nem lenne értelme a kernel nélkül. Ezek az esetek nyilvánvalóan származékos munkának számítanak, és mint olyanoknak, a GPL licenc alá kell esniük" – mondta Linus Torvalds, 2006-ban.
Támadnak a Linux-fejlesztők
A Canonical álláspontját tévesnek tartja a Software Freedom Conservancy is. A neves szervezet hagyományosan sokat foglalkozik a GPL által felvetett kérdésekkel, de jellemzően a GPL-sértéseket igyekszik megakadályozni (amikor egy cég "bezárja" a nyílt forráskódot). Az SFC elemzésének különös súlyt ad, hogy a szervezet rengeteg linuxos szerző támogatásával is rendelkezik, akik személyesen vagy együttesen is szerzői jogi pert indíthatnak a Canonical ellen, ha elmérgesedik a helyzet.
Az SFC elemzése tömören összefoglalja azokat a problémákat, amelyek miatt a CDDL és a GPL inkompatibilisnek számítanak ma, ahogy mindigis annak számítottak a CDDL létrejötte óta. A dokumentum szerint a Canonical lépése nem csak az Oracle szellemi tulajdonát sérti, hanem a Linux-fejlesztők szerzői jogait is, így könnyen lehet, hogy a cég két tűz közé kerül majd. A Linux-közösség haragja pedig még az Oracle-énél is kegyetlenebb lehet: a GPL v2-ben található negyedik, "isten ostora" kitétel szerint a licenc megsértői automatikusan elveszítik a licencet. Ez azt jelenti, hogy elvben a lépéssel a Canonical elvesztheti a Linux kernel GPL-es használatához való jogát - remélhetőleg azért ennyire nem mérgesedik el a vita, hiszen az az Ubuntu végét jelentené.