Linus Torvalds vysvetlil problémy s implementáciou ZFS pre jadro Linuxu

Počas diskusie testy plánovač úloh, jeden z účastníkov diskusie uviedol príklad, že napriek vyhláseniam o potrebe zachovania kompatibility pri vývoji linuxového jadra, nedávne zmeny v jadre narušili správnu činnosť modulu “ZFS v systéme Linux". Linus Torvalds odpoveďže princíp"nezlomiť Užívatelia“ sa týka zachovania externých rozhraní jadra používaných aplikáciami v užívateľskom priestore, ako aj samotného jadra. Nezahŕňa však samostatne vyvinuté doplnky tretích strán nad jadrom, ktoré nie sú akceptované v hlavnom zložení jadra, ktorých autori musia sledovať zmeny v jadre na vlastné nebezpečenstvo a riziko.

Čo sa týka projektu ZFS na Linuxe, Linus neodporúčal používať modul zfs z dôvodu nekompatibility licencií CDDL a GPLv2. Situácia je taká, že vďaka licenčnej politike Oracle je šanca, že ZFS niekedy bude môcť vstúpiť do hlavného jadra, veľmi malá. Vrstvy navrhnuté na obídenie nekompatibility licencií, ktoré prekladajú prístup k funkciám jadra na externý kód, sú pochybným riešením – pokračujú právnici hádať sa o tom, či reexportovanie funkcií jadra GPL cez obaly vedie k vytvoreniu odvodeného diela, ktoré musí byť distribuované pod GPL.

Jedinou možnosťou, v ktorej by Linus súhlasil s prijatím kódu ZFS do hlavného jadra, je získať oficiálne povolenie od Oracle, certifikované hlavným právnikom, alebo ešte lepšie samotným Larrym Ellisonom. Prechodné riešenia, ako sú vrstvy medzi jadrom a kódom ZFS, nie sú povolené vzhľadom na agresívnu politiku spoločnosti Oracle týkajúcu sa duševného vlastníctva programovacích rozhraní (napr. súdny proces so spoločnosťou Google v súvislosti s rozhraním Java API). Okrem toho Linus považuje túžbu používať ZFS iba za poctu móde a nie za technické výhody. Benchmarky, ktoré Linus skúmal, nepodporujú ZFS a nedostatok plnej podpory nezaručuje dlhodobú stabilitu.

Pripomeňme, že kód ZFS je šírený pod bezplatnou licenciou CDDL, ktorá je nekompatibilná s GPLv2, čo neumožňuje integráciu ZFS na Linuxe do hlavnej vetvy linuxového jadra, keďže miešanie kódu pod licenciami GPLv2 a CDDL je neprijateľné. Na obídenie tejto licenčnej nekompatibility sa projekt ZFS na Linuxe rozhodol distribuovať celý produkt pod licenciou CDDL vo forme samostatne načítaného modulu, ktorý je dodávaný oddelene od jadra.

Možnosť distribúcie hotového modulu ZFS v rámci distribučných balíčkov je medzi právnikmi kontroverzná. Právnici z organizácie Software Freedom Conservancy (SFC) zvážiťže dodanie modulu binárneho jadra v distribúcii tvorí produkt kombinovaný s GPL s požiadavkou, aby výsledné dielo bolo distribuované pod GPL. Kanonických právnikov nesúhlas a uviesť, že dodanie modulu zfs je prijateľné, ak sa komponent dodáva ako samostatný modul, oddelene od balíka jadra. Canonical poznamenáva, že distribúcie už dlho používajú podobný prístup k dodávaniu proprietárnych ovládačov, ako sú ovládače NVIDIA.

Druhá strana oponuje, že problém kompatibility jadra v proprietárnych ovládačoch je vyriešený dodaním malej vrstvy distribuovanej pod licenciou GPL (do jadra sa načíta modul pod licenciou GPL, ktorý už načítava proprietárne komponenty). Pre ZFS je možné takúto vrstvu pripraviť len vtedy, ak sú od Oracle poskytnuté licenčné výnimky. V Oracle Linux je nekompatibilita s GPL vyriešená tým, že Oracle poskytuje licenčnú výnimku, ktorá odstraňuje požiadavku licencovať kombinovanú prácu pod CDDL, ale táto výnimka sa nevzťahuje na iné distribúcie.

Riešením je dodať len zdrojový kód modulu v distribúcii, čo nevedie k viazaniu a považuje sa za dodanie dvoch samostatných produktov. V Debiane na to slúži systém DKMS (Dynamic Kernel Module Support), v ktorom je modul dodaný v zdrojovom kóde a zostavený v systéme používateľa ihneď po inštalácii balíka.

Zdroj: opennet.ru

Pridať komentár