5. La nascita del Software Libero

Sebbene il destino del panorama informatico non sembrasse troppo roseo, non tutti erano rassegnati ad accettare un modello di mercato del software basato sul divieto, per gli utenti, di sfruttare appieno le possibilità della tecnologia, e sull'obbligo di legarsi a questa o quella particolare azienda produttrice di software proprietario. E, per fortuna, qualcuno si diede da fare...

5.1. Richard Stallman

Come già accennato precedentemente, Richard Stallman (Figura 4) è uno degli hacker che, nel 1971, iniziò a lavorare nello staff del MIT AI Lab.

Figura 4. Richard Stallman

(Foto tratta da http://www.stallman.org)

Egli entrò a far parte di una comunità fondata sulla collaborazione e sulla condivisione del sapere e del codice sorgente dei programmi, e si fece una fama come programmatore e ricercatore nel campo informatico --- egli divenne, insomma, uno degli hacker più noti. Ma, col tempo, dovette assistere anche al progressivo declino di questa comunità, a causa delle pressioni generate dal business del software proprietario [RMS98].

Questo fatto, ovviamente, aveva una influenza enorme sul futuro di Stallman: volendo continuare il suo lavoro nel campo informatico, egli sarebbe stato costretto a diventare il dipendente di qualche azienda produttrice di software proprietario. Il software da lui creato sarebbe stato venduto solo dietro l'accettazione di severi contratti, che avrebbero costretto gli utenti a rinunciare a parte delle possibilità a loro offerte dalla tecnologia. In una parola, gli utenti sarebbero stati privati della libertà di utilizzare il software in base alle loro reali necessità o desideri. Se un utente avesse voluto fornire una copia del programma ad un proprio amico, gli sarebbe stato impossibile farlo: i contratti firmati all'acquisto del software lo avrebbero vietato.

Queste considerazioni, assieme a tutte quelle finora esposte in questo articolo, convinsero Stallman a prendere una decisione difficile: quella di continuare a produrre software, ma solamente seguendo i criteri di condivisione del sapere alla base del progresso informatico, ed alla base della comunità hacker. In una parola, tutto il software da lui prodotto avrebbe potuto essere liberamente studiato, duplicato, modificato e ridistribuito dagli utenti.

5.2. Software Libero

Stallman, in particolare, definì quali requisiti dovesse avere il sofware per essere compatibile con i principii di libera condivisione a cui egli si ispirava. Questi criteri, essenzialmente, sono legati alla libertà degli utenti: ovvero, individuano la possibilità, per gli utilizzatori del software, di usufruire del prodotto in base ai propri bisogni o ai propri desideri.

Si tratta di quattro libertà fondamentali [RMS96]:

Quando un programma garantisce all'utente queste quattro libertà, allora può essere definito come Software Libero. Ed il progetto di Stallman era quello di produrre e promuovere solamente Software Libero.

5.3. Il progetto GNU e la Free Software Foundation

L'obiettivo di Stallman era grande: riuscire a produrre un intero sistema operativo, completamente libero in ogni sua parte.

Un sistema operativo è una cosa complessa: esso comprende un kernel[1], e tutta una serie di programmi ed altri componenti basilari per il funzionamento e lo sviluppo del sistema stesso (compilatori[2], interfacce utente testuali o grafiche, editor, tool di gestione...). Questo nuovo sistema operativo sarebbe stato costruito ispirandosi alla struttura di Unix, dato che esso, nonostante le incompatibilità delle versioni dei vari produttori, rappresentava il modello più portabile e diffuso allora esistente. E, dato che le varie versioni di Unix dell'epoca non erano libere, e che il suo progetto mirava ad essere tecnicamente superiore ad esse, Stallman scelse un nome che indicasse la diversità della sua creatura: si sarebbe chiamato GNU (un acronimo ricorsivo che sta per "GNU is Not Unix") (Figura 5).

Figura 5. Il logo del progetto GNU

(Immagine tratta da http://www.gnu.org)

Il lavoro iniziò formalmente nel 1984, dopo l'annuncio sui newsgroup datato 1983 [RMS99]. Stallman e le persone che, col tempo, si unirono all'opera iniziarono a catalogare il software allora disponibile che potesse essere considerato libero, ed iniziarono a sviluppare il gran numero di componenti mancanti per la realizzazione di un sistema operativo completo e usabile. Il lavoro per il sistema GNU veniva reso disponibile anche per il download attraverso Internet.

Con l'aumento dei partecipanti al progetto, e con l'evoluzione del lavoro, nel 1985 si rese necessaria la fondazione di una struttura incaricata di sostenere (anche economicamente) e diffondere il Software Libero. Stallman e le altre persone coinvolte crearono quindi la Free Software Foundation (FSF), le cui attività sarebbero state la diffusione delle idee alla base del Software Libero, e la vendita di vario materiale (come manuali, o nastri magnetici contenenti Software Libero) per il finanziamento delle attività ad esso legate. Grazie alla Free Software Foundation, fu possibile aumentare il numero delle persone stipendiate al lavoro sul progetto GNU.

Anche Stallman, intanto, nel privato si guadagnava da vivere attraverso il Software Libero: le sue attività principali comprendevano la creazione e la modifica di Software Libero su commissione di privati e aziende, e lo svolgimento di corsi riguardanti i programmi liberi da lui creati [RMS98].

5.4. La tutela del Software Libero

Come abbiamo già accennato, al tempo del progetto GNU vi era già del software che rispettava i quattro criteri di libertà elencati poco sopra. Si può citare, come già detto in precedenza, il lavoro del team BSD (sebbene il loro software fosse venduto assieme a quello della AT&T, non certo libero). Tuttavia, questo software (e non solo questo) aveva un problema fondamentale: esso era diffuso con la possibilità non solo di essere utilizzato, copiato e modificato liberamente, ma anche di essere sfruttato come base per la produzione di software proprietario. In pratica, era possibile per chiunque prendere una copia del codice sorgente inizialmente libero, farci qualche modifica e venderla imponendo contratti, licenze restrittive e divieti all'utente finale. Questo non era certo un buon modo per favorire la diffusione del Software Libero: anzi, si offrivano ai produttori di software proprietario altri mezzi per ampliare il proprio modello di business, sfruttando il lavoro di altre persone.

Era quindi necessario trovare un sistema affinchè il Software Libero prodotto per il progetto GNU venisse tutelato, in modo da restare sempre libero, e non venire "riciclato" per la creazione di software proprietario. E la soluzione stava nel concetto di copyright, utilizzato dai produttori di software proprietario per imporre delle limitazioni all'uso ed alla diffusione dei programmi.

5.4.1. Il concetto di copyright

Il copyright si basa sulla facoltà, per l'autore di qualunque documento, progetto o invenzione, di poter richiedere dei diritti sull'opera, in particolare quelli di copia, di paternià e di sfruttamento commerciale. L'invenzione del copyright era nata per essere un incentivo alla produzione di idee, ed era stata utile finchè la violazione del copyright stesso aveva richiesto mezzi e risorse alla portata di pochi.

Per esempio, dopo l'invenzione della stampa l'autore di un trattato scientifico poteva usare il suo copyright sull'opera per permetterne la pubblicazione solo a certi editori. In ogni caso, copyright o meno, la possibilità di stampare dei libri non era alla portata di tutti --- ed il vincolo del copyright portava più vantaggi (come la garanzia di esclusività per l'editore, che era quindi incoraggiato alla pubblicazione) che svantaggi (infatti erano ben pochi coloro che potevano copiarsi manualmente un intero libro, violando il copyright, e quindi queste persone avrebbero dovuto comunque acquistare da qualcuno una copia dell'opera) [RMS92] [RMS00].

Il progresso delle tecnologie, però, cambia le cose: quando aumenta la possibilità di duplicare e diffondere delle informazioni, un diritto di copia usato in modo restrittivo può portare più svantaggi che vantaggi --- dato che impedisce una diffusione dell'opera che sarebbe altrimenti semplice, immediata ed alla portata di tutti. L'informatica, infatti, permette a chiunque di poter duplicare informazioni liberamente e senza difficoltà. Ma negare questo progresso e questa libertà era molto comodo per i produttori di software proprietario --- ed essi potevano usare i diritti di copia e sfruttamento commerciale per vendere il permesso di utilizzo del software, assieme all'accettazione, da parte dell'utente, di contratti e divieti. E tali divieti, tra le altre cose, non permettevano di diffondere il software stesso, nonostante questa azione fosse alla portata di chiunque. Il copyright era stato trasformato, insomma, da incentivo a freno del progresso.

5.4.2. Il copyleft e la licenza GNU GPL

Questa visione restrittiva del copyright, però, poteva essere ribaltata: anzichè usare il copyright per pretendere il diritto di limitare la diffusione di un prodotto, si poteva usare il copyright sia per tutelare gli autori del Software Libero, che per pretendere la libera diffusione di un loro lavoro. Per esempio, si poteva richiedere agli utenti di un proprio programma di accettare una licenza che, oltre a garantire le quattro libertà fondamentali alla base del Software Libero, vietasse la trasformazione dello stesso programma in un prodotto proprietario.

Questo ribaltamento dell'uso del copyright e delle licenze sul software venne chiamato copyleft, con un gioco di parole tra right (che significa "destra", ed anche "diritto") ed il suo opposto left (che significa "sinistra", ma anche "lasciato", in riferimento alla concessione all'utente del diritto di copia[3]). Nella lingua italiana, il gioco di parole tra copyleft e copyright non è riproducibile, ma viene spesso indicato con la contrapposizione tra diritto d'autore e permesso d'autore.

Con questa idea, venne creata una licenza per regolamentare la distribuzione del Software Libero --- e questa licenza, come detto poco sopra, avrebbe avuto il compito di garantire le libertà degli utenti, e di impedire la "proprietarizzazione" dei programmi liberi da essa tutelati. Questa licenza fu chiamata GNU GPL (GNU General Public License), e da allora fu usata per distribuire tutto il software prodotto per il progetto GNU [RMS94].

Il senso di questa licenza è semplice: chiunque può usare, modificare e ridistribuire il Software Libero da essa protetto. L'unica condizione è che, se il software viene ridistribuito, esso sia sempre protetto della GNU GPL, senza limitazioni aggiuntive per gli utenti che lo riceveranno in seguito.

La GNU GPL è una solida licenza per la tutela del Software Libero (dato che essa fu scritta con l'ausilio di diversi esperti di legge), e viene aggiornata nel tempo in modo da non poter essere aggirata legalmente (magari da qualcuno desideroso di "proprietarizzare" del codice sorgente di altre persone). Inoltre, essa riassume al suo interno le ragioni alla base di tutto il Software Libero. Per tali motivi, la GNU GPL iniziò ad essere usata da un numero sempre crescente di sviluppatori, anche esterni al progetto GNU.

Note

[1]

Il kernel è il "nucleo" di ogni sistema operativo, ovvero la parte che si occupa di accedere direttamente all'hardware, e di fornire alle applicazioni un sistema semplice per utilizzarlo. Il kernel, per esempio, controlla direttamente l'hard disk del computer, e permette ai programmi in esecuzione (che non gestiscono direttamente i dischi, nè conoscono il loro funzionamento) di scrivere o leggere dei file.

[2]

Un compilatore è una applicazione in grado di tradurre il codice sorgente di un programma (scritto usando un linguaggio di programmazione) in un formato eseguibile dal computer.

[3]

Sempre in omaggio ai giochi di parole, si può citare come la famosa frase:

Copyright --- all rights reserved

sia talvolta ribaltata in:

Copyleft --- all rites reversed