Linus Torvalds shpjegoi problemet me zbatimin e ZFS për kernelin Linux

Gjatë diskutimit testet planifikuesi i detyrave, një nga pjesëmarrësit e diskutimit dha një shembull që pavarësisht deklaratave për nevojën për të ruajtur përputhshmërinë gjatë zhvillimit të kernelit Linux, ndryshimet e fundit në kernel ndërprenë funksionimin e saktë të modulit "ZFS në Linux". Linus Torvalds u përgjigjse parimi "mos thyej përdoruesit" i referohet ruajtjes së ndërfaqeve të jashtme të kernelit të përdorura nga aplikacionet e hapësirës së përdoruesit, si dhe vetë kernelit. Por ai nuk mbulon shtesat e zhvilluara veçmas të palëve të treta mbi kernel që nuk pranohen në përbërjen kryesore të kernelit, autorët e të cilave duhet të monitorojnë ndryshimet në kernel me rrezikun dhe rrezikun e tyre.

Sa i përket projektit ZFS në Linux, Linus nuk rekomandoi përdorimin e modulit zfs për shkak të papajtueshmërisë së licencave CDDL dhe GPLv2. Situata është se për shkak të politikës së licencimit të Oracle, shanset që ZFS të jetë në gjendje të hyjë ndonjëherë në kernelin kryesor janë shumë të vogla. Shtresat e propozuara për të anashkaluar papajtueshmërinë e licencimit, të cilat përkthejnë aksesin në funksionet e kernelit në kodin e jashtëm, janë një zgjidhje e dyshimtë - vazhdojnë avokatët argumentojnë nëse rieksportimi i kernelit GPL funksionon përmes mbështjellësve rezulton në krijimin e një pune derivative që duhet të shpërndahet sipas GPL.

Opsioni i vetëm në të cilin Linus do të pranonte të pranonte kodin ZFS në kernelin kryesor është të marrë leje zyrtare nga Oracle, të certifikuar nga avokati kryesor, ose më mirë akoma, vetë Larry Ellison. Zgjidhjet e ndërmjetme, të tilla si shtresat midis kernelit dhe kodit ZFS, nuk lejohen, duke pasur parasysh politikën agresive të Oracle në lidhje me pronësinë intelektuale të ndërfaqeve programuese (për shembull, gjyq me Google në lidhje me Java API). Për më tepër, Linus e konsideron dëshirën për të përdorur ZFS vetëm një haraç për modën, dhe jo avantazhe teknike. Standardet që ekzaminoi Linus nuk e mbështesin ZFS-në dhe mungesa e mbështetjes së plotë nuk garanton stabilitet afatgjatë.

Ju kujtojmë se kodi ZFS shpërndahet nën një licencë CDDL falas, e cila është e papajtueshme me GPLv2, e cila nuk lejon që ZFS në Linux të integrohet në degën kryesore të kernelit Linux, që nga përzierja e kodit nën licencat GPLv2 dhe CDDL është e papranueshme. Për të anashkaluar këtë papajtueshmëri licencimi, projekti ZFS në Linux vendosi të shpërndajë të gjithë produktin nën një licencë CDDL në formën e një moduli të ngarkuar veçmas që ofrohet veçmas nga kerneli.

Mundësia e shpërndarjes së një moduli të gatshëm ZFS si pjesë e kompleteve të shpërndarjes është e diskutueshme midis avokatëve. Juristët nga Software Freedom Conservancy (SFC) konsiderojqë shpërndarja e një moduli të kernelit binar në shpërndarje formon një produkt të kombinuar me GPL me kërkesën që puna që rezulton të shpërndahet nën GPL. Juristët Kanonikë nuk pajtohem dhe deklaroni se dorëzimi i një moduli zfs është i pranueshëm nëse komponenti ofrohet si një modul i pavarur, i ndarë nga paketa e kernelit. Canonical vëren se shpërndarjet kanë përdorur prej kohësh një qasje të ngjashme për furnizimin e drejtuesve të pronarit, siç janë drejtuesit NVIDIA.

Pala tjetër kundërshton se problemi i përputhshmërisë së kernelit në drejtuesit e pronarit zgjidhet duke furnizuar një shtresë të vogël të shpërndarë sipas licencës GPL (një modul nën licencën GPL ngarkohet në kernel, i cili tashmë ngarkon komponentët e pronarit). Për ZFS, një shtresë e tillë mund të përgatitet vetëm nëse ofrohen përjashtime nga licenca nga Oracle. Në Oracle Linux, papajtueshmëria me GPL zgjidhet nga Oracle duke siguruar një përjashtim licence që heq kërkesën për të licencuar punën e kombinuar sipas CDDL, por ky përjashtim nuk zbatohet për shpërndarjet e tjera.

Një rrugëdalje është të jepni vetëm kodin burimor të modulit në shpërndarje, i cili nuk çon në paketim dhe konsiderohet si shpërndarja e dy produkteve të veçanta. Në Debian, për këtë përdoret sistemi DKMS (Dynamic Kernel Module Support), në të cilin moduli furnizohet në kodin burimor dhe montohet në sistemin e përdoruesit menjëherë pas instalimit të paketës.

Burimi: opennet.ru

Shto një koment