Linus Torvalds ha spiegato i problemi con l'implementazione di ZFS per il kernel Linux

Durante la discussione prova task scheduler, uno dei partecipanti alla discussione ha fornito un esempio del fatto che, nonostante le dichiarazioni sulla necessità di mantenere la compatibilità durante lo sviluppo del kernel Linux, i recenti cambiamenti nel kernel hanno interrotto il corretto funzionamento del modulo "ZFS su Linux". Linus Torvalds ответилche il principio"Non rompere gli utenti" si riferisce alla preservazione delle interfacce del kernel esterno utilizzate dalle applicazioni dello spazio utente, nonché del kernel stesso. Ma non copre i componenti aggiuntivi di terze parti sviluppati separatamente sul kernel che non sono accettati nella composizione principale del kernel, i cui autori devono monitorare i cambiamenti nel kernel a proprio rischio e pericolo.

Per quanto riguarda il progetto ZFS su Linux, Linus sconsiglia di utilizzare il modulo zfs a causa dell'incompatibilità delle licenze CDDL e GPLv2. La situazione è che, a causa della politica di licenza di Oracle, le possibilità che ZFS possa mai entrare nel kernel principale sono molto ridotte. I livelli proposti per aggirare l'incompatibilità delle licenze, che traducono l'accesso alle funzioni del kernel in codice esterno, sono una soluzione dubbia - continuano gli avvocati discutere sul fatto se la riesportazione delle funzioni del kernel GPL tramite wrapper si traduca nella creazione di un'opera derivata che deve essere distribuita sotto GPL.

L'unica opzione con cui Linus accetterebbe di accettare il codice ZFS nel kernel principale è ottenere il permesso ufficiale da Oracle, certificato dall'avvocato principale, o meglio ancora, dallo stesso Larry Ellison. Soluzioni intermedie, come strati tra il kernel e il codice ZFS, non sono consentite, data la politica aggressiva di Oracle riguardo alla proprietà intellettuale delle interfacce di programmazione (ad esempio, prova con Google per quanto riguarda l'API Java). Inoltre, Linus considera il desiderio di utilizzare ZFS solo un omaggio alla moda e non vantaggi tecnici. I benchmark esaminati da Linus non supportano ZFS e la mancanza di supporto completo non garantisce stabilità a lungo termine.

Ricordiamo che il codice ZFS è distribuito con una licenza CDDL gratuita, che è incompatibile con la GPLv2, che non consente l'integrazione di ZFS su Linux nel ramo principale del kernel Linux, poiché mescola codice con le licenze GPLv2 e CDDL è inaccettabile. Per aggirare questa incompatibilità di licenza, il progetto ZFS su Linux ha deciso di distribuire l'intero prodotto sotto una licenza CDDL sotto forma di un modulo caricato separatamente e fornito separatamente dal kernel.

La possibilità di distribuire un modulo ZFS già pronto come parte dei kit di distribuzione è controversa tra gli avvocati. Avvocati della Software Freedom Conservancy (SFC) prendere in considerazioneche la fornitura di un modulo binario del kernel nella distribuzione costituisce un prodotto combinato con la GPL con il requisito che il lavoro risultante sia distribuito sotto la GPL. Avvocati canonici non essere d'accordo e dichiarare che la consegna di un modulo zfs è accettabile se il componente viene fornito come modulo autonomo, separato dal pacchetto del kernel. Canonical osserva che le distribuzioni utilizzano da tempo un approccio simile per fornire driver proprietari, come i driver NVIDIA.

L'altra parte ribatte che il problema della compatibilità del kernel nei driver proprietari viene risolto fornendo un piccolo livello distribuito sotto licenza GPL (nel kernel viene caricato un modulo sotto licenza GPL, che carica già componenti proprietari). Per ZFS, un tale livello può essere preparato solo se Oracle fornisce eccezioni di licenza. In Oracle Linux, l'incompatibilità con la GPL viene risolta da Oracle fornendo un'eccezione di licenza che rimuove il requisito di concedere in licenza il lavoro combinato sotto CDDL, ma questa eccezione non si applica ad altre distribuzioni.

Una soluzione alternativa è fornire solo il codice sorgente del modulo nella distribuzione, il che non porta al raggruppamento ed è considerato come la consegna di due prodotti separati. In Debian viene utilizzato a questo scopo il sistema DKMS (Dynamic Kernel Module Support), in cui il modulo viene fornito nel codice sorgente e assemblato sul sistema dell'utente subito dopo l'installazione del pacchetto.

Fonte: opennet.ru

Aggiungi un commento