Linus Torvalds vysvětlil problémy s implementací ZFS pro linuxové jádro

Během diskuse testy plánovač úloh, jeden z účastníků diskuse uvedl příklad, že navzdory prohlášením o nutnosti zachovat kompatibilitu při vývoji linuxového jádra nedávné změny v jádře narušily správný chod modulu "ZFS na Linuxu". Linus Torvalds odpovědělže princip"nezlomit uživatelé“ odkazuje na zachování externích rozhraní jádra používaných aplikacemi v uživatelském prostoru i samotného jádra. Nezahrnuje však samostatně vyvinuté doplňky třetích stran nad jádrem, které nejsou přijaty do hlavního složení jádra, jejichž autoři musí sledovat změny v jádře na vlastní nebezpečí a riziko.

Pokud jde o projekt ZFS na Linuxu, Linus nedoporučoval používat modul zfs kvůli nekompatibilitě licencí CDDL a GPLv2. Situace je taková, že vzhledem k licenční politice Oracle je šance, že ZFS někdy bude moci vstoupit do hlavního jádra, velmi malá. Vrstvy navržené k obcházení nekompatibility licencí, které překládají přístup k funkcím jádra na externí kód, jsou pochybným řešením – pokračují právníci dohadovat se o tom, zda reexport funkcí jádra GPL přes obaly vede k vytvoření odvozeného díla, které musí být distribuováno pod GPL.

Jedinou možností, ve které by Linus souhlasil s přijetím kódu ZFS do hlavního jádra, je získat oficiální povolení od společnosti Oracle, certifikované hlavním právníkem, nebo ještě lépe samotným Larrym Ellisonem. Přechodná řešení, jako jsou vrstvy mezi jádrem a kódem ZFS, nejsou povolena vzhledem k agresivní politice společnosti Oracle týkající se duševního vlastnictví programovacích rozhraní (např. soud se společností Google ohledně Java API). Linus navíc touhu používat ZFS považuje pouze za poctu módě, a nikoli za technické výhody. Benchmarky, které Linus zkoumal, nepodporují ZFS a nedostatek plné podpory nezaručuje dlouhodobou stabilitu.

Připomeňme, že kód ZFS je distribuován pod bezplatnou licencí CDDL, která je nekompatibilní s GPLv2, což neumožňuje integraci ZFS na Linuxu do hlavní větve linuxového jádra, protože míchání kódu pod licencí GPLv2 a CDDL je nepřijatelné. Aby se tato licenční nekompatibilita obešla, rozhodl se projekt ZFS na Linuxu distribuovat celý produkt pod licencí CDDL ve formě samostatně načteného modulu, který je dodáván odděleně od jádra.

Možnost distribuce hotového modulu ZFS v rámci distribučních sad je mezi právníky kontroverzní. Právníci z organizace Software Freedom Conservancy (SFC) zvážitže dodání modulu binárního jádra v distribuci tvoří produkt kombinovaný s GPL s požadavkem, aby výsledné dílo bylo distribuováno pod GPL. Kanoničtí právníci nesouhlasím a uvést, že dodání modulu zfs je přijatelné, pokud je komponenta dodávána jako samostatný modul, odděleně od balíku jádra. Canonical poznamenává, že distribuce již dlouho používají podobný přístup k dodávání proprietárních ovladačů, jako jsou ovladače NVIDIA.

Druhá strana oponuje, že problém s kompatibilitou jádra v proprietárních ovladačích je vyřešen dodáním malé vrstvy distribuované pod licencí GPL (do jádra se nahraje modul pod licencí GPL, který již načítá proprietární komponenty). Pro ZFS lze takovou vrstvu připravit pouze v případě, že jsou poskytovány licenční výjimky od společnosti Oracle. V Oracle Linux je nekompatibilita s GPL vyřešena tím, že Oracle poskytuje licenční výjimku, která odstraňuje požadavek licencovat kombinovanou práci pod CDDL, ale tato výjimka se nevztahuje na jiné distribuce.

Řešením je dodat pouze zdrojový kód modulu v distribuci, což nevede ke sdružování a je považováno za dodání dvou samostatných produktů. V Debianu k tomu slouží systém DKMS (Dynamic Kernel Module Support), ve kterém je modul dodán ve zdrojovém kódu a sestaven v systému uživatele ihned po instalaci balíčku.

Zdroj: opennet.ru

Přidat komentář