 |
| Software nella Scuola |
 |
OpenSource e
Software Libero |
 |
|
 |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Servizi Web |
 |
|
|
BREVE
STORIA DEL SOFTWARE LIBERO
Richard Stallman e il progetto
GNU
Il più
noto fra i primi protagonisti della storia del software libero è
certamente Richard Marshall Stallman, "l'ultimo degli hacker" come amava definirsi .
La sua biografia intellettuale e personale è strettamente connessa
a quella degli hacker puri dei primi laboratori informatici, per la stessa
passione del calcolatore e per la stessa insofferenza verso gli intoppi
burocratici, la segretezza, l'assenza di cooperazione e di scambio
intellettuale. Stallman sosteneva che la sua inflessibilità morale
rendeva difficile accettare le regole di scambio opportunistiche delle
relazioni umane. Questa sua ricerca di informalità e di libertà
lo aveva indotto a lasciare l'aristocratica e conservatrice Harvard
e a trasferirsi nella comunità-baluardo degli hacker, il laboratorio
di Intelligenza Artificiale del M.I.T. (Massachusets Institute of
Technology), dove gli era stato offerto un posto di programmatore
sistemista.
E qui, dal
1971 al 1983, aveva ingaggiato un'infaticabile battaglia per un
sistema "aperto" a tutti gli utenti, contro l'utilizzo
obbligatorio di codici di accesso e contro i segreti dei sistemi di sicurezza.
La sua convinzione sulla non utilità e, anzi, sulla dannosità
di non diffondere il codice di controllo della macchina, basata su premesse
insieme etiche e funzionali, trovava una continua conferma nei molti problemi
quotidiani connessi all'utilizzo dei computer e di altra strumentazione
elettronica. L'esempio più noto, che dimostrò come
i principi della proprietà intellettuale costituissero un vincolo
all'efficienza impedendo di risolvere un fastidiosissimo inconveniente,
riguardò il caso della stampante laser Xerox, che messa generosamente
a disposizione del Laboratorio di Intelligenza Artificiale dalla stessa
azienda, si fermava in continuazione. Per ovviare ai frequenti guasti,
Stallman aveva pensato di modificare il programma, per attuare, in un
modo più veloce, un pronto intervento cooperativo senza aspettare
l'addetto della Xerox.
Condizione essenziale per l'attuazione della nuova procedura era
la conoscenza del codice sorgente della macchina, ma la Xerox, diversamente
dal passato, negò l'accesso a quel codice, in quanto protetto
dal copyright.
Il programma proprietario non poteva essere più conosciuto e trasformato.
Il mondo esterno con le sue regole stava ponendo serie barriere al lavoro
della comunità degli hacker e progressivamente ne incrinava anche
i valori ideali, rendendo i suoi membri più sensibili a comportamenti
strumentali.
Così, quando anche il laboratorio di Intelligenza Artificiale,
con il rischio dei tagli dei finanziamenti, dovette adeguarsi a quelle
richieste di sicurezza che imponevano di limitare e controllare il libero
collegamento ai calcolatori del laboratorio, e quando con l'acquisto
di un nuovo Digital PDP-10 si interruppe la consuetudine della condivisione
libera delle risorse della macchina, resa possibile dal sistema operativo
ITS (Incompatible Timesharing System), costruito dagli stessi
programmatori e basato su un'architettura aperta, Stallman lasciò il M.I.T..
Abbandonando il suo lavoro di programmatore sistemista al M.I.T., Stallman
si pose co- me primo obiettivo lo sviluppo di un sistema operativo compatibile
con lo Unix di AT&T (American Telephone and Telegraph, Inc.), il sistema
operativo allora più diffuso nel mondo dei minicalcolatori. Nel
giorno del Thanksgiving del 1983 attraverso Arpanet comunicò alla
comunità hacker e agli interessati allo sviluppo del software libero
la decisione di lasciare il M.I.T. per impegnarsi nella realizzazione
del nuovo sistema operativo Unixcompatibile.
Il diritto di proprietà, il copyright, stava, infatti,
contaminando e indebolendo la comunità degli hacker e, insieme
ad essa, l'opportunità di un libero scambio sia materiale
che intellettuale del software e dei suoi contenuti.
Stallman battezzò il nuovo sistema operativo con l'acronimo
GNU, come "Gnu is Not Unix", una definizione formulata
secondo un'antica consuetudine della comunità hacker. In
altri termini: "GNU non è lo Unix di AT&T, non è
quindi proprietario, ma ha le stesse funzionalità ed è compatibile
con quello".
Stallman impose per GNU un requisito fondamentale, destinato a giocare
un ruolo centrale nel mondo del software libero: essere open
source.
Il software sorgente, prima di essere utilizzato, deve essere "compilato",
ossia tradotto nel codice "eseguibile" o codice di macchina,
un'innumerevole sequenza di "uno" e di "zero",
che la macchina è in grado di interpretare, ma l'uomo generalmente
no, a meno di affrontare anni di duro lavoro anche su programmi relativamente
brevi.
Il software proprietario viene generalmente venduto in formato eseguibile,
per rendere praticamente impossibile la sua interpretazione e la sua modifica
in funzione delle esigenze del suo utilizzatore. Viceversa, i programmi "open source", proprio perché disponibili in forma
simbolica, che un programmatore riesce facilmente ad interpretare, sono
veramente "open", nel senso che possono essere letti,
corretti e trasformati in funzione di specifiche esigenze.
^top
La "Free Software Foundation" e la sua ideologia
Per portare
a compimento il progetto GNU, nel 1985 Stallman costituì la FSF
(Free Software Foundation), un'organizzazione no profit
basata su contributi volontari in lavoro e in denaro. Infatti gli aderenti
alla FSF possono offrire come proprio contributo sia lavoro per la scrittura
di codice o documentazione, sia denaro offerto come donazione o sottoscrizione,
e godere degli sgravi fiscali come tutti i contributi in beneficenza.
La costituzione di questa istituzione rispondeva all'esigenza pratica
di finanziare lo sviluppo di GNU, e raccogliere attorno al progetto un
insieme permanente di professionisti programmatori in grado di svolgere
con continuità e a tempo pieno attività di programmazione
e assistenza tecnica. Oggi la FSF occupa a tempo pieno alcuni programmatori
e tecnici, oltre ad alcuni impiegati che gestiscono l'attività
organizzativa. Accanto ad essi si raccoglie quel mare di volontari appassionati
che l'estensione di Internet ha reso possibile.
La FSF è diventata progressivamente un punto di riferimento per
gli ideatori di software e si è anche qualificata come un'istituzione
di garanzia della qualità di un prodotto e di protezione dei diritti
del software libero. Infatti collabora con la "League for Programming
Freedom", che raggruppa accademici, pro- grammatori e tecnici informatici,
utilizzatori e piccole compagnie di software, con l'obiettivo di
difendere il diritto di scrivere programmi di software libero. La Lega
non si oppone al sistema legislativo del copyright, ma intende
porre un limite alle sentenze giudiziarie che accordano una protezione
diffusa a qualsiasi idea che nasca nell'ambito dell'industria
informatica. In questo modo, vengono nei fatti favoriti gli interessi
specifici delle grandi imprese, le sole che possono pagare le spese legali
di deposito del brevetto anche nel caso delle soluzioni più banali.
La FSF sostiene la League in nome di una comune difesa alla produzione
di software anche per le piccole imprese che producono software proprietario,
la cui attività é messa seriamente in pericolo dal sistema
dei brevetti del software e dal copyright per le interfacce.
Obiettivo della FSF è, comunque, quello più ampio di promuovere
un progetto etico e un nuovo modo di lavorare.
Entrambe le dimensioni derivano direttamente dal significato attribuito
al free software. Le ragioni e i vantaggi connessi alla libertà
del software richiamano i principi dell'etica hacker, un'etica
che non é mai stata formalizzata in alcun documento ufficiale,
ma che è stata spontaneamente e variamente applicata e condivisa.
In breve essi si possono così sintetizzare.
| Il diritto alla libera circolazione del software
e alla sua duplicazione rimandano al principio generale che tutta
l'informazione deve essere libera con grande beneficio per il sistema
sociale nel suo complesso.
La condivisione dell'informazione é un bene potente e positivo
per la crescita sociale e della democrazia, una difesa contro controlli
dall'alto e pericoli tecnocratici. Esso dà all'utilizzatore
l'opportunità di interagire con il prodotto e di controllarlo.
Aiuta a stimolare lo sviluppo della conoscenza e a diffonderla.
In senso ampio, quindi, può favorire il processo di partecipazione
contribuendo a formare un membro della comunità o un cittadino
più preparato.
| La rivoluzione digitale e la diffusione dei calcolatori, rendendo
più semplice lo scambio di informazione, possono apportare un beneficio
generale.
Un libero scambio di informazioni, soprattutto quando si traduce in uno
strumento importante come un programma per computer, promuove una maggiore
creatività complessiva.
Si eviterebbe, così, di sprecare tempo, risorse, energie per replicare
quello che altri già fanno, cioè di perdere tempo per reinventare
la ruota.
| Il modo migliore per favorire il libero scambio delle informazioni è quello di promuovere un apprendimento diffuso e qualificato attraverso
sistemi "aperti", che non pongano barriere fra il lavoro e
l'informazione.
Nella tradizione e nell'etica degli hacker le barriere alla circolazione
dell'informazione costituiscono pesanti limiti alla conoscenza e,
nel divieto di accesso all'artefatto, cioè al programma,
viene individuato un ostacolo alla creatività e alla libera espressione
del pensiero.
| La libertà di modificare il software richiama l'imperativo
del buon inventore artigiano "di metterci le mani" per capire
il funzionamento delle cose e per migliorarle.
| Il piacere e il divertimento sono un importante incentivo alla
programmazione.
Il computer non é solo uno strumento funzionale per facilitare
compiti ripetitivi, ma anche un mezzo per estendere l'immaginazione
personale.
La flessibilità dei programmi, le loro possibilità di evoluzione
costituiscono una sfida continua per chi li usa in modo intelligente.
| Le possibilità di innovazione continua offrono un contributo
alla crescita dell'intelligenza e allo sviluppo della professionalità,
a differenza di procedure routinarie che sono, invece, vere e proprie
barriere.
In sostanza, ad un'organizzazione del lavoro burocratica si vuole
contrapporre un'organizzazione interattiva e creativa, a un'organizzazione
sociale basata su status e ruoli definiti dal reddito o dalla collocazione
sociale, si contrappone una comunità eguali basata sul merito.
^top
La Torre di Babele delle libertà del software: il copyleft
La figura
3 rappresenta schematicamente la complessa torre di Babele delle libertà
del software. Al gradino più basso, ossia al minimo livello della
libertà, è ovviamente allocato il software proprietario.
Subito sopra sta il cosiddetto freeware.
Saltando mille piani intermedi si arriva ai massimi livelli della libertà.
In teoria, il livello massimo della libertà con cui può
essere distribuito il software è quello che corrisponde alla denominazione
di "pubblico dominio", che da molti anni è spesso adottata
nella comunità degli informatici.
Un prodotto software di pubblico dominio può anche essere utilizzato
per la realizzazione di software proprietario, cosi come è avvenuto
anche per molti programmi liberi che essendo distribuiti con licenze permissive
sono stati trasformati in prodotti chiusi e proprietari.
Tuttavia, Stallman non ritenne opportuno rendere GNU di pubblico dominio,
anche se quella soluzione avrebbe consentito la massima diffusione del
prodotto: un programma completamente libero avrebbe rischiato di estinguersi
e di limitarsi ad un'entusiasmante esperienza creativa, una volta
che le sue varianti fossero state utilizzate per un uso proprietario.
In tal modo la catena del lavoro e dell'uso cooperativo si sarebbe
spezzata e avrebbe interrotto anche il valore insito nel prodotto iniziale,
in quanto l'ultima versione aggiornata avrebbe avuto molte più
probabilità di diffondersi vanificando tutto il lavoro precedente.
Se sul piano astratto distribuire GNU nel sistema di pubblico dominio
avrebbe potuto consentire una diffusione più ampia, sul piano concreto
nel tempo ne avrebbe tratto vantaggio solo il sistema proprietario. In
un certo senso il fine di una diffusione quantitativa senza preservare
il contenuto e trascurando le modalità della diffusione avrebbe
costituito un ostacolo alla creazione del software libero e alla costruzione
di una comunità di liberi programmatori.
La scelta fu quella di proteggere il prodotto con un tipo nuovo di licenza,
formalmente denominata G.P.L. (General Public Licence) ma scherzosamente
chiamata "copyleft" (la parola non compare su alcun dizionario
della lingua inglese) o "diritto di copia di sinistra", in
contrapposizione al più noto "copyright",
interpretato come "diritto di copia di destra".
Ognuno può modificare e distribuire il prodotto, ma non si possono
apporre restrizioni individuali sul prodotto redistribuito. Il "copyleft",
che Stallman chiama anche "permesso d'autore", consente
a chi acquista un programma di utilizzarlo in un numero indefinito di
copie, di modificarlo a suo piacimento, di distribuirlo nella forma originale
o modificata, gratuitamente o a pagamento, alle sole condizioni di distribuirlo
in formato sorgente e di imporre a chiunque acquisisca il prodotto di
firmare lo stesso tipo di contratto.
Il modello del copyleft permette di dare un fondamento giuridico a un
mercato costruito sulla, non mera, appropriazione privata della proprietà
intellettuale. Inoltre, la soluzione del copyleft fornisce uno stimolo
a contribuire alla crescita del software libero, in quanto costituisce
una garanzia di fiducia sulla stabilità di un patto di libera circolazione
del software e anche un modo per generare un meccanismo di creazione di
risorse finanziarie.
^top
Linus Torvalds e Linux
Nell'arco
di circa sette anni, la FSF realizzò un'enorme mole di programmi: "compilatori", ossia traduttori, da un linguaggio
sorgente di alto livello come il C nel linguaggio di macchina; "text
editor", ossia programmi per la compilazione e la correzione
di documenti; "debugger", ossia strumenti per l'analisi
di programmi con l'obiettivo di identificare i bachi; interfacce
varie; altri strumenti di utilità generale. Nel 1990 il sistema
GNU era quasi completo, ma mancava ancora il "kernel"
o "nucleo", ossia l'insieme dei programmi di base che
consentono la gestione delle risorse fondamentali, come l'unità
di calcolo e la memoria centrale. Il nucleo era certamente la parte più
importante di GNU, ma la sua realizzazione era stata rinviata in attesa
della promessa liberalizzazione come software libero di un micronucleo,
sviluppato dalla Carnegie Mellon University e successivamente ampliato
dall'università dello Utah.
Fortunatamente a questo punto una nuova storia e un nuovo protagonista
si intrecciano e portano a compimento l'iniziativa di Stallman.
Nel 1990 uno studente ventenne di informatica dell'università di Helsinki, Linus Torvalds, che si diletta a programmare il calcolatore
trascurando lo studio, decide di comprarsi un calcolatore nuovo. Ovviamente,
gli elaboratori della classe del gigantesco "mainframe"
dell'università su cui ha imparato a programmare, sono fuori
dalla sua disponibilità finanziaria di studente, mentre il vecchio
Commodore attaccato al televisore, che usa a casa da tempo, non gli consente
di andare oltre il programmino giocattolo. I nuovi personal computer che
montano il microprocessore Intel 386 sembrano rappresentare un ottimo
compromesso fra costo e prestazioni, ma il sistema operativo che su di
essi viene installato, il vecchio DOS (Disk Operating System)
di Microsoft, non gli consente di sviluppare software di alto livello,
non permettendo, in particolare, di programmare "processi" concorrenti, ossia i moduli software fatti per operare in parallelo.
L'ideale sarebbe stato installare sul personal computer il tradizionale
Unix, uno dei più diffusi nel mondo, ma i 5.000 dollari di costo
lo rendono inaccessibile. Così, Linus decide di scrivere da solo,
partendo da Minix, un sistema operativo didattico molto diffuso nelle
università, il nucleo di un nuovo sistema operativo, un clone di
Unix, per dotare il personal computer delle funzionalità di base
di un elaboratore di fascia alta.
Nella primavera del 1991 il nucleo del nuovo sistema operativo, versione
0.01, é pronto.
Gestisce i file, ossia i documenti, e il file system,
ossia l'organizzazione gerarchica dei documenti in cartelline e
grandi cartelle, con la stessa logica di Unix, è dotato della funzionalità
di emulazione di un terminale e contiene alcuni driver di base per pilotare
le unità periferiche. Sostituendo la consonante finale del proprio
nome con la "x" di Unix e adottando il pinguino come suo simbolo,
Linus battezza il suo prodotto "Linux", e fa così una
prima scelta felice.
Ancora più felice e importante è la seconda scelta, quella
di diffondere il nuovo sistema operativo su Internet, mettendolo a disposizione
di chiunque sia interessato a utilizzarlo, senza chiedere altra contropartita
oltre alla collaborazione per migliorarlo ed espanderlo.
Il suo invito è raccolto da centinaia di giovani programmatori
in tutto il mondo, che nell'arco di pochi anni, in un telelavoro
collettivo guidato da quello splendido organizzatore che si rivelò Linus, trasformano un interessante prototipo scientifico in una vera e
propria linea di prodotti industriali [5, 9].
Come si vedrà meglio più avanti, oggi Linux é operante
non soltanto sull'architettura del personal computer Intel, ma anche
su tutte le piattaforme più importanti, ed è installato
su milioni di calcolatori.
Linux è diventato un sistema molto utile e diffuso soprattutto
fra la popolazione più acculturata del mondo degli informatici
programmatori e accademici ed è utilizzato da molte società di servizi come le poste negli Stati Uniti.
Recentemente il governo cinese ha deciso di adottare estensivamente Linux
(una variante specifica: TurboLinux) per tutto il suo sistema amministrativo.
Molte sono le ditte che vendono Linux e offrono assistenza tecnica.
Tuttavia Linux è disponibile gratuitamente.
La fortuna di Linux non é solo quella di un prodotto largamente
portabile e disponibile, ma anche quella di essere caratterizzato da forti
principi di progettazione e da un solido modello di sviluppo, basato su
una stretta collaborazione di una moltitudine di progettisti e programmatori.
Linus Torvalds accetta la logica del copyleft e l'inserimento
non banale del suo sistema operativo nella grande cornice di GNU: nasce
così un sistema operativo completo, il GNU/Linux, pienamente compatibile
con lo Unix proprietario, ma completamente libero.
Nel giro di tre anni GNU/Linux diviene competitivo per affidabilità
e sicurezza con le versioni commerciali più importanti di Unix.
^top
Internet
Un'analisi
attenta della sua storia mostrerebbe con chiarezza che Internet, oltrechè
madre è stata anche figlia del software libero. Mi limito a ricordare
due esempi importanti.
Quando la rete conteneva migliaia di nodi, i router erano configurati
a mano. Ciò significa che il programmatore di un router doveva
precisare per ogni indirizzo-destinazione di un pacchetto in arrivo, su
quale linea di uscita, e quindi verso quale destinazione intermedia, si
dovesse instradare lo stesso pacchetto di ingresso. In presenza di milioni
di nodi e milioni di indirizzi diversi, questa soluzione non è
più attuabile.
Le soluzioni ideate per configurare dinamicamente i router e definire
automaticamente i percorsi ottimali sono il frutto di un'intelligenza
collettiva di livelli qualitativi e quantitativi così elevati da
indurre alla convinzione che quelle soluzioni molto difficilmente sarebbero
potute nascere nell'ambito di una sola azienda, anche molto importante.
Un secondo esempio importante è rappresentato dal noto meccanismo
del "World Wide Web", la ragnatela che avvolge il mondo, quello
che consente ad un utilizzatore che stia leggendo una pagina proveniente
dagli Stati Uniti di "cliccare" su una parola sottolineata
e ottenere istantaneamente e automaticamente un'altra pagina, proveniente
forse dal Giappone. Questo meccanismo semplice e immediato, che si deve
al CERN (Conseil European pour la Recherché Nucleaire)
di Ginevra e, in particolare, ai due fisici Tim Berners-Lee e Robert Cailliau,
può essere appreso in pochi minuti anche da un bambino e pertanto
ha clamorosamente migliorato la fruibilità della Rete, determinando
la sua attuale diffusione in ogni strato della popolazione.
La Rete è stata progettata da migliaia di ricercatori e programmatori
di tutto il mondo mettendo in comune un enorme patrimonio di intelligenze,
conoscenze, risorse.
Questo sforzo collettivo è stato coordinato da un unico organismo,
l'IETF (Internet Engineering Task Force), un'associazione
libera di alcune migliaia di studiosi, aperta a chiunque sia interessato
ai progetti di Internet, come dimostra il fatto che all'IETF ci
si iscrive a titolo personale, e non come rappresentanti di qualche istituzione
pubblica o privata.
Un enorme patrimonio di conoscenze è contenuto in migliaia di documenti
o R.F.C. (Request For Comments), generalmente formulati in modo
informale per migliorare la chia- rezza, in ossequio a una raccomandazione
altrettanto chiara: "Scriveteli nel cesso, ma scriveteli semplici
e chiari".
Oggi l'IETF è composta da 150 gruppi di lavoro, che coprono
tutte le aree scientifiche e tecnologiche: dalla rete e dai servizi di
utente, alla crittografia e autenticazione, dalle soluzioni per il routing
ai problemi della gestione. Il frutto dell'enorme lavoro di quei
gruppi, dalla documentazione scientifica al software sviluppato, dalle
proposte di standard agli standard veri e propri, è disponibile
gratuitamente in Internet e può essere liberamente utilizzato anche
a fini commerciali. I processi produttivi e decisionali, la documentazione
scientifica, il codice scritto, gli standard sono open source ossia sono
non soltanto, e non tanto, gratuiti, quanto piuttosto "trasparenti",
in modo che siano ben chiari sia i principi di base sia la logica operativa,
per consentire ulteriori miglioramenti e progressi.
Internet è cresciuta più rapidamente di ogni altra tecnologia
nella storia, molto più rapidamente delle ferrovie, della telefonia,
della radio e della televisione. Il merito fondamentale di quel rapido
progresso è da attribuirsi allo spirito della collaborazione che
anima l'IETF e all'adozione di due principi fondamentali: "rough consensus and running code" e "fly
before buy". In altri termini: "la fantasia al potere",
come predicavano gli studenti nel '68, ma anche molta concretezza,
"cose che funzionano, e non soltanto idee".
Narra Giovanni nel suo Vangelo "Andò Simon Pietro, e
tirò a terra la rete piena di 153 grossi pesci. E sebbene erano
tanti, la rete non si strappò...". È l'annunciazione
di Internet.
Internet è il frutto di due miracoli. Il primo è il miracolo
tecnologico del collegamento simultaneo di 153 milioni di calcolatori.
Il secondo è il miracolo di un'invenzione molto complessa
ed importante nata fuori della logica del mercato, della competizione
e della gerarchia.
Forse un giorno valuteremo Internet come una delle più importanti
invenzioni dell'Uomo, perché mai nella storia dell'umanità è stato disponibile uno strumento così efficace per la diffusione
delle conoscenze e la crescita del sapere.
^top
|