IL SOFTWARE LIBERO E OPEN SOURCE

Transcript

IL SOFTWARE LIBERO E OPEN SOURCE
IL SOFTWARE LIBERO E OPEN SOURCE
Ma se c'è la crisi, perché compriamo software proprietario?
di
Giulio Bigliardi
[email protected] - opentechne.wordpress.com
Quest'opera è stata rilasciata nel mese di Febbraio 2014 con licenza Creative Commons Attribuzione - Condividi allo
stesso modo 4.0 Internazionale. Per leggere una copia della licenza visita il sito web
http://creativecommons.org/licenses/by-sa/4.0/deed.it.
Indice generale
Premessa...............................................................................................................................................2
1. Il software è nato libero....................................................................................................................3
2. Libero software in libero stato..........................................................................................................9
3. L'unione fa la forza.........................................................................................................................15
4. Free Software Or Open Source Software?.....................................................................................20
5. Il calabrone continua a volare.........................................................................................................23
1
Premessa
Free and Open Source Software (FOSS) è software liberamente rilasciato con licenze atte a
concedere agli utenti il diritto di utilizzare, copiare, studiare, cambiare e migliorare il software
attraverso la disponibilità del suo codice sorgente 1. La dizione è stata adottata a partire dal
20032, anno in cui l'acronimo venne usato per la prima volta per comprendere entrambe le
correnti del software libero: quella Free Software introdotta negli anni '80 da R. Stallman e
sostenuta dalla Free Software Foundation, e quella Open Source, introdotta negli anni '90
principalmente da E. Raymond e sostenuta dall'Open Source Initiative.
Sebbene FOSS e i suoi termini attinenti abbiano meno di 30 anni, il concetto dietro essi è
antico quanto l’informatica stessa: condividere e modifcare il codice sorgente di un programma
è una pratica comune e antica quanto la storia della moderna informatica.
1
2
Il codice sorgente (spesso detto semplicemente sorgente), in informatica, è il testo di un algoritmo di un
programma scritto in un linguaggio di programmazione da parte di un programmatore in fase di
programmazione. Il sorgente scritto dovrà essere opportunamente elaborato per arrivare a un programma
eseguibile dal processore ponendosi dunque come punto di partenza ("sorgente") dell'intero processo che
porta all'esecuzione del programma stesso e che può includere altre fasi come precompilazione, compilazione,
interpretazione, caricamento e linking (a seconda del tipo di linguaggio di programmazione utilizzato) per
concludersi con l'installazione.
http://www.terrybollinger.com/index.html#dodfoss
2
1. Il software è nato libero
UNIX e la nascita del software proprietario
“There are two major products that came out
of Berkeley: LSD and UNIX.
We don't believe this to be a coincidence.”
Jeremy S. Anderson
Comunità software paragonabili alle attuali comunità FOSS esistevano molto tempo prima del
movimento Free Software e della stessa defnizione di “free software”. Negli anni '50 e '60 del
secolo scorso i programmi informatici erano prodotti principalmente da ricercatori universitari e
aziendali che lavoravano in gruppo. Il codice sorgente veniva distribuito insieme al software e gli
utenti modifcavano spesso i programmi per risolvere bug3 oppure aggiungere nuove funzioni.
Il sistema A-2 sviluppato da Grace M. Hopper 4 presso la divisione UNIVAC della Remington
Rand è considerato il primo esempio di FOSS: nel 1953 venne rilasciato con il proprio codice
sorgente e gli utenti furono invitati a inviare i loro miglioramenti. Analogamente, nel 1967 un
sistema operativo mainframe IBM, il Programma di Controllo Aereo (ACP), venne distribuito con
il codice sorgente. Si formarono così in quegli anni gruppi di utenti per facilitare il libero scambio
di software: come quello della IBM 701, chiamato SHARE, oppure quello della Digital Equipment
Corporation (DEC), chiamato DECUS. Proprio l'attitudine e la consuetudine alla libera
divulgazione e circolazione dei risultati della ricerca rendevano completamene inutile parlare di
software libero: tutto il software, all'epoca, era libero.
Per comprendere come e perché si sia arrivati alla necessità di codifcare e defnire il software
libero, in contrapposizione al software non-libero, è necessario partire proprio da quel periodo,
durante il quale vennero gettate le basi – software e hardware – dell'informatica che conosciamo
oggi.
Il CTSS - Compatible Time-Sharing System è un sistema operativo sviluppato al MIT –
Massachusetts Institute of Technology e presentato per la prima volta nel 1961. Si tratta di uno dei
primi sistemi operativi in time-sharing che pose le basi per il successivo sviluppo di tali sistemi. Il
time-sharing consiste nell’esecuzione contemporanea di diversi programmi applicativi
3
4
Nell'informatica il termine bug o baco identifca un errore nella scrittura di un programma software. Meno
comunemente, il termine bug può indicare un difetto di progettazione in un componente hardware, che ne
causa un comportamento imprevisto o comunque diverso da quello specifcato dal produttore. L'uso del
termine bug, che in inglese indica genericamente un piccolo insetto, è legato ad un curioso aneddoto risalente
ai tempi pionieristici dell'informatica: il 9 settembre 1947 il tenente Grace M. Hopper ed il suo gruppo stavano
cercando la causa del malfunzionamento di un computer Mark II quando, con stupore, si accorsero che una
falena si era incastrata tra i circuiti. Dopo aver rimosso l'insetto, il tenente incollò la falena rimossa sul registro
del computer e annotò: «1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found». Questo
registro è conservato presso lo Smithsonian National Museum of American History.
Grace Murray Hopper (New York, 9 dicembre 1906 – Arlington, 1 gennaio 1992) è stata una matematica,
informatica e militare statunitense. Defnita da molti una pioniera della programmazione informatica, ottenne il
Ph.D. in matematica nel 1934 a Yale, insegnando per i due anni successivi presso Vassar, per poi entrare a far
parte della Riserva della Marina nel 1943. Famosa per il suo lavoro sul primo computer digitale della Marina,
Harvard Mark I, fu assegnata presso l'ufcio per l'Ordenance Computation Project dell'università di Harvard. La
sua brillante carriera ebbe nel 1949 un momento di grande prestigio quando entrò nella Eckert-Mauchly
Computer Corporation, la società che aveva sviluppato l'ENIAC, fra i primi computer digitali in circolazione, e
che in quel periodo stava progettando l'UNIVAC I, ovvero quello che sarebbe stato il primo modello di
computer commerciale.
3
indipendenti tra loro, e permette a più utenti, con i loro programmi in esecuzione, di interagire
simultaneamente con il sistema centralizzato, ciascuno con un proprio terminale. I primi
computer mainframe erano estremamente costosi e non era possibile garantire l'accesso
esclusivo ad un singolo utilizzatore, ma dal momento che con la modalità di utilizzo a singolo
utente i computer trascorrevano molto tempo in attesa dell'input dell'utente, si pensò di far
utilizzare simultaneamente a più utenti lo stesso elaboratore, utilizzando i tempi morti per
servire a rotazione i diversi utenti. La CPU del computer centrale venne utilizzata per rispondere
alle richieste dei singoli utenti, passando rapidamente da uno all'altro dando così l'impressione
ad ognuno di avere a disposizione il computer centrale interamente per sé, ovvero dando
l'impressione di un processamento multiplo in parallelo di più processi verso più utenti.
Il CTSS costituì la base per lo sviluppo di Multics - Multiplexed Information and Computing
Service, altra pietra miliare nella storia dell'informatica, a cui lavorarono, a partire dal 1964, tre
enti: il MIT, i Bell Laboratories (di propietà della AT&T Corp.) e la General Electric. Multics mise sul
campo una serie di concetti e tecniche costruttive che sono ancora oggi elementi essenziali dei
moderni sistemi operativi. Nella sua concezione originale avrebbe dovuto servire le necessità di
calcolo dell'intera città di Boston e tra gli scopi principali del progetto vi era l'abilitazione di
utenti remoti all'utilizzo di uno stesso computer, ed è per questo che il time-sharing doveva
essere una delle caratteristiche fondamentali del sistema. Il sistema venne modifcato nell'arco
degli anni seguenti per consentirne la portabilità su varie macchine, costituendo di fatto il primo
software della storia ad essere in grado di funzionare in ambienti totalmente diversi.
Il progetto si rivelò troppo complesso, specie per i ricercatori abituati ai sistemi operativi
classici e perfettamente lineari, e nel 1969 la AT&T abbandonò il progetto ritenendolo poco
utilizzabile nella pratica per le proprie esigenze. L'anno successivo subentrò così la Honeywell,
acquistando la divisione computer della General Electric. La Honeywell commercializzò Multics a
partire dal 1973, il prezzo dell'architettura hardware e del sistema operativo era di sette milioni di
dollari; nonostante ciò i sistemi venduti nei venti anni successivi furono un centinaio. Lo sviluppo
di Multics terminò nel 1985 e l'ultima installazione attiva venne defnitivamente spenta
nell'ottobre del 2000 al Canadian Department of National Defence.
Alcuni ricercatori dei Bell Laboratories non ritennero corretta la decisione presa di
abbandonare il progetto Multics e decisero di continuarne lo sviluppo. Furono in particolare Ken
Thompson e Dennis Ritchie a non arrendersi: fu proprio grazie ai loro sforzi che, su una vecchia
macchina PDP-7, nacque la versione fnale di Unics (in seguito UNIX), nome che stava a
sottolineare la semplicità del progetto rispetto alla mal gestita complessità di Multics. Il primo
sistema operativo che può defnirsi a tutti gli efetti come UNIX fu sviluppato da Thompson nel
1969 per poter eseguire un programma chiamato Space Travel, che simulava i movimenti del sole
e dei pianeti e il movimento di una navicella spaziale.
Una causa antitrust contro la AT&T le vietò di entrare nel settore dell'informatica. AT&T decise
quindi di distribuire UNIX ad un prezzo simbolico alle istituzioni universitarie, senza tuttavia il
permesso di ridistribuire o modifcare il codice.
In breve tempo si formò una comunità mondiale a livello universitario incentrata sullo
sviluppo di nuove componenti e applicazioni per UNIX, coordinata dall'Università di Berkeley, da
dove sarebbe poi uscita la versione BSD - Berkeley Software Distribution di UNIX. Questa versione
è alla base di una delle due famiglie principali di sistemi operativi liberi attualmente più difusi,
tra cui gli esponenti più noti sono FreeBSD, OpenBSD, NetBSD, PC-BSD, DesktopBSD, FreeSBIE,
DarwinOS (il cuore UNIX di Mac OS X) e DragonFly BSD (con le sue distribuzioni FirefyBSD e
GoBSD).
4
L'acronimo BSD viene usato anche per indicare la licenza BSD. In breve, la licenza consente la
redistribuzione del software anche in forma proprietaria, purché venga riconosciuto il merito
all'autore. Chi infatti modifca un programma protetto da licenze BSD, può ridistribuirlo usando
la stessa o qualunque altra licenza (anche non libera), senza avere l'obbligo di redistribuire le
modifche apportate al codice sorgente. Per questo molti esponenti del movimento Free
Software consigliano di non utilizzarle, per poter meglio salvaguardare i proprietari dallo
sfruttamento a fni commerciali del proprio lavoro da parte di terzi, utilizzando al suo posto una
licenza che fornisca più tutele sulle opere derivate, come quella della Free Software Foundation
(GNU GPL). Basti pensare, a titolo di esempio, che se il sistema operativo BSD fosse stato
rilasciato sotto licenza GPL invece che BSD, la Apple non avrebbe mai potuto incorporare il
sistema operativo Darwin (derivato da BSD) all'interno del suo OS X, di cui costituisce il cuore.
Avrebbe potuto farlo solamente rilasciando OS X sotto la medesima licenza GPL. Ma la licenza
del sistema operativo BSD consentiva la chiusura in senso proprietario e lo sfruttamento
commerciale delle opere derivate e di conseguenza la Apple ha potuto includere il generoso
lavoro altrui all'interno di un prodotto destinato al mercato senza violare alcunché.
Questa pratica di cooperazione e libera difusione cominciò a cambiare negli anni ’70 quando i
computer divennero prodotti commerciali e le aziende iniziarono a imporre restrizioni ai loro
programmi attraverso il copyright allo scopo di trarne proftti. In realtà il software commerciale
esisteva da sempre, ma i costi elevati dell'hardware facevano sì che il business delle aziende non
fosse concentrato sul software, che era considerato una parte naturale del prodotto, ed i cui
sorgenti erano in genere pubblici. Con il progressivo crollo dei costi dell'hardware, lo sviluppo
commerciale del software divenne un business notevole, ed il codice sorgente divenne un
investimento prezioso che poteva da un lato far acquisire una fetta di tale mercato in rapida
crescita e dall'altro legare i propri utenti al proprio software mantenendo il segreto sui metodi
utilizzati per lo sviluppo di sistemi e applicazioni. Le aziende iniziarono così a non distribuire i
sorgenti e ad obbligare i propri dipendenti a non rivelare nulla per non avvantaggiare la
concorrenza.
Proprio in questi anni arrivarono le prime riforme riguardanti i diritti d'autore che aprirono alla
tutela dei software e che si conclusero nel 1980 con l'emissione del Computer Software Copyright
Act, che defnì il software come opera soggetta al diritto d'autore in quanto assimilabile ad una
serie di istruzioni utilizzabili tramite un computer per ottenere un risultato. Nello stesso anno
venne emesso anche l'atto normativo Bayh-Dole Act, che consente alle università di privatizzare i
risultati delle ricerche, allo scopo di incoraggiare il trasferimento tecnologico, vale a dire la
ricerca, lo sviluppo e l'applicazione commerciale delle scoperte della ricerca da parte delle
aziende. In questo modo le aziende cominciavano ad utilizzare la legge sul diritto d'autore per
impedire ai concorrenti di leggere e modifcare i loro prodotti, assicurandosi il controllo dei
propri clienti che, senza più poter vedere e modifcare il codice sorgente del software, non
potevano più adattarlo alle loro esigenze ma dovevano chiedere alle aziende di farlo per loro.
Con lo smembramento di AT&T nel 1984 nelle famose sette baby-bells, società più piccole che
operavano a livello locale, la condivisione gratuita di UNIX ebbe fne. Solamente alcune
Università, come Berkeley in California, continuarono a sviluppare la loro versione derivata di
UNIX. AT&T aveva dismesso la propria posizione di operatore dominante ed era diventato un
carrier per le chiamate tra i vari stati. La commercializzazione di UNIX non conosceva quindi più
ostacoli e pertanto UNIX System III (basato sulla settima versione) fu la prima release ad essere
rilasciata dietro corrispettivo di un prezzo e senza codice sorgente. Seguì pochi anni dopo la
versione UNIX System V, che includeva il supporto ad altre architetture. Alcune società ottennero
un'apposita licenza di utilizzo del codice da parte di AT&T e cominciarono a ofrire versioni
5
commerciali di UNIX. Fu appunto da questa derivazione che Bill Joy creò SunOS (ora Solaris e
OpenSolaris) e fondò Sun Microsystems nel 1982. Anche Microsoft ebbe la propria versione di
UNIX, che chiamò XENIX, poi acquisita dalla SCO (Santa Cruz Operation).
Tale deriva commerciale ormai dilagante, portò Richard Stallman a guidare una carica per
difendere la posizione del Free Software, decidendo di scrivere un nuovo sistema operativo
libero in grado di competere contro i ceppi commerciali del sistema operativo UNIX.
“Di cosa ha bisogno la società? Ha bisogno di una informazione che sia realmente disponibile ai
suoi cittadini, per esempio programmi che si possano leggere, correggere, adattare e migliorare, non
soltanto usare. Ma quello che viene consegnato di solito dai proprietari del software è una scatola
nera che non si può studiare o cambiare. La società ha anche bisogno di libertà. Quando un
programma ha un proprietario, gli utenti perdono la libertà di controllare parte della loro stessa vita.
Ma soprattutto la società ha bisogno di stimolare nei propri cittadini lo spirito di cooperazione
volontaria. Quando i proprietari del software ci dicono che aiutare i nostri vicini in maniera naturale
è “pirateria”, essi inquinano lo spirito civico della nostra società. Questo è il motivo per cui diciamo
che il software libero è una questione di libertà, non di prezzo.” (R. Stallman)
E' impossibile comprendere la flosofa dei movimenti liberi senza conoscere Richard Stallman.
--- per approfondire –Storia di UNIX
UNIX è un sistema operativo portabile per computer inizialmente sviluppato da un gruppo di
ricerca dei laboratori AT&T e Bell Laboratories (AT&T Corp.). Il primo sistema operativo che può
defnirsi a tutti gli efetti come UNIX fu sviluppato da Ken Thompson nel 1969 per poter eseguire un
programma chiamato "Space Travel" che simulava i movimenti del sole e dei pianeti, oltre al
movimento di una navicella spaziale che poteva atterrare in diversi luoghi. Lo sviluppo di UNIX si deve
in parte a un progetto precedente, Multics - Multiplexed Information and Computing Service a cui
lavorarono, a partire dal 1964, tre enti: MIT- Massachusetts Institute of Technology, i Bell Laboratories (di
proprietà della AT&T Corp.) e General Electric. Multics nacque con presupposti molto avanzati per
l'epoca, in particolare era un sistema operativo time-sharing: permetteva cioè a più utenti di utilizzare
simultaneamente lo stesso computer. Il progetto si rivelò troppo complesso, specie per i ricercatori
abituati ai sistemi operativi classici e perfettamente lineari e nel 1969 la AT&T abbandonò il progetto
ritenendolo poco utilizzabile nella pratica, a favore di un altro sistema nettamente più semplice, ma
anche molto più modesto: GECOS.
Alcuni ricercatori non ritennero corretta la decisione presa e decisero nonostante tutto di
continuare lo sviluppo del progetto. Furono in particolare Ken Thompson e Dennis Ritchie a non
arrendersi: fu grazie ai loro sforzi che, su una vecchia macchina PDP-7, nacque la versione fnale di
UNIX, nome che stava a sottolineare la semplicità del progetto rispetto alla mal gestita complessità di
Multics. L'invenzione del linguaggio di programmazione C costituisce una fase importante nella storia
di UNIX. Il C, sviluppato da Thompson e Ritchie tra il 1969 e il 1973, ha permesso di portare il kernel,
ossia il nucleo del sistema operativo 5, su piattaforme diverse dall'originario PDP-7, costituendo di fatto
il primo software della storia ad essere in grado di funzionare in ambienti totalmente diversi. Assieme
al kernel, UNIX è stato corredato di una serie di applicazioni standard per la gestione dei fle e degli
utenti, che continuano ad essere usati nei sistemi operativi moderni.
I Bell Laboratories erano di proprietà dell'AT&T, società che gestiva le comunicazioni telefoniche
negli Stati Uniti, la quale deteneva i diritti di UNIX. Proprio in quel periodo, all'inizio degli anni '70, il
sistema telefonico statunitense stava subendo una piccola rivoluzione interna: l'utilizzo di mini5
In informatica, il kernel costituisce il nucleo di un sistema operativo. Si tratta di un software avente il compito di
fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware. Dato che possono
esserne eseguiti simultaneamente più di uno, il kernel ha anche la responsabilità di assegnare una porzione di
tempo-macchina (scheduling) e di accesso all'hardware a ciascun programma (multitasking).
6
computer per la gestione del trafco voce e dati, che erano tuttavia ancora dotati di software che
permetteva operazioni di manutenzione piuttosto limitate. Ben presto si scoprì come UNIX, grazie alla
sua concezione moderna e alla sua versatilità, permettesse ai mini-computer di fare operazioni molto
più complesse e, in particolare, le operazioni di manutenzione potevano essere gestite in remoto,
senza mandare i tecnici a investigare sul posto ad ogni singolo guasto.
AT&T non volle avere alcuna royalty sull'utilizzo e la modifca di UNIX, ciò non a fni di benefcenza,
come si potrebbe erroneamente pensare, ma per una questione politica. In quanto monopolista, AT&T
aveva una gamma di servizi da ofrire al mercato limitato per legge e UNIX non costituiva un afare
direttamente collegato alle telecomunicazioni, anche se sotto certi aspetti lo era. Al centro di forti
critiche per via della sua posizione dominante, AT&T permise che UNIX venisse distribuito
gratuitamente per fni di studio presso le università di tutto il mondo, senza tuttavia il permesso di
ridistribuire o modifcare il codice.
Ottenere una copia del sistema operativo era piuttosto semplice e davvero poco costoso: bastava
pagare le spese di spedizione del supporto. In breve tempo si formò una comunità mondiale a livello
universitario incentrata sullo sviluppo di nuove componenti e applicazioni per UNIX. Grazie a questo
processo, nel corso degli anni settanta videro la luce le prime sett e versioni del sistema operativo. Per
risolvere i problemi di condivisione del codice, si introdusse per la prima volta la copia di fle tra sistemi
dislocati in parti diverse del mondo attraverso la linea telefonica. Il sistema venne chiamato UUCP
(UNIX to UNIX Copy) e nonostante venne ben presto surclassato dalla nascente ARPANET (in seguito
Internet), costituì un esempio dell'ambiente vivace e produttivo che si era costruito attorno a UNIX.
Con lo smembramento di AT&T nel 1984 nelle famose sette baby-bells, società più piccole che
operavano a livello locale, la condivisione gratuita di UNIX ebbe fne. Solamente alcune Università,
come Berkeley in California, continuarono a sviluppare la loro versione derivata di UNIX. L'acronimo
BSD (Berkeley Software Distribution) indica la variante originaria di UNIX sviluppata presso l'Università
di Berkeley in California e alla base di una delle due famiglie principali di sistemi operativi liberi
attualmente più difusi, tra cui gli esponenti più noti sono FreeBSD, OpenBSD, NetBSD, PC-BSD,
DesktopBSD, FreeSBIE, DarwinOS (il cuore unix di Mac OS X) e DragonFly BSD (con le sue distribuzioni
FirefyBSD e GoBSD). L'acronimo BSD viene infatti usato anche per indicare la licenza BSD In breve, la
licenza consente la redistribuzione del software anche in forma proprietaria, purché venga
riconosciuto il merito all'autore. Chi infatti modifchi un programma protetto da licenze BSD, può
ridistribuirlo usando la stessa o qualunque altra licenza (anche non libera), senza avere l'obbligo di
redistribuire le modifche apportate al codice sorgente. Per questo molti esponenti del movimento
Free Software, a cominciare da Richard Stallman suo fondatore, consigliano di non utilizzarle, per
poter meglio salvaguardare i proprietari dallo sfruttamento a fni commerciali del proprio lavoro da
parte di terzi, utilizzando al suo posto una licenza che fornisca più tutele sulle opere derivate, come
quella della Free Software Foundation (GPL). Basti pensare, a titolo di esempio, che se il sistema
operativo BSD fosse stato rilasciato sotto licenza GPL invece che BSD, la Apple inc. non avrebbe mai
potuto incorporare il sistema operativo Darwin (derivato da BSD) all'interno del suo OS X, di cui
costituisce il cuore. O avrebbe potuto farlo, a patto di rilasciare OS X sotto la medesima licenza GPL.
Invece, la licenza del sistema operativo BSD consentiva la chiusura in senso proprietario e lo
sfruttamento commerciale delle opere derivate e di conseguenza la Apple ha potuto includere il
generoso lavoro altrui all'interno di un prodotto destinato al mercato (OS X) senza violare alcunché.
AT&T aveva dimesso la propria posizione di operatore dominante ed era diventato un carrier per le
chiamate tra i vari stati. La commercializzazione di UNIX non conosceva più ostacoli e pertanto UNIX
System III (basato sulla settima versione) fu la prima release ad essere rilasciata dietro corrispettivo di
un prezzo e senza codice sorgente. Seguì pochi anni dopo la versione UNIX System V, che includeva il
supporto ad altre architetture. Altre società cominciarono a ofrire versioni commerciali di UNIX:
alcune ottennero un'apposita licenza di utilizzo del codice da parte di AT&T, altre si afdarono al ramo
di sviluppo creato dall'Università di Berkeley e fu proprio da questa derivazione che Bill Joy creò
SunOS (ora Solaris e OpenSolaris) e fondò Sun Microsystems nel 1982. Anche Microsoft ebbe la
propria versione di UNIX, che chiamò XENIX, poi acquisita dalla SCO (Santa Cruz Operation); si deve
proprio alla SCO l'opera per renderla compatibile con i sistemi Intel 386. Nel 1984 nacque il primo vero
standard di UNIX, il SVR4 o System V Release 4, che racchiudeva tutte le innovazioni promosse dalle
varie società che avevano commercializzato UNIX fnora come Sun, BSD, SCO e IBM.
Nel 1993 AT&T decise di vendere tutti i diritti di UNIX a Novell, con i quali creò UnixWare, un sistema
che integrava la tecnologia alla base di NetWare. Poi UnixWare si trovò a dover competere con
Microsoft Windows NT, ma essendo mancante di un supporto commerciale valido alla lunga perse la
7
battaglia. Inizialmente la SCO supportò Linux con una propria distribuzione e collaborò attivamente
nell'intento di rendere più appetibile il suo UNIX schiacciato dalla concorrenza Microsoft; accadde,
però, che mentre la SCO perdeva le vendite a causa di un inadeguato supporto commerciale, le
piccole ditte di Linux crescevano incredibilmente. La crescita di Linux causò non pochi problemi a
SCO, che venne schiacciata dalla forte crescita di Linux da un lato e dalla forza commerciale di
Microsoft dall'altro. Decise allora di ricorrere per vie legali contro IBM e altre società che utilizzavano
fortemente Linux al centro del proprio business. Le accuse riguardano presunte violazioni di copyright
nel kernel di Linux; ciò signifca che alcune parti di Linux, secondo SCO, sarebbero state copiate dal
kernel di UNIX, di cui SCO aferma di detenere i diritti.
All'inizio del 2007 SCO fornì i dettagli specifci della presunta violazione di copyright. Diversamente
dalle precedenti afermazioni che vedevano SCO proprietaria di 1 milione di righe di codice,
specifcarono soltanto 326 linee di codice, la maggior parte del quale non era coperto da copyright. Ad
Agosto 2007, la corte nel caso Novell stabilì che SCO non possedeva neanche i diritti di copyright su
UNIX. Curiosamente anche BSD sofrì di un attacco legale simile (relativamente alla neo-distribuzione
BSD/386), ad opera della AT&T. La disputa si concluse nel 1994, largamente a favore di BSD, dove, tra
18000 fle, soltanto 3 dovettero essere rimossi dal sistema e 70 modifcati in termini di licenza.
8
2. Libero software in libero stato
Il progetto GNU e la ri-nascita del software libero
“Free software is a matter of liberty, not price.
To understand the concept,
you should think of “free” as in “free speech,”
not as in “free beer”.
R. Stallman
La saga di Stallman ebbe inizio nel 1971 al MIT, un istituto che ha sempre rappresentato una
fucina di scienziati e ingegneri di massimo livello e che si è sempre collocato all'avanguardia
rispetto a tutto ciò che avviene in ambito informatico.
“Quando cominciai a lavorare nel laboratorio di Intelligenza Artifciale del MIT nel 1971, entrai a
far parte di una comunità in cui ci si scambiavano i programmi, che esisteva già da molti anni. La
condivisione del software non si limitava alla nostra comunità; è un cosa vecchia quanto i computer,
proprio come condividere le ricette è antico come il cucinare. Ma noi lo facevamo più di quasi
chiunque altro.”6 (R. Stallman)
Stallman ben presto si accorse che la consuetudine di distribuire software in pubblico
dominio7 nascondeva in realtà parecchie falle. Pubblico dominio signifcava che la proprietà
intellettuale non era sotto il possesso e il controllo di nessuno, ma anche che, paradossalmente,
avrebbe potuto essere soggetta a maggiori limitazioni. Il problema era che le aziende potevano
copiare il codice dei programmi posti sotto il pubblico dominio, modifcarlo e tenere poi segrete
queste alterazioni. Prendere senza restituire appariva agli occhi di Stallman ingiusto e provocò
un gran numero di dispute tra lui e le società che si accaparravano e commercializzavano il
codice che Stallman stesso aveva contribuito a scrivere. Mentre lui aveva liberamente distribuito
la sua opera di perfezionamento sotto il regime del pubblico dominio, le aziende commerciali
non erano invece obbligate a condividere la loro opera di miglioramento. Infatti, una società
poteva imporre limiti all'uso del materiale proveniente dal pubblico dominio, tutelando tramite
copyright le modifche apportate a quel materiale, rendendolo così non più disponibile
gratuitamente.
Un'occasione particolare spinse Stallman a iniziare la sua battaglia, ossia un caso in cui una
stampante non funzionava e gli utenti non potevano risolvere il problema poiché il codice
sorgente non era aperto. La spinta fnale alla flosofa Free Software e il suo manifesto fu uno
scontro tra Stallman e la Symbolic riguardante l'impossibilità per Stallman di accedere ai
cambiamenti che la Symbolic aveva apportato a un programma scritto da lui stesso.
“Mi trovai di fronte ad una difcile scelta morale. La scelta facile sarebbe stata quella di unirsi al
mondo del software proprietario, frmando accordi di non-difusione e promettendo di non aiutare i
miei compagni hacker. Con ogni probabilità avrei anche sviluppato software che sarebbe stato
distribuito secondo accordi di non-difusione, contribuendo così alla pressione su altri perché a loro
volta tradissero i propri compagni. In questo modo avrei potuto guadagnare, e forse mi sarei
6
7
http://www.gnu.org/gnu/thegnuproject.it.html
Il modo più semplice per rendere un programma libero è dichiararlo di dominio pubblico, privo di copyright (in
Italia questo concetto a rigore non esiste, perché l'autore non può rinunciare alla paternità dell'opera). Ciò permette
a chiunque di condividere il programma e i suoi miglioramenti. Tuttavia, permette anche a chi non vuol cooperare
di convertire il programma in software proprietario. Costoro possono infatti apportare modifiche, che siano
significative o meno, e distribuire il risultato come prodotto proprietario.
9
divertito a programmare. Ma sapevo che al termine della mia carriera mi sarei voltato a guardare
indietro, avrei visto anni spesi a costruire muri per dividere le persone, e avrei compreso di aver
contribuito a rendere il mondo peggiore.” (R. Stallman)
Stallman decise così che la soluzione di questo problema sarebbe diventata la sua crociata e,
nel marzo del 1985, scrisse il Manifesto GNU 8, che descriveva le sue motivazioni per creare un
sistema operativo libero che potesse girare su un ampio numero di macchine diferenti. Stallman
decise di scegliere il ben noto e all'epoca assai difuso sistema operativo UNIX come base per il
proprio lavoro e fece riferimento a questo nuovo progetto con il nome di GNU, usando
l'acronimo ricorsivo “GNU is not Unix”. Nella sua concezione il sistema GNU avrebbe dovuto
avviare un semplice ambiente operativo per fornire agli utenti strumenti di sviluppo liberi da
utilizzare per creare nuovo software libero.
Stallman propose inoltre un sistema chiamato provocatoriamente “licenza di copyleft” 9, in
contrapposizione alle tradizionali restrittive licenze di copyright. Questo tipo di licenza
assicurava che chiunque potesse studiare, utilizzare, modifcare e distribuire un'opera e le opere
che da essa derivano. La licenza di copyleft aferma che le opere derivate debbano essere
altrettanto liberamente disponibili, restando sottoposte allo stesso tipo di licenza, una sorta di
licenza “virale”.
Subito dopo il lancio del progetto GNU, Stallman coniò il termine "software libero" e fondò la
Free Software Foundation (FSF), impegnata nello sviluppo di applicazioni software libere, tutte
sottoposte alla nuova GNU GPL – GNU General Public License 10. Pubblicata per la prima volta nel
1989, buona parte del software libero viene ora distribuito con la licenza GNU GPL, scritta dallo
stesso Stallman con la collaborazione di Eben Moglen 11. Dal punto di vista dello sviluppo
software, la licenza GPL viene considerata una delle più restrittive, poiché impone che
necessariamente ogni prodotto software derivato, che modifca o usa codice sotto licenza GPL,
venga a sua volta distribuito con la stessa licenza.
“Lo scopo di GNU consisteva nell'ofrire libertà agli utenti, non solo nell'ottenere ampia difusione.
Avevamo quindi bisogno di termini di distribuzione che evitassero che il software GNU fosse
trasformato in software proprietario. Il metodo che usammo si chiama 'copyleft'. Il copyleft
(impropriamente tradotto come permesso d'autore) usa le leggi sul copyright, ma le capovolge per
ottenere lo scopo opposto: invece che un metodo per privatizzare il software, diventa infatti un
mezzo per mantenerlo libero.” (R. Stallman)
Secondo Richard Stallman e la Free Software Foundation, un software si può defnire libero
solo se garantisce quattro "libertà fondamentali":
•
Libertà 0: Libertà di eseguire il programma per qualsiasi scopo.
•
Libertà 1: Libertà di studiare il programma e modifcarlo.
•
Libertà 2: Libertà di ridistribuire copie del programma in modo da aiutare il prossimo.
•
Libertà 3: Libertà di migliorare il programma e di distribuirne pubblicamente i
8
9
http://www.gnu.org/gnu/manifesto.it.html
Si tratta di un gioco di parole: copyright (diritto di autore) è formato dalle parola "copy" (copia) e "right" (diritto,
ma anche destra), opposto di "left" (sinistra, ma anche lasciato).
10 http://www.gnu.org/licenses/licenses.it.html
11 Professore di legge e storia legale presso la Columbia Law School di New York, è membro della Free Software
Foundation per la quale opera come consulente legale. In questa veste ha partecipato alla stesura di molte delle
licenze dell'organizzazione, tra cui vale la pena di ricordare la GNU General Public License. Si occupa di software
libero e presiede il Software Freedom Law Center, da lui fondato nel febbraio 2005. È il fondatore del progetto
FreedomBox.
10
miglioramenti, in modo tale che tutta la comunità ne tragga benefcio.
Una licenza simile, ma meno restrittiva, è la GNU LGPL - GNU Lesser General Public License, che
permette di utilizzare il codice anche in software proprietario e sotto altre licenze open source,
purché le parti coperte da LGPL - anche se modifcate - vengano comunque distribuite sotto la
medesima licenza.
Esiste infne la GNU GFDL - GNU Free Documentation License, una forma di copyleft pensata
per un manuale, libro di testo o altro documento, in modo da garantire a chiunque l'efettiva
libertà di usarlo e distribuirlo, con o senza modifche, commercialmente o meno.
Le licenze d'uso non vietano in genere di vendere software libero e di solito non stabiliscono
minimamente il possibile prezzo di vendita12.
“Molta gente crede che lo spirito del progetto GNU sia che non si debba far pagare per distribuire
copie del software, o che si debba far pagare il meno possibile - solo il minimo per coprire le spese.
Questo è un fraintendimento. In realtà noi incoraggiamo chi ridistribuisce il software libero a far
pagare quanto vuole o può. Se vi sembra sorprendente, per favore continuate a leggere. Il termine
'free' ha due legittimi signifcati comuni in inglese; può riferirsi sia alla libertà che al prezzo. Quando
parliamo di 'free software', parliamo di libertà, non di prezzo. Si pensi all'espressione 'free speech'
(libertà di parola) piuttosto che all'espressione 'free beer' (birra gratis). In particolare, signifca che
l'utente è libero di eseguire il programma, modifcarlo, e ridistribuirlo con o senza modifche. I
programmi liberi sono talvolta distribuiti gratuitamente, e talvolta ad un prezzo consistente. Spesso
lo stesso programma è disponibile in entrambe le modalità in posti diversi. Il programma è libero
indipendentemente dal prezzo, perché gli utenti sono liberi di utilizzarlo.” (R. Stallman)
Il progetto GNU, fnanziato dalla FSF, venne prodotto da programmatori appositamente
stipendiati. I principali contributi vennero da Stallman stesso: lo GNU Compiler Collection 13 e
l'editor di testo Emacs. Furono sviluppate anche altre componenti di sistema UNIX, alle quali si
sono aggiunte applicazioni per veri e propri giochi. Questi programmi furono distribuiti per circa
150$ che oltre a coprire i costi di riproduzione garantivano un servizio di supporto al cliente.
L'unica condizione era che tutte le modifche eventualmente efettuate su tali programmi
venissero notifcate agli sviluppatori.
All’inizio degli anni ’90, il progetto GNU aveva prodotto o integrato tutto ciò che era
necessario per un sistema operativo, eccetto l'elemento fondamentale: il software GNU Hurd 14
che nelle intenzioni di Stallman avrebbe dovuto sostituire il kernel 15 UNIX, ma il cui sviluppo
continuava a subire rallentamenti.
“Originariamente il kernel GNU non avrebbe dovuto chiamarsi Hurd; il suo nome originale era Alix,
come la donna di cui ero innamorato in quel periodo. Alix, che era amministratrice di sistemi Unix,
aveva sottolineato come il suo nome corrispondesse ad un comune schema usato per battezzare le
versioni del sistema Unix: scherzosamente diceva ai suoi amici: "qualcuno dovrebbe chiamare un
12 http://www.gnu.org/philosophy/selling.it.html
13 http://it.wikipedia.org/wiki/GNU_Compiler_Collection
14 HURD è un acronimo doppiamente ricorsivo che significa Hird of Unix-Replacing Daemons (Hird di demoni che
sostituiscono Unix). E poi "Hird" sta per Hurd of Interfaces Representing Depth (Hurd di interfacce che
rappresentano la profondità). Le parole "hurd" e "hird" non hanno alcun significato in lingua inglese, ma si
pronunciano come la parola inglese "herd", che significa branco, quindi "GNU HURD" può significare "branco di
gnu": http://it.wikipedia.org/wiki/GNU_Hurd.
15 In informatica, il kernel è il componente software di base in un sistema operativo, la prima applicazione che parte e
permette a tutte le altre di avviarsi, accedere al disco rigido del computer e alla scheda di rete, di visualizzare
elementi sul monitor e via dicendo. "Linux" è di per sé un kernel, e tutti i sistemi operativi ne hanno uno: quello di
MacOS si chiama "Darwin", quello di Windows "NT": http://it.wikipedia.org/wiki/Kernel. i
11
kernel come me". Io non dissi nulla ma decisi di farle una sorpresa scrivendo un kernel chiamato Alix.
Le cose non andarono così. Michael Bushnell (ora Thomas), principale autore del kernel, preferì il
nome Hurd, e chiamò Alix una parte del kernel, quella che serviva a intercettare le chiamate di
sistema e a gestirle inviando messaggi ai server che compongono Hurd. Infne io e Alix ci lasciammo e
lei cambiò nome; contemporaneamente la struttura di Hurd veniva cambiata in modo che la libreria
C mandasse messaggi direttamente ai server, e così il componente Alix scomparve dal progetto.” (R.
Stallman)
Ci si riferisce spesso a Hurd come al "kernel del progetto GNU", ma tale defnizione è inesatta
poiché il kernel è la sola parte del sistema operativo che viene eseguita in kernel mode, cioè
utilizza un sottoinsieme privilegiato delle istruzioni del processore, cioè il codice macchina
eseguito in tale modalità ha accesso illimitato alla memoria, all'hardware e alle altre risorse. Hurd,
invece, è formato da un insieme di server che interagiscono tra loro utilizzando il microkernel
GNU Mach (basato sul kernel Mach). Sono proprio questi server che implementano il fle system,
i protocolli di rete, i permessi degli utenti, e tutti gli altri servizi che vengono generalmente
oferti da un kernel classico. Un sistema così concepito presenta molti vantaggi: per esempio,
consente modifche, manutenzione ed estensioni delle sue funzionalità senza dover essere
ricompilato completamente e, talvolta, senza nemmeno riavviare la macchina sulla quale è in
esecuzione. Ciò vale anche in caso di crash, in quanto la caduta di uno dei server non
bloccherebbe l'intero computer. Lo svantaggio principale è il maggior tempo che occorre per
progettarlo e renderlo stabile. Infatti, il progetto non è ancora giunto alla versione 1 e
attualmente viene utilizzato il kernel Linux per implementare un sistema GNU completo.
Attualmente gli sviluppatori non rilasciano una vera e propria distribuzione Hurd, ma esiste
una distribuzione Debian che lo utilizza. L'ultima versione ufciale di Hurd rilasciata senza
Debian è la 0.2 nel 1997. L'ultima versione di Debian GNU/Hurd, invece, è la L1 rilasciata nel
2009. La distribuzione Debian segue strettamente lo sviluppo ufciale di Hurd e spesso
aggiunge nuove caratteristiche. Né Hurd, né la distribuzione Debian che lo utilizza sono pronti
per un uso quotidiano, in quanto alcuni problemi nel port dei pacchetti Debian non sono ancora
stati risolti (attualmente funziona il 68% di essi) e alcune caratteristiche ancora mancano. Lo
sviluppo è comunque attivo e il software sta lentamente guadagnando stabilità.
--- per approfondire –Vita e miracoli di Richard Stallman
“Sono Richard Stallman, inventore dell'editor EMACS originale, poi molto imitato; attualmente mi trovo
al laboratorio di Intelligenza Artifciale del MIT. Ho lavorato molto su compilatori, editor di testo, debugger,
interpreti di comandi, l'Incompatible Timesharing System e il sistema operativo della Macchina Lisp. Ho
introdotto il display indipendente dal terminale su ITS. Inoltre, ho implementato un fle system a prova di
crash e due sistemi a fnestre per le macchine Lisp” così si presentava Stallam nell'annuncio ufciale del
progetto GNU, avvenuto il 27 settembre 1983.
Stallman nacque da Daniel Stallman e Alice Lippman nel 1953 a New York. La sua prima esperienza
con i computer fu presso l'IBM New York Scientifc Center: Stallman passò l'estate dopo il diploma di
scuola superiore scrivendo il suo primo programma, un processore per il linguaggio di
programmazione PL/I sull'IBM 360. Durante questo periodo, fu anche un assistente di laboratorio
volontario presso il dipartimento di biologia alla Rockefeller University. Sebbene si stesse già
indirizzando verso una carriera da matematico o fsico, il suo professore alla Rockefeller pensò che
avrebbe avuto un futuro come biologo.
Nel giugno del 1971 al primo anno da studente all'università Harvard, Stallman diventò un
12
programmatore al laboratorio IA - Intelligenza Artifciale del MIT. Qui prese parte alla comunità degli
hacker, dove era conosciuto con la sigla "rms" (nella prima edizione del dizionario dell'Hacker scrisse:
Richard Stallman è solo il mio nome mondano; tu puoi chiamarmi "rms").
Stallman si laureò con lode alla Harvard in Fisica nel 1974. In seguito si iscrisse ad un corso postlaurea in fsica al MIT, ma abbandonò gli studi universitari, rimanendo un programmatore al
laboratorio di Intelligenza Artifciale. Comunque Stallman è stato premiato con 6 dottorati onorari e 2
cattedre universitarie onorarie.
Mentre era studente al MIT, Stallman pubblicò una relazione su “Truth Maintenance System”
(revisione controllata) intitolata “dependency-directed backtracking” con Gerald Jay Sussman. Questa
relazione fu un primo lavoro sul problema dell'”Intelligent backtracking” nel “constraint satisfaction
problems” (soddisfazione dei vincoli). Dal 2003, la tecnica introdotta da Stallman e Sussman è ancora il
metodo più generale e potente di “Intelligent backtraking”. In questa relazione fu anche introdotta la
tecnica “constraint recording” (memorizzazione dei vincoli) in cui risultati parziali di una ricerca sono
registrati per un loro reiterato riutilizzo.
Come hacker al laboratorio di intelligenza artifciale del MIT, Stallman lavorò su progetti di software
come TECO, Emacs, e il sistema operativo per Lisp Machine.
Fu fortemente critico sulla politica di limitazione dell'accesso ai computer dei laboratori impostata al
MIT. Quando nel 1977 il laboratorio per le scienze del computer (LCS) del MIT installò un sistema di
accesso limitato controllato da password Stallman trovò un modo per decrittare le password e inviò
agli utenti un messaggio contenente la loro password decodifcata, con il suggerimento di cambiarla
con una stringa vuota (che signifca non immettere password), per permettere nuovamente l'accesso
anonimo al sistema. Circa il 20% degli utenti seguirono il suo consiglio, sebbene gli accessi con
password alla fne prevalsero. Stallman si vantò del successo nella sua campagna per molti anni a
seguire.
Nei tardi anni settanta e primi anni ottanta, la cultura hacker che Stallman portava avanti cominciò a
frammentarsi. Per evitare che il software fosse usato sui computer dei concorrenti, la maggior parte
dei produttori smise di distribuire il codice sorgente e cominciò a usare Copyright e licenze restrittive
per il software, per limitarne o proibirne la copia e la redistribuzione. Tale proprietà dei software già
esisteva prima, e divenne chiaro che sarebbe diventata la norma.
Quando Brian Reid nel 1979 mise “time bombs” in Scribe per limitare l'accesso senza licenza al
software, Stallman lo considerò “un crimine contro l'umanità”. Egli chiarì, anni dopo, che quello che lui
considera un crimine non è far pagare i software, bensì ostacolare la libertà dell'utente.
Nel 1980, a Stallman e ad alcuni altri hacker del laboratorio di intelligenza artifciale fu rifutato il
codice sorgente del software per la stampante laser Xerox 9700 (“Dover”), la prima del settore.
Stallman aveva modifcato il software su una vecchia stampante (la XGP, Xerographic Printer); con la
sua modifca l'utente riceveva dalla stampante un messaggio elettronico che gli segnalava il
completamento della stampa da lui richiesta. Tutti gli utenti in coda di stampa venivano anche
avvertiti di condizioni di congestione di code di stampa, in modo che l'utente si potesse attendere un
ritardo nella stampa. Vedere impedito questo servizio aggiuntivo, per l'indisponibilità del codice
sorgente della stampante, non era un inconveniente trascurabile, dato che, come accadeva spesso, la
stampante era unica per diversi utenti su diversi piani, e presso la stampante fnivano per sostare
diverse persone, a perdere tempo prezioso in attesa, o a districarsi fra le altrui stampe non ritirate.
Questa esperienza convinse Stallman che le persone hanno bisogno di essere libere di modifcare il
software che usano.
Nel 1980, Richard Greenblatt, un compagno hacker del laboratorio AI, fondò Lisp Machines, Inc.
(LMI) per commercializzare Lisp machines, che lui e Tom Knight avevano creato in laboratorio.
Greenblatt rifutò investimenti esterni, credendo che i proftti dalla costruzione e dalla vendita di un
po' di macchine poteva essere reinvestito con proftto per la crescita della società. Al contrario, gli altri
hacker ritenevano che fosse meglio l'avvicinamento di una venture capital fnanziatrice. Poiché non fu
possibile raggiungere alcun accordo, hacker dell'ultimo campo fondarono Symbolics, con l'aiuto di
Russ Noftsker, un amministratore del laboratorio AI. Symbolics reclutò la maggior parte degli hacker
rimasti incluso l'insigne hacker Bill Gosper, che poi lasciò il laboratorio AI. Symbolics costrinse
Greenblatt anche a dimettersi citando le politiche del MIT. Mentre entrambe le compagnie
rilasciavano software proprietario, Stallman credeva che LMI, a diferenza di Symbolics, avesse provato
ad evitare di danneggiare la comunità del laboratorio. Per due anni, dal 1982 alla fne del 1983,
Stallman lavorò da solo per clonare la produzione dei programmatori di Symbolics, con lo scopo di
13
evitare che essi ottenessero un monopolio sui computer del laboratorio.
Comunque, fu l'ultimo della sua generazione di hacker nel laboratorio. Rifutò un futuro dove
avrebbe dovuto frmare accordi di non divulgazione per non condividere codici sorgente o
informazioni tecniche con altri sviluppatori di software e compiere altre azioni che considerava
tradimenti dei suoi principi. Scelse invece di condividere il suo lavoro con altri, in quello che
considerava un classico spirito di collaborazione. Sebbene Stallman non partecipasse negli anni
sessanta all'era della controcultura, fu ispirato dal suo rifuto della ricerca della ricchezza come primo
obiettivo di vita. Stallman sostiene che gli utenti di software dovrebbero avere la libertà di
“condividere con i loro vicini” e di essere in grado di studiare e fare modifche al software che loro
usano.
Ha ripetutamente detto che i tentativi dei venditori di software proprietario di proibire questi atti
sono “antisociali” e “non etici”. La frase “il software vuole essere libero” gli è spesso non correttamente
attribuita, e Stallman sostiene che questa è una descrizione inesatta della sua flosofa. Egli sostiene
che la libertà è vitale per il bene degli utenti e della società come un valore morale, e non puramente
per ragioni pragmatiche come sviluppare in qualche modo un software tecnicamente superiore. Per
evitare eventuali infuenze da parte del MIT, nel gennaio 1984 Stallman lasciò il suo lavoro per
dedicarsi a tempo pieno al progetto GNU, che aveva annunciato nel settembre del 1983.
Stallman annunciò il progetto per il sistema operativo GNU nel settembre 1983 su molte mailing list
ARPAnet e Usenet. Nel 1985, Stallman pubblicò il manifesto GNU, che descriveva le sue motivazioni
per creare un sistema operativo libero chiamato GNU, che sarebbe stato compatibile con Unix. Il nome
GNU è un acronimo ricorsivo per "GNU's Not Unix (GNU non è Unix)".
Poco dopo, diede vita a una corporazione no proft chiamata Free Software Foundation per
impiegare programmatori di software libero e fornire un'infrastruttura legale per il movimento del
software libero. Stallman ne è il presidente non stipendiato.
Nel 1985, Stallman inventò e rese popolare il concetto di copyleft, un meccanismo legale per
proteggere i diritti di modifca e redistribuzione per il software libero. Fu inizialmente implementato
nella GNU Emacs General Public License, e nel 1989 il primo programma indipendente sotto licenza
GPL fu rilasciato.
Da allora, gran parte del sistema GNU è stato completato. Stallman contribuì con molti strumenti
necessari, inclusi un editor di testo, un compilatore, un debugger, un build automator (un metodo
automatico di compilazione da codice sorgente a codice binario). Quello che ancora mancava era il
kernel. Nel 1990, membri del progetto GNU cominciarono lo sviluppo di un kernel chiamato GNU
Hurd, che deve ancora raggiungere il livello di maturità richiesto per l'uso difuso.
Nel 1991, Linus Torvalds, uno studente fnlandese, usò gli strumenti di sviluppo GNU per produrre il
kernel Linux. I programmi esistenti del progetto GNU furono prontamente adattati per funzionare con
il kernel Linux ed ora molti sorgenti usano il nome “Linux” per riferirsi al sistema operativo general
purpose risultante. Nella comunità del software libero ne è risultata una controversia sul nome da
utilizzare per il nuovo sistema operativo. Stallman sostiene che non usare “GNU” sminuisce
ingiustamente il valore del progetto GNU e nuoce alla sostenibilità del movimento del software libero
rompendo il collegamento tra il software e la flosofa del software libero del progetto GNU.
Le infuenze di Stallman sulla cultura hacker includono il nome POSIX e l'editor Emacs. Sui sistemi
UNIX, la popolarità di GNU Emacs fece concorrenza all'altro editor vi, provocando una guerra fra
editor. Stallman prese posizione su questo canonizzando scherzosamente se stesso come "St.
IGNUcius" della Chiesa di Emacs e riconoscendo che "vi vi vi è l'editor del diavolo", mentre "usare una
versione libera di vi non è un peccato; è una penitenza".
Un numero di sviluppatori vide Stallman come un personaggio difcile con cui lavorare da un punto
di vista politico, interpersonale o tecnico. Intorno al 1992, sviluppatori alla Lucid Inc. facendo il loro
lavoro su Emacs si scontrarono con Stallman e alla fne fecero un fork sul software. Il loro fork più tardi
diventò XEmacs.
Un archivio email pubblicato da Jamie Zawinski documenta le loro critiche e le risposte di Stallman.
Ulrich Drepper, che Stallman aveva nominato per lavorare sul GNU libc per il Progetto GNU, pubblicò
lamentele contro Stallman nelle note per la release di glibc 2.2.4. Drepper accusa Stallman di aver
tentato una "scalata ostile " del progetto, riferendosi a lui come un "maniaco del controllo e matto da
legare." Eric S. Raymond, che a volte proclama di parlare a nome di una parte dei membri del
movimento open source, ha scritto molti articoli in toni aspramente critici, nei quali spiega il
disaccordo del movimento open source con Stallman e il movimento per il software libero.
14
3. L'unione fa la forza
GNU/Linux e la nascita del primo sistema operativo completamente libero
“Se tu hai una mela, e io ho una mela, e ce le scambiamo,
allora tu ed io abbiamo sempre una mela per uno.
Ma se tu hai un’idea, ed io ho un’idea, e ce le scambiamo,
allora abbiamo entrambi due idee.”
G. B. Shaw
Il nome del progetto che è riuscito a raggiungere l'obiettivo prefssato da Stallman, cioè un
sistema operativo completo e interamente libero, è ormai entrato nella leggenda: Linux. Avviato
dall'hacker16 fnlandese Linus Torvalds, il progetto è cresciuto rapidamente e ha raccolto
volontari da tutto il mondo, ispirandosi alla visione di Stallman relativa alle modalità di copia,
analisi e miglioramento del software.
Tutto ebbe inizio quando Torvalds cominciò a testare un piccolo sistema operativo Unix-like 17
chiamato “MINIX”18. Andrew S. Tanenbaum, professore ordinario di Sistemi di rete alla Vrije
Universiteit ad Amsterdam, creo MINIX nel 1987 per esemplifcare i principi dei sistemi operativi
spiegati nel suo libro di testo, nel quale erano anche riportate le 12.000 righe del codice
sorgente.
Al momento del suo sviluppo originale, la licenza di MINIX era considerata piuttosto liberale. Il
suo costo di licenza era molto piccolo rispetto a quelli di altri sistemi operativi, appena 60$.
Anche se Tanenbaum desiderava che MINIX fosse il più possibile accessibile agli studenti, il suo
editore non era invece disposto ad ofrire materiale che avrebbe potuto essere copiato
liberamente, come il codice sorgente, così venne applicata una tassa di licenza nominale, inclusa
nel prezzo del libro, come compromesso.
Torvalds, appassionato di programmazione, era tuttavia insoddisfatto del sistema operativo
MINIX, poiché supportava male la nuova architettura i386 19 a 32 bit, all'epoca tanto economica e
popolare. Così Torvalds decise di creare un nuovo kernel UNIX.
“Sono convinto che l'informatica abbia molto in comune con la fsica. Entrambe si occupano di
come funziona il mondo a un livello abbastanza fondamentale. La diferenza, naturalmente, è che
mentre in fsica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confni del
16 http://it.wikipedia.org/wiki/Hacker
17 In informatica con il termine Unix-like (spesso abbreviato con *nix), si indicano tutti quei sistemi operativi che
sono progettati seguendo le direttive dei sistemi Unix descritte nella Single UNIX Specifcation (una defnizione
di una serie di standard che i sistemi operativi per computer devono rispettare per potersi fregiare del nome
"Unix"), ma che, per questioni legali, non possono usare il marchio UNIX. Il nome UNIX, infatti, è un marchio
registrato da The Open Group, autore della Single Unix Specifcation, e viene concesso in licenza solo dopo un
costoso processo di certifcazione. I sistemi operativi (come i BSD e le distribuzioni GNU/Linux) che non hanno
un'azienda alle spalle che intenda sostenere i costi di questa certifcazione sono quindi costretti a defnirsi
"Unix-like". Tuttavia nell'uso comune quest'ultimo termine designa prevalentemente i sistemi operativi BSD (che
possono usare questa indicazione per motivi storici): http://it.wikipedia.org/wiki/Unix-like.
18 http://it.wikipedia.org/wiki/MINIX
19 L'Intel i386 o Intel 80386 è una famiglia di microprocessori monolitici general purpose x86 dell' Intel Corporation
prodotti tra il 1985 e il 2007. La famiglia di microprocessori Intel i386 è stata utilizzata come CPU per personal
computer principalmente tra il 1986 e il 1994. I microprocessori della famiglia Intel i386 sono stati i primi
microprocessori Intel dotati di architettura a 32 bit e modalità protetta con supporto hardware alla memoria
virtuale paginata: http://it.wikipedia.org/wiki/Intel_80386.
15
computer, sei tu il creatore. Controlli – almeno potenzialmente – tutto ciò che vi succede. Se sei
abbastanza bravo, puoi essere un dio. Su piccola scala.” (L. Torvalds)
Inizialmente, Linux per girare utilizzava, oltre al kernel di Torvalds, lo userspace 20 di MINIX.
Successivamente, Torvalds decise di rendere il sistema indipendente da MINIX, perché non ne
gradiva la licenza che lo rendeva liberamente utilizzabile solo a fni didattici e decise di sostituire
quella parte del sistema operativo col software del progetto GNU; e così la licenza cambiò in
GPL.
Linux, all'inizio, era un semplice emulatore di terminale 21 scritto nei linguaggi di
programmazione C e assembly, e non aveva bisogno di appoggiarsi a un sistema operativo.
L'emulatore di terminale avviava e gestiva due thread: uno per mandare segnali alla porta seriale,
uno per riceverli; quando poi Torvalds ebbe bisogno di leggere e scrivere fle su disco, questo
emulatore fu esteso in modo che potesse gestire un fle system. Lentamente questo programma
si trasformò in un intero kernel in grado di gestire un sistema operativo e Torvalds iniziò a
documentarsi sulle specifche POSIX.
In informatica, POSIX (o Posix: Portable Operating System Interface for Unix) è il nome che
indica la famiglia degli standard defniti dall’IEEE - Institute of Electrical and Electronic Engineers,
un'associazione internazionale con l'obiettivo della promozione delle scienze tecnologiche. Gli
standard POSIX derivano da un progetto, iniziato intorno al 1985, fnalizzato alla
standardizzazione delle API 22 per i software sviluppati per le diverse varianti dei sistemi operativi
UNIX. Il compito dello standard POSIX è quello di defnire alcuni concetti base che vanno seguiti
durante la realizzazione del sistema operativo.
Essendosi impegnato per migliorare il codice, Torvalds decise di pubblicare su Internet i
risultati del suo lavoro. La prima versione del kernel Linux, la 0.01, fu pubblicata su Internet il 17
settembre 1991. Torvalds preferiva chiamare Freax il kernel a cui stava lavorando, ma Ari
Lemmke, assistente alla Helsinki University of Technology che gli aveva oferto lo spazio FTP per il
progetto (ftp.funet.f), preferì assegnare alla subdirectory dedicata il nome alternativo di
lavorazione Linux.
Avvenne subito un fatto curioso: c'era chi scaricava le sue modifche, le testava, migliorava il
codice correggendo qualche piccolo errore e difetto e, soprattutto, gli rimandava indietro il
codice aggiornato. Egli era solito raccogliere i contributi che giungevano, integrarli e rilasciare
una nuova versione aggiornata a disposizione per il download. Si venne così a creare una massa
critica dedita a questo processo. Torvalds non era l'artefce del perfezionamento del software, ma
agiva semplicemente da coordinatore principale di questa nuova comunità di appassionati,
20 Nei sistemi operativi, lo spazio utente è uno spazio per applicazioni eseguite in modalità utente esterno al
kernel e protetto attraverso la separazione dei privilegi.
21 Un terminale virtuale (o emulatore di terminale) è un programma o un servizio del sistema operativo che emula
il comportamento di un terminale testuale. In ambiente Unix un terminale è un dispositivo attraverso cui
l'utente interattivo può dialogare con un interprete di comandi o altri programmi. Il termine viene usato
indiferentemente per indicare il dispositivo fsico composto da tastiera e monitor o per indicare il fle speciale
che viene usato dalle applicazioni per comunicare con la periferica. Oggi quando si parla di «terminale» ci si
riferisce quasi sempre al concetto astratto di terminale o ad un programma che svolge le stesse funzioni, che è
perciò detto terminale virtuale o emulatore di terminale.
22 In informatica con il termine API - Application Programming Interface (Interfaccia di Programmazione di
un'Applicazione) si indica ogni insieme di procedure disponibili al programmatore, di solito raggruppate a
formare un set di strumenti specifci per l'espletamento di un determinato compito all'interno di un certo
programma. Spesso con tale termine si intendono le librerie software disponibili in un certo linguaggio di
programmazione. Le API permettono di evitare ai programmatori di riscrivere ogni volta tutte le funzioni
necessarie al programma dal nulla, rientrando quindi nel più vasto concetto di riuso di codice.
16
mentre il progetto aveva acquisito una vita propria.
Fino alla versione 0.10 era richiesto un computer con MINIX per confgurare, compilare e
installare Linux perché quest'ultimo usava il fle system del sistema sul quale si appoggiava; dalla
versione 0.11 poteva essere compilato da Linux stesso. Presto i sistemi Linux superarono MINIX
in termini di funzionalità: Torvalds e altri sviluppatori della prima ora di Linux adattarono il loro
kernel perché funzionasse con i componenti GNU ed i programmi in user-space per creare un
sistema operativo completo, pienamente funzionante e libero.
Il 12 marzo 1994 il 16º livello di patch del kernel 0.99 divenne Linux 1.0. Fu lo stesso Torvalds a
presentare la prima versione stabile alla Helsinki University.
La combinazione tra Linux e il sistema GNU diede la vita al primo sistema operativo
totalmente libero. E' importante sottolineare che Linux e il progetto GNU non erano in
contrapposizione tra loro. Infatti, Linux costituisce solo il kernel, ossia la parte essenziale di un
sistema operativo, necessaria a far funzionare un computer. Il sistema GNU di Stallman
comprendeva molte piccole applicazioni – le utility – rese libere tramite la licenza di copyleft.
Esse vennero modifcate per girare sotto Linux, creando così un sistema completo di tutte le
funzionalità. In questo senso Stallman ha sempre afermato che il sistema universalmente noto
oggi come Linux dovrebbe più propriamente essere chiamato “GNU/Linux” per indicare
l'ibridazione dei due sistemi.
Linux può essere considerato come il primo vero progetto "open source" cioè come il primo
progetto che faceva afdamento essenzialmente sulla collaborazione via Internet per
progredire; fno ad allora, infatti, anche i progetti di software libero come Emacs erano stati
sviluppati in maniera centralizzata seguendo un progetto prestabilito da un ristretto numero di
persone, in base cioè ai principi standard di ingegneria del software. Si assumeva valida anche
per i progetti open source la 'legge di Brooks' 23, secondo cui "aggiungere sviluppatori a un
progetto in corso di implementazione in realtà rallenta il suo sviluppo", legge che si è dimostrata
non applicabile a un progetto di sviluppo open source.
Infne, nel 1996 fu scelto come logo ufciale di Linux un pinguino disegnato da Larry Ewing,
chiamato Tux come abbreviazione di Torvalds Unix.
Attualmente non esiste un'unica versione di Linux ma esistono diverse distribuzioni (chiamate
anche distro), solitamente elaborate da comunità di sviluppatori o società, che scelgono,
preparano e compilano i pacchetti da includere. Tutte le distribuzioni condividono il kernel
Linux, sia pure in versioni diverse e spesso personalizzate, mentre si diferenziano tra loro per il
cosiddetto "parco software", cioè i pacchetti preparati e selezionati dagli sviluppatori per la
distribuzione stessa, per il sistema di gestione del software e per i servizi di assistenza e
manutenzione oferti.
Lo sviluppo di Linux è sostenuto dalla Linux Foundation24, un'associazione senza fni di lucro
nata nel 2007 dalla fusione di Free Standards Group e OSDL - Open Source Development Labs. La
Linux Foundation è un'organizzazione formata dai maggiori produttori di software ed hardware il
cui obiettivo è di migliorare l'interoperabilità tra le diverse distribuzioni. A questo scopo, essa ha
proposto una standard aperto e gratuito, chiamato Linux Standard Base (ufcializzato con lo
standard ISO/IEC 23360) che defnisce una comune ABI - Interfaccia Binaria per le Applicazioni,
un unico sistema di pacchettizzazione ed una struttura per il fle system che preveda le stesse
convenzioni sui nomi e le stesse directory basilari in ogni sistema Linux. Esso al momento
23 http://it.wikipedia.org/wiki/Legge_di_Brooks
24 http://www.linuxfoundation.org
17
costituisce lo standard con maggiore appeal, al quale tutte le maggiori distribuzioni si stanno
adeguando.
–------------------------------------------------------- per approfondire –------------------------------------------------------Distribuzioni più difuse
In ordine alfabetico, la lista delle distribuzioni più difuse e conosciute:
• Android - È una distribuzione per dispositivi mobili inizialmente sviluppata dalla Startup Android
Inc. e poi nel 2005 acquistata dalla Google Inc. che la supporta tuttora.
• Arch Linux - È leggera, veloce, estremamente scalabile e adattabile alle proprie esigenze. Ottimizzata
per i686 e X86-64.
• Backtrack - Ofre tools per fare test di penetrazione. Fino alla versione 3.0 derivava dalla distro
WHAX, dalla versione 4.0 è invece basata su Ubuntu.
• CentOS - È una distribuzione basata sui sorgenti di Red Hat Enterprise Linux, quindi uguale ad essa
in tutto e per tutto se non per i loghi e il nome che vengono cambiati in quanto marchi registrati. È
usata per lo più in ambito server.
• Debian - Ofre un ottimo sistema di gestione dei pacchetti software (in formato deb), compilati per
11 architetture diferenti: Alpha, AMD64, ARM, HP PA-RISC, Intel x86, Intel IA-64, MIPS (big endian),
MIPS (little endian), PowerPC, IBM S/390, SPARC. Viene defnita per questo "il sistema operativo
universale". Ha un'installazione disponibile sia in modalità testuale che grafca.
• Fedora - Distribuzione non commerciale sponsorizzata da Red Hat. Piuttosto curata nell'aspetto,
viene aggiornata frequentemente con le ultime novità. Il sistema di pacchettizzazione è basato su
RPM Package Manager e l'installazione è disponibile sia in modalità testuale che grafca.
• Gentoo Linux - Distribuzione non commerciale basata sui sorgenti che permette di ottimizzare e
rendere estremamente fessibile il sistema. Implementa un sistema di porting derivato da *BSD.
L'installazione avviene manualmente, seguendo l'apposito manuale. Ulteriori punti di forza della
distribuzione sono l'ottima documentazione e la comunità molto disponibile.
• Knoppix - La distribuzione live CD più famosa. Nata per uso forense, deriva da Debian. Molto
indicata per i principianti, permette di avere un sistema completo avviabile direttamente da CD-ROM
o DVD che permette, tra i vari usi, l'utilizzo dimostrativo, come tool di diagnostica, come test di
compatibilità hardware, ecc. Presenta alcune varianti come Eduknoppix.
• Linspire - Era un distribuzione commerciale derivata da Debian che puntava alla facilità
d'installazione e d'utilizzo anche da parte di principianti.
• Mandriva - Conosciuta come Mandrake fno al 2005, anno in cui la Mandrakesoft ha acquisito
Conectiva. È una tra le distribuzioni più difuse e maggiormente orientate all'utente desktop. È
distribuita sia in forma gratuita che come prodotto commerciale (in questo caso include alcuni
pacchetti proprietari), con nuove release a cadenza approssimativamente annuale. Ha un sistema di
pacchettizzazione basato su RPM.
• Mint - Derivata da Ubuntu, comprende alcuni software personalizzati per installazione e gestione, un
menù principale che richiama quello di Windows Vista, e comprende codec multimediali preinstallati
per DVD, MP3 ecc.
• OpenSUSE - È una distribuzione non commerciale nata dall'apertura allo sviluppo comunitario di
SuSE.
• Puppy - Distribuzione molto leggera, è disponibile in versione Live CD. Occupa poche risorse e
spazio su disco ed è adatta a PC poco potenti o datati. Se la quantità di RAM è sufciente (256 MB o
più), può girare integralmente in memoria.
• Red Hat Linux Enterprise - È la distribuzione commerciale più difusa. Leggera, non viene aggiornata
alle ultime novità ma predilige versioni di kernel e componenti stabili e collaudate. Gli sviluppatori di
Red Hat hanno realizzato il difuso sistema di pacchetti RPM.
• Sabayon - Sabayon è una distro basata su Gentoo che si caratterizza per la compresenza di due
18
package manager (binario e sorgente). È disponibile in diverse versioni con KDE, GNOME, XFCE, LXDE,
Enlightenment, Fluxbox.
• Slackware - Creata nel 1993, viene spesso considerata la distribuzione più vicina a Unix e agli
standard GNU/Linux. È molto stabile, versatile e mira alla semplicità: gli interventi sul codice sono
minimi, nel rispetto delle intenzioni degli autori originali. Il sistema di gestione dei pacchetti afda
all'utente la risoluzione delle dipendenze, mentre il software non incluso va compilato dai sorgenti.
• SLAX - Deriva direttamente da Slackware e ne conserva le caratteristiche di velocità, stabilità,
leggerezza e ampia confgurabilità in base alle varie esigenze del singolo utente. Adotta un approccio
modulare avanzato.
• SuSE - Celebre distribuzione europea, molto usata a livello aziendale ma rivolta anche all'utente
Desktop. Anch'essa basata su RPM, è un prodotto commerciale. È basata sul lavoro del progetto
OpenSUSE.
• Ubuntu - Distribuzione derivata da Debian, è salita alla ribalta per la facilità d'installazione e
d'utilizzo e per la disponibilità di frequenti aggiornamenti della versione stabile. Utilizza il gestore
pacchetti APT, come Debian, e i desktop Unity e GNOME. Ne esistono numerose varianti, tra cui
Kubuntu, Xubuntu, Lubuntu ed Edubuntu.
Distribuzioni completamente libere
La maggioranza delle distribuzioni Linux non contiene esclusivamente software libero ma anche, in
misura ridotta, software proprietario (ad esempio driver, codec, tool e applicazioni), spesso per reale
mancanza di software libero corrispondente. La Free Software Foundation (FSF), sulla base delle
Guidelines for Free System Distributions, ha stilato una lista di distribuzioni Linux che contengono
esclusivamente software libero:
• gNewSense, distribuzione basata su Debian e Ubuntu e supportata dalla FSF
• BLAG (le Brixton Linux Action Group), una distribuzione Linux basata su Fedora
• Dragora, distribuzione indipendente basata sul concetto di semplicità
• Dynebolic, distribuzione specializzata nell'editing di audio e video.
• Kongoni, distribuzione africana
• Musix, distribuzione basata su Knoppix, rivolta alla produzione audio.
• Parabola GNU/Linux, distribuzione basata su Arch che cura particolarmente la semplicità della
gestione dei pacchetti e del sistema.
• Trisquel, distribuzione orientata alle piccole imprese, agli usi domestici e ai centri educativi.
• Ututo, distribuzione basata su Gentoo, è stato il primo sistema Linux completamente libero
riconosciuto dal Progetto GNU
• Venenux, distribuzione rivolta principalmente ad utenti latinoamericani.
19
4. Free Software Or Open Source Software?
Un unico obiettivo tra ideologia e pragmatismo
“La creatività e l'innata facilità nell'utilizzo
delle nuove tecnologie informatiche
possono innescare meccanismi
di trasformazione sociale a livello globale.”
Rita Levi Montalcini
Agli inizi degli anni novanta, l'idea delle licenze liberali era rappresentata soprattutto da
Stallman e dalla sua Free Software Foundation. Le licenze liberali per eccellenza erano la GNU GPL
e la GNU LGPL, che venivano però ritenute eccessivamente "virali", in quanto a partire da un
codice licenziato con la GPL qualsiasi ulteriore modifca deve avere la stessa licenza. Inoltre, la
parola inglese “free” utilizzata da Stallman creava una certa confusione, poiché determinava una
fastidiosa collisione di signifcati, riferendosi indiferentemente sia al concetto di libertà sia a
quello di gratuità. Le idee stesse di Stallman venivano viste con sospetto dall'ambiente
commerciale statunitense, spesso interpretate come “comuniste”, “anarchiche” e “d'istigazione
alla pirateria”. Tutto ciò non facilitava la difusione del software libero.
Per favorire l'idea delle licenze liberali nel mondo degli afari, un gruppo che comprendeva
Jon "Maddog" Hall, Larry Augustin, Eric S. Raymond, Bruce Perens ed altri 25 cominciarono nel
1997 ad elaborare una ridefnizione ideologica del software libero evidenziandone i vantaggi
pratici per le aziende e coniarono il termine "Open Source". L'iniziativa venne portata avanti
soprattutto da parte di Raymond che, in occasione della liberalizzazione del codice sorgente di
Netscape Communicator, voleva utilizzare un tipo di licenza meno restrittivo per le aziende di
quanto fosse la GNU GPL. Nel Marzo del 1998 Netscape Communications Corporation26 rilasciò la
maggior parte del codice sorgente della sua popolare applicazione Netscape sotto una licenza
scritta da loro stessi, la Netscape Public License 27. Questo pacchetto divenne in seguito Mozilla e
produsse il noto browser web Mozilla Firefox 28. La licenza della suite Mozilla fu cambiata in
seguito in una tripla licenza, che includeva anche la GNU GPL.
“Parlare di libertà ai nuovi utenti è diventato più difcile dal 1998, quando una parte della
comunità decise di smettere di usare il termine 'free software' e usare al suo posto 'open source'.
Alcune delle persone che suggerirono questo termine intendevano evitare che si confondesse 'free'
con 'gratis', un valido obiettivo. D'altra parte, altre persone intendevano mettere da parte lo spirito
del principio che aveva dato la spinta al movimento del software libero e al progetto GNU, puntando
invece ad attrarre i dirigenti e gli utenti commerciali, molti dei quali aferiscono ad una ideologia che
pone il proftto al di sopra della libertà, della comunità, dei principi. Perciò la retorica di "open source"
si focalizza sulla possibilità di creare software di buona qualità e potente, ma evita deliberatamente
le idee di libertà, comunità, principio. Le riviste che si chiamano "Linux..." sono un chiaro esempio di
ciò: sono piene di pubblicità di software proprietario che gira sotto GNU/Linux; quando ci sarà il
prossimo Motif o Qt, queste riviste avvertiranno i programmatori di starne lontano o accetteranno la
sua pubblicità? L'appoggio delle aziende può contribuire alla comunità in molti modi; a parità di
tutto il resto è una cosa utile. Ma ottenere questo appoggio parlando ancor meno di libertà e principi
25
26
27
28
http://it.wikipedia.org/wiki/Eric_S._Raymond
http://it.wikipedia.org/wiki/Netscape_Communications_Corporation
http://it.wikipedia.org/wiki/Netscape_Public_License
http://it.wikipedia.org/wiki/Mozilla_Firefox
20
può essere disastroso; rende ancora peggiore lo sbilanciamento descritto tra difusione ed
educazione civica. 'Software libero' (free software) e 'sorgente aperto' (open source) descrivono più o
meno la stessa categoria di software, ma dicono cose diferenti sul software e sui valori. Il progetto
GNU continua ad usare il termine "software libero" per esprimere l'idea che la libertà sia importante,
non solo la tecnologia.” (R. Stallman)
Raymond è probabilmente la persona che più si identifca col movimento; era e rimane il suo
teorico principale, ma non ambisce a guidarlo verso una qualsiasi direzione da lui scelta. Il
movimento Open Source è guidato da un largo collegio di anziani che include anche i suoi cofondatori e altre persone importanti come Linus Torvalds, Larry Wall e Guido van Rossum.
La scelta a favore dell'Open Source da parte di alcune importanti imprese del settore come la
Netscape, l'IBM, la Sun Microsystems e l'HP, facilitarono l'accettazione del movimento Open
Source presso l'industria del software, facendo uscire l'idea della "condivisione del codice" dalla
cerchia ristretta nella quale era rimasta relegata fno ad allora. Venne cioè accettata l'idea che
l'Open Source fosse una metodologia di produzione software efcace.
Essendo la disponibilità del codice sorgente uno dei requisiti fondamentali che accomuna il
software libero ed il software Open Source, spesso si è indotti a considerare i due concetti
equivalenti, ma in realtà non lo sono.
Un software è Open Source se i termini secondo i quali viene distribuito rispondono alla Open
Source Defnition29 dell'Open Source Initiative (OSI), l'organizzazione fondata nel febbraio 1998
da Perens e Raymond: in particolare, se una licenza rientra in tale defnizione, allora tale licenza
può essere dichiarata licenza Open Source. La defnizione potrebbe cambiare nel tempo
(nessuno garantisce che questo non possa accadere) e quindi è possibile che una licenza
attualmente Open Source non lo sia nel futuro o viceversa. OSI è anche l'organizzazione che su
richiesta certifca con il relativo marchio registrato il fatto che una licenza sia efettivamente
aderente alla Open Source Defnition. Recentemente l'OSI ha posto un freno al proliferare delle
licenze dichiarando che cercherà di limitare il numero di licenze che nel futuro saranno ritenute
licenze open source. Questo potrebbe, in linea teorica, far sì che una licenza ritenuta libera non
venga ritenuta open source. Una licenza invece è libera se, e solo se, rispetta le quattro libertà
fondamentali. Pertanto se una versione di una licenza è libera, allora lo sarà per sempre.
In ogni caso, gli insiemi di applicativi designati da software libero e open source coincidono a
meno di poche eccezioni. La diferenza fondamentale è nel tipo di approccio: parlando di
software libero si pone l'accento sugli aspetti sociologici ed etici, che sono volutamente rimossi
nella visione Open Source.
In pratica, le defnizioni operative del software libero e del software Open Source sono quasi
equivalenti. Le liste di licenze accettate mantenute dalla FSF e dal OSI sono abbastanza simili,
diferendo in particolare solo in casi limite come la prima versione dell'Apple Public Source
License e dell'Artistic License. I membri dei movimenti per il software libero e per l' Open Source
di solito non hanno problemi a cooperare in progetti software comuni. Alcuni autori, quando
parlano assieme di questi movimenti, utilizzano altri termini diversi da software Open Source e
software libero per cercare di descrivere l'unione dei due concetti. Questi altri termini includono
Open Source Software/Free Software (OSS/FS), Free/Open Source Software (FOSS), e Free-Libre/
Open Source Software (FLOSS).
Il cambiamento di termini può aver funzionato come previsto, aiutando le imprese a
considerare il FOSS seriamente. O forse il FOSS aveva semplicemente raggiunto un livello di
29 http://opensource.org/osd
21
complessità che non poteva più essere liquidato come un’idea di nicchia e stava cominciando a
rivaleggiare le sue controparti proprietarie. In ogni caso, durante la Dot-com mania del 19982000, il FOSS divenne la base di innumerevoli start-up. Lo stesso periodo ha visto anche le prime
imprese FOSS andare in pubblico, come Red Hat e VA Linux. Molte aziende consolidate, come
IBM, Oracle e Sun Microsystems, iniziarono anche a partecipare al FOSS. Nell'Agosto del 1999, la
Sun Microsystems rilasciò la suite StarOfce come software sotto la General Public License, suite
in seguito rinominata OpenOfce.org. Successivamente nel 2007 rilasciò anche la sua nota
piattaforma Java sotto la medesima licenza GPL.
Il FOSS fu per un breve periodo screditato dal collasso delle Dot-com, ma continuò a
guadagnare sia in popolarità che in imprese e personal computer durante il primo decennio del
nuovo millennio. Una volta largamente sviluppato da volontari che lavorano nel tempo libero,
oggi il FOSS è così ampiamente visto come una risorsa che oltre l'80% dei contributi al kernel
Linux sono fatti da operatori pagati dalle multinazionali.
Ormai il FOSS è diventata una seria e importante realtà economica.
22
5. Il calabrone continua a volare
Lo sviluppo del kernel Linux. Quanto sta andando veloce, Chi lo sta facendo, Cosa
stanno facendo e Chi lo sta sponsorizzando.
“Alcune persone mi hanno detto di non pensare che
un pinguino grasso simboleggi realmente la grazia di Linx,
e questo mi dice che non devono aver mai visto
un pinguino arrabbiato che si fonda verso di loro a 160 km/h.”
Linus Torvalds
Chi non conosce la legenda secondo la quale il calabrone a causa della propria
conformazione non potrebbe in teoria volare eppure vola?
Tale leggenda nacque all'inizio del secolo scorso, pochi anni dopo il primo volo del fratelli
Wright. Sulla base delle leggi dell'aerodinamica di quell'epoca, il rapporto tra la superfcie alare
dell'insetto e il suo peso corporeo non rendeva in teoria possibile il volo, eppure... il calabrone
volava. Studi successivi hanno mostrato come l'aerodinamica degli insetti sia diferente rispetto
a quella studiata dai tecnici aeronautici e hanno quindi potuto afermare che, si, il calabrone può
volare. Il calabrone, per non saper ne leggere ne scrivere, non ha comunque mai smesso di volare,
in barba a tutti.
La storia del FOSS è analoga: si sono versati fumi di parole per defnirlo come un approccio
che non può funzionare, destinato al fallimento. Eppure continua a funzionare e, cosa più
importante, ad espandersi. E che funziona lo hanno ultimamente capito anche le major di
produzione software. Ditte che in teoria avrebbero tutto da perdere hanno già deciso di
abbracciare la flosofa FOSS o di contribuire allo sviluppo e al sostentamento del movimento.
Basta vedere qualche numero, per convincersi di questo.
Nel mese di settembre 2013 The Linux Foundation ha pubblicato l'ultimo report relativo allo
sviluppo del kernel Linux: “Linux Kernel Development. How Fast It is Going, Who is Doing It, What
They are Doing, and Who is Sponsoring It”. (http://www.linuxfoundation.org/publications/linuxfoundation).
Si tratta del quinto aggiornamento di questo report, che viene pubblicato annualmente a
partire dal 2008. Quest'ultimo aggiornamento analizza lo sviluppo del kernel prendendo in
considerazione le versioni dalla 3.3 fno all'attuale 3.10.
Il kernel che costituisce il nucleo del sistema Linux è il risultato di uno dei più grandi progetti
di sviluppo software cooperativo mai avviato. Ogni 2-3 mesi viene rilasciata agli utenti Linux una
nuova versione che fornisce nuovi aggiornamenti, ciascuno con nuove importanti
caratteristiche, nuove compatibilità e in generale migliori prestazioni. Il tasso di cambiamento
nel kernel è molto elevato e in continua crescita, con oltre 10.000 patch in ogni versione. Queste
versioni contengono ciascuno il lavoro di oltre 1.100 sviluppatori che rappresentano oltre 225
aziende. Dal 2005 quasi 10.000 singoli sviluppatori provenienti da più di 1.000 diverse aziende
hanno contribuito allo sviluppo del kernel.
Entrando più nel dettaglio, dal report emerge che il tempo tra il rilascio di una versione del
kernel e la successiva è mediamente compreso, per accordo tra gli sviluppatori, tra le 8 e le 12
settimane. Infatti un periodo più breve non darebbe ai tester abbastanza tempo per scovare e
risolvere eventuali problemi dei nuovi aggiornamenti, mentre un periodo più lungo causerebbe
23
un eccessivo accumulo di lavoro.
Il tempo efettivo tra le successive versioni del kernel tende a variare a seconda delle
dimensioni del rilascio e le difcoltà incontrate nello sviluppo, tuttavia la distanza è
sensibilmente diminuita nel corso degli ultimi ultimi anni. Nella versione precedente di questo
rapporto (Aprile 2012) il ciclo medio di sviluppo era di circa 80 giorni, mentre ora la media è
molto più vicino a 70 giorni. Questa tendenza è quasi certamente il risultato di una migliore
disciplina sia prima che durante il ciclo di sviluppo, nonché del maggiore uso di strumenti di test
automatici per individuare e risolvere più velocemente i problemi.
Le patch di ogni versione sono progressivamente aumentate di numero, quasi del 50% tra la
versione 3.0 (9.153 patch) e la 3.10 (13.367 patch). Inoltre, considerando il tempo richiesto per
ogni versione, è stato possibile calcolare il numero di modifche al kernel accettate ogni ora. Qui
il totale è addirittura quasi raddoppiato tra la versione 3.0 (5.96 modifche per ora) e la 3.10 (9.02
modifche per ora). Ne risulta che il numero di modifche inserite in ogni versione aumenta
costantemente, mentre il tempo di sviluppo è sempre più breve.
Il kernel Linux cresce progressivamente, man mano che aumenta l'hardware supportato e
vengono aggiunte nuove funzioni: si è passati dalle circa 10.000 linee di codice della prima
versione del 1997, alle 14.652.135 linee di codice (36.788 fles) della versione 3.0, fno alle
16.961.031 linee (43.029 fles) della versione 3.10.
Il numero di sviluppatori che lavorano sul kernel Linux e delle società che sponsorizzano
questo lavoro è progressivamente cresciuto, versione dopo versione. Alla versione 3.0 lavorarono
1.131 sviluppatori e 191 società, mentre alla versione 3.10 hanno lavorato 1.392 sviluppatori e
243 aziende.
Il kernel Linux è una risorsa utilizzata da una grande varietà di imprese. Molte di queste non
hanno mai contribuito allo sviluppo del kernel, ma si accontentano di utilizzarlo così com'è e non
hanno sentono la necessità di contribuire al suo sviluppo in un qualche modo o in una qualche
direzione. Al contrario, sono molte le imprese, tra l'altro in numero sempre crescente, che
lavorano congiuntamente allo sviluppo del kernel, imprese che al contrario sono in diretta
competizione nei propri settori.
Gli sviluppatori indipendenti, cioè che non sono fnanziati nel loro lavoro da nessuna azienda,
hanno realizzato il maggior numero di modifche, il 13,6% del totale. Le 10 società che hanno
contribuito maggiormente sono state: Red Hat con il 10,2%, Intel con l'8,8%, Texas Instruments
con il 4,1%, Linaro con il 4,1%, SUSE con il 3,5%, IBM con il 3,1%, Samsung con il 2,6%, Google
con il 2,4%, Vision Engraving Systems con il 2,3% e Consultants con l'1,7%.
Dalla classifca completa ne risulta che oltre l'80% dello sviluppo del kernel è realizzato da
programmatori pagati per il loro lavoro. E' anche interessante notare che il contributo
proveniente da sviluppatori indipendenti, quindi non espressamente pagati per le loro
modifche, è invece in lento declino, segno del sempre maggiore interesse anche delle grandi
società nello sviluppo e sostentamento del progetto. La maggior parte del lavoro è svolto da un
ristretto numero di aziende, ma è necessario sottolineare che il numero reale di aziende che
contribuiscono supera le 500 unità.
In conclusione, è evidente che il kernel Linux è uno dei progetti open source più grandi e di
maggior successo mai avviati. La velocità delle modifche e il numero degli sviluppatori mostra
che è supportato da una comunità molto attiva. La velocità degli aggiornamenti è in continua
crescita, così come il numero degli sviluppatori e delle imprese coinvolte nel progetto; ciò
dimostra sempre di più che nel processo di sviluppo è possibile aumentare velocità di sviluppo e
24
numero di sviluppatori senza problema.
Sono numerose le aziende che fnanziano la maggior parte del lavoro di sviluppo, anche se ce
ne sono molte altre che potrebbero trarre benefcio da Linux ma che fnora hanno scelto di non
contribuire al progetto. Con l'attuale espansione di Linux nei server, nei PC desktop e nel settore
mobile è ragionevole aspettarsi nei prossimi anni un ulteriore aumento delle società e degli
sviluppatori che contribuiscono al progetto.
E nel frattempo il calabrone continua a volare sempre più in alto.
25