Linus Torvalds forklarede problemerne med at implementere ZFS til Linux-kernen

Under diskussionen test opgaveplanlæggeren, gav en af ​​diskussionsdeltagerne et eksempel på, at trods udtalelser om behovet for at opretholde kompatibilitet ved udvikling af Linux-kernen, forstyrrede de seneste ændringer i kernen den korrekte funktion af modulet "ZFS på Linux". Linus Torvalds svarat princippet"ikke bryde brugere" refererer til at bevare de eksterne kernegrænseflader, der bruges af brugerrumsapplikationer såvel som selve kernen. Men det dækker ikke separat udviklede tredjeparts-tilføjelser over kernen, som ikke accepteres i kernens hovedsammensætning, hvis forfattere skal overvåge ændringer i kernen på egen risiko og risiko.

Hvad angår ZFS på Linux-projektet, anbefalede Linus ikke at bruge zfs-modulet på grund af inkompatibiliteten af ​​CDDL- og GPLv2-licenserne. Situationen er, at grundet Oracles licenspolitik er chancerne for, at ZFS nogensinde vil kunne komme ind i hovedkernen, meget små. De foreslåede lag for at omgå licensinkompatibilitet, som oversætter adgang til kernefunktioner til ekstern kode, er en tvivlsom løsning - advokater fortsætter argumentere om hvorvidt reeksportering af GPL-kernefunktioner gennem wrappers resulterer i oprettelsen af ​​et afledt værk, der skal distribueres under GPL.

Den eneste mulighed, hvor Linus vil acceptere at acceptere ZFS-koden i hovedkernen, er at indhente officiel tilladelse fra Oracle, certificeret af hovedadvokaten, eller endnu bedre, Larry Ellison selv. Mellemliggende løsninger, såsom lag mellem kernen og ZFS-kode, er ikke tilladt på grund af Oracles aggressive politik vedrørende intellektuel ejendomsret til programmeringsgrænseflader (f.eks. forsøg med Google vedrørende Java API). Derudover betragter Linus ønsket om at bruge ZFS kun som en hyldest til mode og ikke tekniske fordele. De benchmarks, som Linus undersøgte, understøtter ikke ZFS, og manglen på fuld support garanterer ikke langsigtet stabilitet.

Lad os minde dig om, at ZFS-koden distribueres under en gratis CDDL-licens, som er inkompatibel med GPLv2, som ikke tillader, at ZFS på Linux integreres i hovedgrenen af ​​Linux-kernen, da kode blandes under GPLv2- og CDDL-licenserne er uacceptabelt. For at omgå denne licensinkompatibilitet besluttede ZFS på Linux-projektet at distribuere hele produktet under en CDDL-licens i form af et separat indlæst modul, der leveres separat fra kernen.

Muligheden for at distribuere et færdiglavet ZFS-modul som en del af distributionssæt er kontroversielt blandt advokater. Advokater fra Software Freedom Conservancy (SFC) overvejeat leveringen af ​​et binært kernemodul i distributionen danner et produkt kombineret med GPL'en med krav om, at det resulterende arbejde distribueres under GPL'en. Kanoniske advokater er ikke enig og angiv, at levering af et zfs-modul er acceptabelt, hvis komponenten leveres som et selvstændigt modul, adskilt fra kernepakken. Canonical bemærker, at distributioner længe har brugt en lignende tilgang til at levere proprietære drivere, såsom NVIDIA-drivere.

Den anden side imødegår, at problemet med kernekompatibilitet i proprietære drivere er løst ved at levere et lille lag distribueret under GPL-licensen (et modul under GPL-licensen indlæses i kernen, som allerede indlæser proprietære komponenter). For ZFS kan et sådant lag kun udarbejdes, hvis licensundtagelser leveres fra Oracle. I Oracle Linux løses inkompatibilitet med GPL ved, at Oracle leverer en licensundtagelse, der fjerner kravet om at licensere kombineret arbejde under CDDL, men denne undtagelse gælder ikke for andre distributioner.

En løsning er kun at levere kildekoden til modulet i distributionen, hvilket ikke fører til bundling og betragtes som levering af to separate produkter. I Debian bruges DKMS (Dynamic Kernel Module Support) systemet til dette, hvor modulet leveres i kildekode og samles på brugerens system umiddelbart efter installation af pakken.

Kilde: opennet.ru

Tilføj en kommentar