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