În cadrul discuției planificatorului de sarcini, unul dintre participanții la discuție a prezentat exemplul că, în ciuda declarațiilor privind necesitatea păstrării compatibilității în timpul dezvoltării nucleului Linux, modificările recente din nucleu au afectat funcționarea corectă a modulului „„. Linus Torvalds , ceea ce principiul „ „ se referă la păstrarea interfețelor externe ale nucleului, folosite de aplicațiile din spațiul utilizatorului, precum și a nucleului în sine. Dar nu acoperă suprafețele externe dezvoltate separat de nucleu, care nu sunt incluse în compunerea principală a nucleului, autorii cărora, pe propriul risc, trebuie să urmărească modificările din nucleu.
În ceea ce privește proiectul „ZFS pe Linux”, Linus nu a recomandat utilizarea modulului zfs din cauza incompatibilității licențelor CDDL și GPLv2. Situația este astfel încât, din cauza politicii de licențiere a companiei Oracle, șansele ca ZFS să poată intra vreodată în compunerea principală a nucleului sunt foarte mici. Soluțiile propuse pentru a evita incompatibilitatea de licențiere, care traduc accesul la funcțiile nucleului pentru codul extern, sunt o soluție discutabilă - avocații continuă dacă reexportarea funcțiilor GPL ale nucleului prin intermediul wrapper-elor duce la crearea unei lucrări derivate, care trebuie livrată sub licența GPL.
Singura opțiune în care Linus ar accepta să integreze codul ZFS în nucleul principal ar fi obținerea de la compania Oracle a unei permisiuni oficiale, validată de avocatul șef, sau mai bine, de însuși Larry Ellison. Soluțiile intermediare, precum straturile între nucleu și codul ZFS, sunt inacceptabile, având în vedere politica agresivă a Oracle cu privire la proprietatea intelectuală referitoare la interfețele de programare (de exemplu, cu Google în legătură cu Java API). În plus, Linus consideră că tendința de a utiliza ZFS este doar o fashionă, nu o reală avantaj tehnic. Testele de performanță pe care le-a analizat Linus nu susțin ZFS, iar lipsa unui suport complet nu garantează stabilitatea pe termen lung.
Amintim că codul ZFS este distribuit sub licența liberă CDDL, care nu este compatibilă cu GPLv2, ceea ce împiedică integrarea ZFS on Linux în ramura principală a nucleului Linux, deoarece combinarea codului sub licențele GPLv2 și CDDL este inacceptabilă. Pentru a ocoli această incompatibilitate de licență, proiectul 'ZFS on Linux' a decis să distribuie produsul în întregime sub licența CDDL sub forma unui modul descărcabil separat, care este livrat separat de nucleu.
Posibilitatea de a distribui modulul ZFS în cadrul distribuțiilor stârnește controverse între juriști. Juriștii organizației Software Freedom Conservancy (SFC) , susțin că livrarea unui modul binar în distribuție formează un produs combinat cu GPL, cu cerința de a distribui lucrarea finală sub GPL. Juriștii companiei Canonical și afirmă că livrarea modulului zfs este permisă, dacă componenta este livrată sub formă de modul autonom, separat de pachetul cu nucleul. Canonical observă că distribuțiile folosesc de mult timp o abordare similară pentru livrarea driverelor proprietare, cum ar fi driverele NVIDIA.
Cealaltă parte argumentează că problema compatibilității cu nucleul în driver-urile proprietare este rezolvată prin livrarea unei mici interfețe, distribuite sub licența GPL (în nucleu este încărcat un modul sub licența GPL, care deja încarcă componentele proprietare). Pentru ZFS, o astfel de interfață poate fi pregătită doar în cazul în care se oferă excepții de licență din partea companiei Oracle. În Oracle Linux, incompatibilitatea cu GPL este rezolvată prin oferirea de către Oracle a unei excepții de licență, care elimină cerința de licențiere a lucrării combinate sub CDDL, dar această excepție nu se aplică pentru alte distribuții.
Ocolirea este livrarea în distribuție doar a codului sursă al modulului, care nu duce la legare și este considerată livrarea a două produse separate. În Debian, este utilizat sistemul DKMS (Dynamic Kernel Module Support), prin care modulul este livrat sub formă de cod sursă și este compilat pe sistemul utilizatorului, imediat după instalarea pachetului.
Sursa: opennet.ro
