next up previous contents
Next: Storia Up: Software Libero ed Open Previous: Introduzione   Contents

Subsections

Software Libero ed Open Source

Come ho già ripetuto alcune volte, Linux é un sistema libero; questo significa che è rilasciato sotto una licenza che invece di togliere libertà agli utenti ne aggiunge.

Il software difatti é prevalentemente protetto dalla legge sul diritto d'autore, che di per sè permetterebbe di usare l'opera senza particolari limiti, ma proibisce totalmente la modifica e soprattutto la distribuzione senza l'autorizzazione degli aventi diritto. Generalmente per ottenere tale autorizzazione é necessario accettare un contratto, la licenza appunto, nel quale in cambio della possibilità di ricevere il programma si rinuncia ad alcuni dei propri diritti, tipicamente impegnandosi a non usarlo su piu' di uno - o un numero stabilito e finito - di computer ed eventualmente ad assoggettarsi ad ulteriori restrizioni.

Software Libero

Nel Software Libero, al contrario, la licenza esiste solo per garantire maggiori diritti all'utente, pur generamente entro alcuni limiti, ed in particolare per garantire le seguenti libertà, come definite dalla Free Software Foundation:

Open Source

In molti casi poi si sente usare, l'espressione ``Open Source'' o ``Sorgente Aperto'': questa indica programmi la cui licenza soddisfa delle condizioni dettagliate pubblicate dalla Open Source Initiative per indicare sostanzialmente il Software Libero, ma dal punto di vista di chi ne vuole proporre l'adozione da parte di aziende per motivi pratici piuttosto che da quello di chi vuole proporre una visione del mondo dell'informatica.

Il termine ``Open Source'' è nato per ovviare ad una confusione derivante dall'ambivalenza del termine inglese ``Free'', che può voler dire sia libero - ad esempio nell'espressione ``Free Software'' - che gratuito - cosa certamente non gradita alle aziende che ne valutavano l'adozione. Tuttavia il termine stesso ``Open Source'' ha dato luogo ad ambiguità, dato che viene impiegato a sproposito per indicare programmi non liberi, ma dei quali é possibile visualizzare gratuitamente il codice sorgente. Questo uso è errato, in quanto la definizione di Open Source prevede esplicitamente delle condizioni che di fatto garantiscono anche la libertà di esecuzione, modifica e redistribuzione.

Di fatto le due definizioni sono soddisfatte dalle stesse licenze, per cui possono essere usate quasi in modo intercambiabile, tranne che in quei contesti nei quali si fa esplicito riferimento ad uno dei due gruppi che le promuovono.

Copyleft

Un tipo particolare di software libero, molto diffuso, è quello la cui licenza garantisce sì le libertà descritte, ma pone una specifica restrizione stabilendo che ogni programma da esso derivato debba mantenersi libero, generalmente sotto la stessa licenza dell'originale.

Una licenza di questo tipo sicuramente offre meno libertà all'utente, tuttavia concede alcuni vantaggi ``di mercato'' al software libero rispetto al software proprietario: pezzi di codice sotto licenza non copyleft possono entrare in prodotti non liberi, privando la comunità degli sviluppi ottenuti da quel ramo, mentre con una licenza copyleft le versioni modificate dei programmi devono essere o per uso strettamente personale, oppure nuovamente libere, stimolando la collaborazione tra i vari interessati allo sviluppo del programma.

È importante specificare che comunque l'obbligo di mantenere le modifiche sotto la stessa licenza si applica a programmi che effettivamente contengano parti di codice protetto dalla licenza in questione, sia direttamente che come libreria usata. Non si applica invece a programmi che si interfaccino con il programma originale, ad esempio dei front-end o simili, ad opere realizzate con programmi sotto licenza copyleft, ad esempio programmi compilati con GCC o testi scritti con EMACS, né a programmi che vengano semplicemente distribuiti assieme ad un programma sotto licenza copyleft - quest'ultimo è anzi esplicitamente vietato dal punto 9 della definizione di Open Source.

Inoltre é opportuno specificare che anche qualora vi siano delle condizioni che impongono la scelta di una determinata licenza, il codice rimane di proprietà di chi l'ha scritto (o del datore di lavoro) e niente gli vieta, anche in un secondo tempo, di rimuovere tutte le parti altrui e rilasciare le sole parti da lui sviluppate sotto un'altra licenza, pur con alcune precauzioni: innanzitutto è molto probabile che la licenza copyleft non possa essere revocata, per cui il codice già rilasciato rimane a disposizione della comunità sotto la vecchia licenza e contemporaneamente reso disponibile sotto quella nuova, sotto la quale verranno poi rilasciate - anche esclusivamente - le ulteriori modifiche; detto questo, un'operazione del genere richiederà comunque estrema cautela nel fare in modo di applicare la nuova licenza solo a codice del quale si detengano i diritti e non anche a sue eventuali modifiche altrui, anche minime, purché non banali.

Esempi di licenze

GPL

Il più famoso esempio di licenza libera e copyleft è la GNU GPL, GNU General Public License, pubblicata dalla Free Software Foundation ed usata per la maggior parte dei programmi del progetto GNU, nonché per il kernel Linux e per un gran numero di altri programmi.

LGPL

Le caratteristiche di copyleft della GPL fanno sì che questa, usata per le librerie di base di un sistema, imponga l'uso con il sistema in questione di solo software con licenze ad essa compatibili; per ovviare a questo problema la Free Software Foundation ha creato la GNU LGPL, Gnu Lesser General Public License, licenza che continua ad imporre che versioni derivate dal programma, rimangano libere, sotto LGPL o GPL, ma permette il linking con moduli sotto altre licenze, anche se non liberi.

