Линус Торвалдс обясни проблемите с внедряването на ZFS за ядрото на Linux

По време на дискусията тестове планировчик на задачи, един от участниците в дискусията даде пример, че въпреки изявленията за необходимостта от поддържане на съвместимост при разработването на ядрото на Linux, последните промени в ядрото нарушиха правилната работа на модула "ZFS на Linux". Линус Торвалдс отговорче принципът "не се счупи потребители" се отнася до запазване на външните интерфейси на ядрото, използвани от приложенията на потребителското пространство, както и на самото ядро. Но то не обхваща отделно разработени добавки на трети страни върху ядрото, които не са приети в основния състав на ядрото, чиито автори трябва да наблюдават промените в ядрото на своя отговорност и риск.

Що се отнася до проекта ZFS on Linux, Линус не препоръчва използването на модула zfs поради несъвместимостта на лицензите CDDL и GPLv2. Ситуацията е, че поради лицензионната политика на Oracle, шансовете ZFS някога да успее да влезе в основното ядро ​​са много малки. Слоевете, предложени за заобикаляне на несъвместимостта на лицензирането, които превеждат достъпа до функциите на ядрото към външен код, са съмнително решение - продължават адвокатите спорят за това дали повторното експортиране на GPL функции на ядрото чрез обвивки води до създаване на производна работа, която трябва да се разпространява под GPL.

Единственият вариант, при който Линус би се съгласил да приеме ZFS кода в основното ядро, е да получи официално разрешение от Oracle, заверено от главния адвокат или още по-добре от самия Лари Елисън. Междинни решения, като слоеве между ядрото и ZFS кода, не са разрешени, като се има предвид агресивната политика на Oracle по отношение на интелектуалната собственост на програмните интерфейси (например, пробен период с Google относно Java API). В допълнение, Линус смята желанието да използва ZFS само за почит към модата, а не за технически предимства. Бенчмарковете, които Linus провери, не поддържат ZFS и липсата на пълна поддръжка не гарантира дългосрочна стабилност.

Нека ви напомним, че ZFS кодът се разпространява под безплатен CDDL лиценз, който е несъвместим с GPLv2, което не позволява ZFS на Linux да бъде интегриран в основния клон на ядрото на Linux, тъй като смесването на код под GPLv2 и CDDL лицензи е неприемливо. За да заобиколи тази лицензионна несъвместимост, проектът ZFS on Linux реши да разпространи целия продукт под CDDL лиценз под формата на отделно зареден модул, който се доставя отделно от ядрото.

Възможността за разпространение на готов ZFS модул като част от комплекти за разпространение е спорна сред юристите. Юристи от Software Freedom Conservancy (SFC) помислетече доставката на двоичен модул на ядрото в дистрибуцията представлява продукт, комбиниран с GPL с изискването получената работа да се разпространява под GPL. Канонични адвокати не се съгласявам и посочва, че доставката на zfs модул е ​​приемлива, ако компонентът се доставя като самостоятелен модул, отделен от пакета на ядрото. Canonical отбелязва, че дистрибуциите отдавна използват подобен подход за предоставяне на собствени драйвери, като драйвери на NVIDIA.

Другата страна контрира, че проблемът със съвместимостта на ядрото в патентованите драйвери се решава чрез предоставяне на малък слой, разпространяван под GPL лиценз (модул под GPL лиценз се зарежда в ядрото, което вече зарежда частни компоненти). За ZFS такъв слой може да бъде подготвен само ако са предоставени изключения за лиценз от Oracle. В Oracle Linux несъвместимостта с GPL се разрешава чрез Oracle предоставяне на лицензно изключение, което премахва изискването за лицензиране на комбинирана работа под CDDL, но това изключение не се прилага за други дистрибуции.

Заобиколно решение е да се предостави само изходният код на модула в дистрибуцията, което не води до групиране и се счита за доставка на два отделни продукта. В Debian за това се използва системата DKMS (Dynamic Kernel Module Support), при която модулът се доставя в изходен код и се сглобява в системата на потребителя веднага след инсталирането на пакета.

Източник: opennet.ru

Добавяне на нов коментар