Linus Torvalds a explicat problemele cu implementarea ZFS pentru nucleul Linux

În timpul discuţiei teste planificator de sarcini, unul dintre participanții la discuție a dat un exemplu că, în ciuda declarațiilor despre necesitatea de a menține compatibilitatea la dezvoltarea nucleului Linux, modificările recente ale nucleului au perturbat funcționarea corectă a modulului "ZFS pe Linux". Linus Torvalds răspunscă principiul"nu rupe utilizatori" se referă la păstrarea interfețelor externe ale nucleului utilizate de aplicațiile din spațiul utilizatorului, precum și a nucleului în sine. Dar nu acoperă suplimentele terțe dezvoltate separat asupra nucleului, care nu sunt acceptate în compoziția principală a nucleului, ai căror autori trebuie să monitorizeze modificările din nucleu pe riscul și riscul lor.

Î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 că, datorită politicii de licențiere a Oracle, șansele ca ZFS să poată intra vreodată în nucleul principal sunt foarte mici. Straturile propuse pentru a ocoli incompatibilitatea de licențiere, care traduc accesul la funcțiile kernelului în cod extern, sunt o soluție dubioasă - continuă avocații argumentează despre dacă reexportarea funcțiilor kernelului GPL prin pachete are ca rezultat crearea unei lucrări derivate care trebuie distribuită sub GPL.

Singura opțiune în care Linus ar fi de acord să accepte codul ZFS în nucleul principal este să obțină permisiunea oficială de la Oracle, certificată de avocatul principal, sau mai bine zis, însuși Larry Ellison. Soluțiile intermediare, cum ar fi straturile dintre kernel și codul ZFS, nu sunt permise, având în vedere politica agresivă a Oracle privind proprietatea intelectuală a interfețelor de programare (de exemplu, proces cu Google în ceea ce privește API-ul Java). În plus, Linus consideră dorința de a folosi ZFS doar un tribut adus modei, și nu avantaje tehnice. Benchmark-urile examinate de Linus nu acceptă ZFS, iar lipsa suportului complet nu garantează stabilitatea pe termen lung.

Să vă reamintim că codul ZFS este distribuit sub o licență CDDL gratuită, care este incompatibilă cu GPLv2, care nu permite ca ZFS pe Linux să fie integrat în ramura principală a nucleului Linux, deoarece amestecul codului sub licențe GPLv2 și CDDL este inacceptabil. Pentru a evita această incompatibilitate de licențiere, proiectul ZFS pe Linux a decis să distribuie întregul produs sub o licență CDDL sub forma unui modul încărcat separat, care este furnizat separat de nucleu.

Posibilitatea de a distribui un modul ZFS gata făcut ca parte a truselor de distribuție este controversată în rândul avocaților. Avocați de la Software Freedom Conservancy (SFC) lua în considerarecă livrarea unui modul nucleu binar în distribuție formează un produs combinat cu GPL, cu cerința ca munca rezultată să fie distribuită sub GPL. Avocații canonici Nu sunt de acord și afirmă că livrarea unui modul zfs este acceptabilă dacă componenta este furnizată ca un modul autonom, separat de pachetul kernel. Canonical observă că distribuțiile au folosit de multă vreme o abordare similară pentru a furniza drivere proprietare, cum ar fi driverele NVIDIA.

Cealaltă parte răspunde că problema compatibilității nucleului în driverele proprietare este rezolvată prin furnizarea unui strat mic distribuit sub licența GPL (un modul sub licența GPL este încărcat în nucleu, care încarcă deja componente proprietare). Pentru ZFS, un astfel de strat poate fi pregătit numai dacă sunt furnizate excepții de licență de la Oracle. În Oracle Linux, incompatibilitatea cu GPL este rezolvată de Oracle, oferind o excepție de licență care elimină cerința de a licenția lucrări combinate sub CDDL, dar această excepție nu se aplică altor distribuții.

O soluție este să furnizați numai codul sursă al modulului în distribuție, ceea ce nu duce la grupare și este considerat ca livrare a două produse separate. În Debian, se folosește sistemul DKMS (Dynamic Kernel Module Support), în care modulul este furnizat în codul sursă și asamblat pe sistemul utilizatorului imediat după instalarea pachetului.

Sursa: opennet.ru

Adauga un comentariu