Originariamente chiamata GNU Library Public License, ed usata per le librerie C che accompagnano il sistema GNU, attualmente la FSF ne raccomanda l'uso solo nei casi in cui si stiano implementando funzioni per le quali esistano già alternative proprietarie, mentre suggerisce l'uso della GPL per quelle librerie che contengono innovazioni tecnologiche, in modo tale da fornire un vantaggio ``commerciale'' al software libero sotto GPL contro i sistemi proprietari.

In realtà è stata adottata anche da alcune aziende intenzionate a contribuire allo sviluppo di programmi open source, rilasciandone però delle versioni sotto altre licenze, spesso proprietarie, sotto il proprio marchio, come ad esempio Netscape con Mozilla e Sun con OpenOffice.org e la versione proprietaria Star Office.

BSD

L'altra grossa categoria di licenze libere é rappresentata dalla licenza BSD, che in pratica concede all'utente il diritto di fare quasi ciò che vuole del software, purché sia mantenuta la corretta attribuzione e il nome dell'autore originario non venga usato a sproposito, difatti prevede che:

La redistribuzione e l'uso in forma sorgente o binaria, con o senza modifiche sono permessi, purché siano osservate le seguenti condizioni:

Una licenza di questo tipo ha dalla sua l'estrema semplicità, e permessività, che favoriscono la massima diffusione del programma, ma, come si è detto prima, potrebbe non essere particolarmente vantaggiosa in fase di promozione del Software Libero contrapposto ad alternative non tali.

La licenza BSD inoltre prevede, come tutte le licenze libere e la maggior parte di quelle non librere, una negazione di garanzia - il disclaimer citato sopra - con la quale gli autori negano ogni loro responsabilità per qualunque conseguenza negativa possa derivare dall'uso del loro programma.

Una negazione del genere è presente nella quasi totalità delle licenze libere, dato che ben pochi sono disposti ad accollarsi rischi economici per programmi dai quali non ottiene guadagno diretto, ma anche in un gran numero di licenze proprietarie, specialmente se dirette al grande pubblico.

D'altra parte, come per alcuni programmi proprietari destinati a target più elevati vengono date delle garanzie, per programmi liberi destinati ad un pubblico più specialistico è spesso possibile pagare per ottenere garanzie più o meno estese. Ciò che in questo aspetto è peculiare del software libero è la possibilità che tali garanzie non siano offerte dall'autore originario del programma, ma anche da terze parti.

SW Proprietario

Con Software proprietario ovviamente si intende quel software rilasciato sotto licenze che non siano libere, nonostante la scelta del termine possa essere infelice, in quanto anche il software libero ha un ``proprietario'', l'autore o comunque il titolare dei diritti, e la distinzione sta in quanto questo proprietario sia rispettoso o meno della libertà altrui.

Questa categoria comprende sia quei programmi venduti tramite i tradizionali canali di commerciali, che programmi distribuiti sotto altre forme, a pagamento o meno, quali ad esempio shareware, adware, freeware ecc.

SW Commerciale

Termine che invece va assolutamente evitato per indicare il software non libero è ``commerciale'', in quanto nella sua connotazione intuitiva questo indica semplicemente dei programmi che vengono venduti, e questo è vero in molti casi anche per il software libero - ad esempio le distribuzioni linux - mentre non è vero per una parte non trascurabile del software proprietario, come ad esempio il freeware.

Doppia licenza

Come si è accennato prima, può capitare che un programma non sia rilasciato sotto una sola licenza, ma sotto due o più. Questo è possibile in quanto le licenze libere non sono generalmente esclusive, ma lasciano all'autore tutti i diritti di fare ciò che vuole dell'opera, purché - almeno nella maggior parte dei casi - non revochi la licenza già concessa.

In pratica questo significa che l'autore di un programma rilasciato sotto licenza libera può sempre decidere sia di rilasciarlo in contemporanea sotto un'altra licenza - libera o meno - sia di smettere di mantenere il programma libero e rilasciare le future versioni sotto un'altra licenza; in questo caso rimarrá libera solo la vecchia versione, eventualmente mantenuta da terze parti. Questo è possibile sia quando l'autore è uno solo che quando ci siano numerosi autori, anche se quest'ultimo caso richiede l'autorizzazione di tutti, il che rende decisamente difficile mettere in pratica una simile decisione a sviluppo gia' iniziato.

L'uso delle doppie licenze è abbastanza diffuso, specialmente in ambito di programmi che vengono sviluppati commercialmente; un metodo, praticato ad esempio nel caso del database MySQL, è quello di rilasciare il programma sotto una licenza fortemente copyleft - nel caso specifico la GPL - vendendo anche licenze proprietarie a coloro che hanno bisogno di integrare il prodotto con parti di codice proprietario in modi che altrimenti la GPL vieterebbe. Un altro metodo è quello per cui delle aziende sostengono una comunità che sviluppi un programma libero, generalmente sotto una licenza non copyleft, rilasciandone poi una versione personalizzata sotto licenza proprietaria e nome diverso, come avviene ad esempio per Mozilla/Netscape o per OpenOffice.org/StarOffice.


next up previous contents
Next: Storia Up: Software Libero ed Open Previous: Introduzione   Contents
Elena of Valhalla 2004-10-18