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

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

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

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

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

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

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

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

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster