Linus Torvalds forklarte problemene med å implementere ZFS for Linux-kjernen

Under diskusjonen tester oppgaveplanlegger, ga en av diskusjonsdeltakerne et eksempel på at til tross for uttalelser om behovet for å opprettholde kompatibilitet ved utvikling av Linux-kjernen, forstyrret nylige endringer i kjernen den riktige driften av modulen "ZFS på Linux". Linus Torvalds svaretat prinsippet "ikke knus brukere" refererer til å bevare de eksterne kjernegrensesnittene som brukes av brukerromsapplikasjoner så vel som selve kjernen. Men den dekker ikke separat utviklede tredjepartstillegg over kjernen som ikke er akseptert i hovedsammensetningen av kjernen, hvis forfattere må overvåke endringer i kjernen på egen risiko og risiko.

Når det gjelder ZFS på Linux-prosjektet, anbefalte ikke Linus å bruke zfs-modulen på grunn av inkompatibiliteten til CDDL- og GPLv2-lisensene. Situasjonen er at på grunn av Oracles lisensieringspolicy, er sjansene for at ZFS noen gang vil kunne gå inn i hovedkjernen svært små. Lagene som er foreslått for å omgå lisensieringsinkompatibilitet, som oversetter tilgang til kjernefunksjoner til ekstern kode, er en tvilsom løsning - advokater fortsetter argumentere om re-eksport av GPL-kjernefunksjoner gjennom wrappers resulterer i opprettelsen av et avledet arbeid som må distribueres under GPL.

Det eneste alternativet der Linus godtar å godta ZFS-koden i hovedkjernen er å få offisiell tillatelse fra Oracle, sertifisert av hovedadvokaten, eller enda bedre, Larry Ellison selv. Mellomliggende løsninger, slik som lag mellom kjernen og ZFS-koden, er ikke tillatt, gitt Oracles aggressive policy angående intellektuell eiendom til programmeringsgrensesnitt (f.eks. prøve med Google angående Java API). I tillegg anser Linus ønsket om å bruke ZFS som kun en hyllest til mote, og ikke tekniske fordeler. Benchmarkene som Linus undersøkte støtter ikke ZFS, og mangelen på full støtte garanterer ikke langsiktig stabilitet.

La oss minne deg på at ZFS-koden distribueres under en gratis CDDL-lisens, som er inkompatibel med GPLv2, som ikke tillater at ZFS på Linux integreres i hovedgrenen til Linux-kjernen, siden miksing av kode under GPLv2- og CDDL-lisensene er uakseptabelt. For å omgå denne lisensieringsinkompatibiliteten, bestemte ZFS på Linux-prosjektet seg for å distribuere hele produktet under en CDDL-lisens i form av en separat lastet modul som leveres separat fra kjernen.

Muligheten for å distribuere en ferdig ZFS-modul som en del av distribusjonssett er kontroversiell blant advokater. Advokater fra Software Freedom Conservancy (SFC) vurdereat levering av en binær kjernemodul i distribusjonen danner et produkt kombinert med GPL med krav om at det resulterende arbeidet skal distribueres under GPL. Kanoniske advokater er ikke enig og oppgi at levering av en zfs-modul er akseptabel hvis komponenten leveres som en selvstendig modul, atskilt fra kjernepakken. Canonical bemerker at distribusjoner lenge har brukt en lignende tilnærming for å levere proprietære drivere, for eksempel NVIDIA-drivere.

Den andre siden motvirker at problemet med kjernekompatibilitet i proprietære drivere løses ved å levere et lite lag distribuert under GPL-lisensen (en modul under GPL-lisensen lastes inn i kjernen, som allerede laster proprietære komponenter). For ZFS kan et slikt lag bare utarbeides hvis lisensunntak er gitt fra Oracle. I Oracle Linux løses inkompatibilitet med GPL ved at Oracle gir et lisensunntak som fjerner kravet om å lisensiere kombinert arbeid under CDDL, men dette unntaket gjelder ikke for andre distribusjoner.

En løsning er å levere kun kildekoden til modulen i distribusjonen, som ikke fører til bunting og anses som levering av to separate produkter. I Debian brukes DKMS (Dynamic Kernel Module Support)-systemet til dette, der modulen leveres i kildekode og settes sammen på brukerens system umiddelbart etter installasjon av pakken.

Kilde: opennet.ru

Legg til en kommentar