Linus Torvalds förklarade problemen med att implementera ZFS för Linux-kärnan

Under diskussionen tester uppgiftsschemaläggaren, gav en av diskussionsdeltagarna ett exempel på att trots uttalanden om behovet av att upprätthålla kompatibilitet vid utveckling av Linux-kärnan, störde de senaste ändringarna i kärnan den korrekta driften av modulen "ZFS på Linux". Linus Torvalds svaratt principen "gå inte sönder användare" hänvisar till att bevara de externa kärngränssnitten som används av användarutrymmesapplikationer såväl som själva kärnan. Men det täcker inte separat utvecklade tredjepartstillägg över kärnan som inte accepteras i kärnans huvudsammansättning, vars författare måste övervaka förändringar i kärnan på egen risk och risk.

När det gäller ZFS på Linux-projektet, rekommenderade Linus inte att använda zfs-modulen på grund av inkompatibiliteten hos CDDL- och GPLv2-licenserna. Situationen är att på grund av Oracles licenspolicy är chanserna att ZFS någonsin kommer att kunna komma in i huvudkärnan mycket små. De skikt som föreslagits för att kringgå licensinkompatibilitet, som översätter åtkomst till kärnfunktioner till extern kod, är en tveksam lösning - advokater fortsätter argumentera om huruvida återexportering av GPL-kärnfunktioner genom wrappers resulterar i skapandet av ett härlett verk som måste distribueras under GPL.

Det enda alternativet där Linus skulle gå med på att acceptera ZFS-koden i huvudkärnan är att få officiellt tillstånd från Oracle, certifierat av huvudadvokaten, eller ännu bättre, Larry Ellison själv. Mellanliggande lösningar, såsom lager mellan kärnan och ZFS-koden, är inte tillåtna, med tanke på Oracles aggressiva policy angående immateriella rättigheter för programmeringsgränssnitt (till exempel, rättegång med Google angående Java API). Dessutom anser Linus önskan att använda ZFS endast som en hyllning till mode, och inte tekniska fördelar. De riktmärken som Linus undersökte stöder inte ZFS, och avsaknaden av fullt stöd garanterar inte långsiktig stabilitet.

Låt oss påminna dig om att ZFS-koden distribueras under en gratis CDDL-licens, som är inkompatibel med GPLv2, som inte tillåter ZFS på Linux att integreras i huvudgrenen av Linuxkärnan, eftersom blandning av kod under GPLv2- och CDDL-licenserna är oacceptabelt. För att kringgå denna licensinkompatibilitet beslutade ZFS på Linux-projektet att distribuera hela produkten under en CDDL-licens i form av en separat laddad modul som levereras separat från kärnan.

Möjligheten att distribuera en färdig ZFS-modul som en del av distributionspaket är kontroversiell bland jurister. Advokater från Software Freedom Conservancy (SFC) övervägaatt leveransen av en binär kärnmodul i distributionen bildar en produkt kombinerad med GPL med kravet att det resulterande arbetet distribueras under GPL. Kanoniska advokater håller inte med och ange att leverans av en zfs-modul är acceptabel om komponenten levereras som en fristående modul, separat från kärnpaketet. Canonical noterar att distributioner länge har använt ett liknande tillvägagångssätt för att tillhandahålla proprietära drivrutiner, såsom NVIDIA-drivrutiner.

Den andra sidan talar om att problemet med kärnkompatibilitet i proprietära drivrutiner löses genom att tillhandahålla ett litet lager distribuerat under GPL-licensen (en modul under GPL-licensen laddas in i kärnan, som redan laddar proprietära komponenter). För ZFS kan ett sådant lager endast förberedas om licensundantag tillhandahålls från Oracle. I Oracle Linux löses inkompatibilitet med GPL genom att Oracle tillhandahåller ett licensundantag som tar bort kravet på att licensiera kombinerat arbete under CDDL, men detta undantag gäller inte andra distributioner.

En lösning är att endast tillhandahålla modulens källkod i distributionen, vilket inte leder till paketering och betraktas som leverans av två separata produkter. I Debian används DKMS (Dynamic Kernel Module Support)-systemet för detta, där modulen levereras i källkod och monteras på användarens system direkt efter installation av paketet.

Källa: opennet.ru

Lägg en kommentar