Codice Libero/La GNU General Public License

La GNU General Public License

../Sant'Ignucius ../GNU/Linux IncludiIntestazione 20 luglio 2008 75% open source

Sant'Ignucius GNU - Linux

Con l’arrivo della primavera 1985 Richard Stallman aveva posto la prima pietra miliare del progetto GNU — la versione libera dell’Emacs basata su Lisp. Un obiettivo raggiunto dopo aver superato due grossi scogli. Prima di tutto aveva dovuto ricostruire l’Emacs in modo da renderlo autonomo da qualsiasi piattaforma. Secondo, si era reso necessario procedere a un’analoga revisione della Comune dell’Emacs.

La disputa con la UniPress aveva evidenziato un difetto nel contratto sociale applicato all’interno di tale Comune. Quando gli utenti facevano pieno affidamento sull’esperienza tecnica di Stallman, vigeva il rispetto delle norme interne. In quelle aree in cui egli non conservava più la posizione di hacker-leader — ad esempio, i sistemi Unix anteriori al 1984 — i singoli e le aziende erano liberi di creare regole proprie.

La tensione tra la libertà di modifica e quella di imporre i privilegi dell’autore esisteva in epoca antecedente all’arrivo del GOSMACS. Il Copyright Act del 1976 aveva riscritto le norme vigenti negli Stati Uniti, estendendo all’ambito del software la tutela legale del copyright. Secondo la Sezione 102(b) della legislazione, a singoli e aziende veniva garantita la protezione della "espressione" di un programma ma non quella relativa a "processi e metodi concreti utilizzati" nello stesso.1 In altri termini, programmatori e aziende potevano ora trattare il software al pari di un testo letterario o di una canzone. L’opera avrebbe ispirato altri sviluppatori, ma per produrne una copia diretta o derivati non-satirici occorreva prima ottenere l’autorizzazione del creatore originale. Nonostante la nuova normativa garantisse che anche i programmi privi di apposito avviso fossero comunque tutelati, i programmatori furono lesti ad affermare i propri diritti, apponendo specifiche postille sul copyright per ogni software realizzato.

Inizialmente Stallman considerò con allarmismo quelle diciture. Era raro il caso di un programma che non prendesse in prestito parti di codice da un qualche software precedente, e tuttavia era bastata la firma del Presidente e la volontà del Congresso per consentire a programmatori e aziende di affermare la proprietà individuale su quella comune nella scrittura dei programmi. Ciò introdusse inoltre una buona dose di formalismo all’interno di un sistema precedentemente del tutto informale. Anche quando gli hacker potevano dimostrare che il codice di un certo programma risaliva in realtà a qualche anno addietro, se non spesso a decenni, le risorse e il denaro necessari per controbattere legalmente la veridicità di ogni dicitura relativa al copyright superavano di gran lunga i mezzi a loro disposizione. Per dirla in maniera semplice, le dispute una volta risolte faccia a faccia tra gli hacker venivano ora passate ai rispettivi avvocati. In questo tipo di sistema erano le aziende, non i singoli programmatori, a trovarsi automaticamente in una posizione di vantaggio.

I sostenitori del copyright per il software avevano dalla loro qualche buon argomento: senza quella tutela, le opere potevano scivolare nel dominio pubblico. L’apposizione delle relative note serviva anche come una sorta di bollino di qualità. I programmatori o le aziende che associavano il proprio nome al copyright mettevano anche in gioco la propria reputazione. Si trattava infine di un contratto e di un’affermazione di proprietà. Usando il copyright come una forma di licenza elastica, l’autore poteva concedere alcuni diritti in cambio di determinati comportamenti imposti all’utente. Ad esempio, un autore poteva decidere di rinunciare al diritto di sopprimere copie non autorizzate del programma se in cambio l’utente si dichiarava d’accordo a non crearne derivati commerciali.

Si deve a quest’ultima posizione un certo alleggerimento finale della resistenza di Stallman alle note sul copyright apposte in calce al software. Ripensando a quegli anni preparatori al progetto GNU, egli sostiene di avere iniziato a percepire la natura benefica del copyright all’incirca nel periodo in cui venne diffuso l’Emacs 15.0, ultimo aggiornamento significativo del programma precedente al progetto GNU. "Avevo notato dei messaggi e-mail contenenti diciture sul copyright con l’aggiunta di semplici licenze tipo ’consentita la copia letterale’" ricorda Stallman. "Ciò mi fu di grande ispirazione."

Per l’Emacs 15.0, Stallman buttò giù una postilla sul copyright in cui si consentiva agli utenti il diritto di produrre e distribuire copie, comprese le versioni modificate, ma non quello di reclamare la proprietà esclusiva di tali versioni, come nel caso del GOSMACS.

Pur risultando d’aiuto nella stesura del contratto sociale per la Comune dell’Emacs, quel testo si dimostrò eccessivamente "informale" per gli obiettivi del progetto GNU, spiega Stallman. Qualche tempo dopo l’avvio della realizzazione di GNU Emacs, egli iniziò a consultarsi con gli altri membri della Free Software Foundation sul modo di migliorare il linguaggio di quella licenza. Si consigliò anche con i legali che l’avevano assistito nel lancio della stessa FSF.

Mark Fischer, avvocato di Boston specializzato sulle questioni relative alla proprietà intellettuale, ricorda le discussioni con Stallman di quel periodo. "Richard aveva un’opinione assai precisa sulle modalità di funzionamento", afferma Fischer. "Partiva da due principi di base. Primo, fare in modo che il software rimanesse il più aperto possibile. Secondo, incoraggiare gli altri ad adottare le medesime procedure sulle licenze."

Quest’ultimo punto significava tappare le falle da cui erano emerse le diverse versioni private dell’Emacs. Per farlo, Stallman e i colleghi del software libero trovarono una soluzione: gli utenti sarebbero stati liberi di modificare il GNU Emacs fin tanto che ne pubblicavano ogni cambiamento. Inoltre, le opere "derivate" avrebbero mantenuto l’identica licenza apposta in calce a quel programma.

Occorrerà tempo prima di rendersi pienamente conto della natura rivoluzionaria insita in quest’ultima norma. Allora, aggiunge Fischer, egli aveva considerato la licenza dell’Emacs per GNU come un semplice contratto. Metteva il cartellino del prezzo sull’utilizzo del programma. Anziché denaro, Stallman imponeva agli utenti il pieno accesso alle modifiche successive. Ciò detto, però, Fischer non manca di sottolineare l’originalità dei termini contrattuali.

"Credo che il fatto di chiedere agli altri di accettare di quel prezzo costituisse qualcosa di veramente insolito, se non proprio unico, per quell’epoca", rammenta.

La licenza fece il suo debutto nel 1985 in occasione della diffusione del GNU Emacs. In quella circostanza Stallman incoraggiò i commenti della comunità hacker in generale su eventuali miglioramenti da apportare al linguaggio della licenza. A farsi avanti fu John Gilmore, hacker allora consulente per la Sun Microsystems e futuro attivista a sostegno del software libero. Come parte del suo lavoro di consulenza, Gilmore aveva adattato l’Emacs per il SunOS, versione locale di Unix. Nel corso del processo, ne aveva pubblicato i cambiamenti seguendo i dettati della relativa licenza. Anziché considerare quest’ultima un’affermazione di responsabilità, la intese come chiara e concisa espressione dell’ethos tipico degli hacker. "Fino ad allora gran parte delle licenze ricorrevano a un linguaggio decisamente informale", spiega Gilmore.

E cita come esempio una nota sul copyright, risalente agli anni ’80, relativa a trn, una utility Unix scritta da Larry Wall, futuro creatore dell’utlity "patch" per Unix nonché del linguaggio di scripting Perl. Nella speranza di mantenere un certo equilibrio fra la cortesia tipica di un hacker e il suo diritto di creatore a stabilire le modalità ci pubblicazione del software, Wall inserì nell’allegato file README la seguente dicitura sul copyright:

Copyright (c) 1985, Larry Wall
Potete copiare il kit trn per intero o in parte, senza però cercare di guadagnarci oppure di fingere di averlo scritto voi.2

Simili annotazioni, pur se in sintonia con l’etica hacker, riflettono anche la difficoltà di tradurre la natura agile e informale di tale etica nel linguaggio rigido e legale del copyright. Stilando il testo per la licenza dell’Emacs versione GNU, Stallman fece qualcosa in più che bloccare la fuga verso derivati proprietari. Riuscì a esprimere l’etica hacker in maniera comprensibile sia per gli avvocati sia per gli stessi hacker.

Non passò molto tempo, aggiunge Gilmore, che altri hacker iniziarono a discutere le modalità per adattare tale licenza ai propri programmi. Stimolato da un’analoga conversazione su Usenet, nel novembre 1986 Gilmore inviò una e-mail a Stallman suggerendo alcune modifiche:

Forse dovresti eliminare dal testo "EMACS" per sostituirlo con "SOFTWARE" o qualcosa di simile. Presto, speriamo, l’Emacs cesserà di essere la parte più consistente del sistema GNU, e la licenza va invece applicata al sistema per intero.3

Gilmore non si mostrò l’unico a suggerire un approccio più generalizzato. Alla fine del 1986, lo stesso Stallman era tutto preso dalla successiva pietra miliare del progetto GNU, un "debugger" per codice sorgente e stava cercando di rivedere la licenza dell’Emacs in modo da poterla applicare a entrambi i programmi. Soluzione: eliminare ogni specifico riferimento all’Emacs per convertirla in un copyright generico che abbracciasse l’intero progetto GNU. Nacque così la GNU General Public License, meglio nota con l’acronimo GPL.

In questo caso Stallman aderì alla convenzione di ricorrere ai numeri decimali per indicare le versioni sperimentali e ai numeri interi per quelle più stabili. La versione 1.0 venne pubblicata nel 1989 e proposta come licenza ufficiale di GNU Emacs e di GNU debugger, il secondo importante successo di Stallman nel regno della programmazione Unix. La licenza si apriva con un preambolo a chiarimento delle prospettive politiche:

La General Public License è redatta in modo da garantire la libertà di regalare o vendere copie di software libero, di ricevere o ottenere il codice sorgente desiderato, di modificare il software o usarne parti all’interno di nuovi programmi liberi; e di informare l’utente su tutto ciò.
A tutela dei diritti dell’utente, dobbiamo stabilire delle restrizioni in modo da impedire a chicchessia di negarvi tali diritti o chiedervi di rinunciarvi. Queste restrizioni comportano determinate responsabilità a vostro carico nel caso vogliate distribuire copie del software, oppure apportarvi delle modifiche.4

Mentre lavorava alla stesura del testo, Stallman fu costretto a rivedere ulteriormente le linee-guida informali relative alla vecchia Comune dell’Emacs. Laddove una volta chiedeva a ogni aderente di pubblicarne tutti i cambiamenti apportati, ora la richiesta si limitava soltanto a quei casi in cui i programmatori facevano circolare le versioni derivate all’interno del medesimo ambito pubblico in cui operava Stallman. In altri termini, i programmatori che modificavano l’Emacs puramente a uso privato non dovevano più metterlo a conoscenza del nuovo codice. In quello che sarebbe divenuto un raro compromesso nella dottrina del software libero, decise in tal modo di ridurne drasticamente il prezzo. Gli utenti avrebbero potuto introdurre innovazioni senza il suo consenso fintanto che non ponevano alcun divieto allo stesso Stallman e al resto della comunità hacker per quanto riguardava i successivi scambi del medesimo programma.

Guardando indietro, Stallman ritiene che il compromesso sulla GPL fosse dovuto alla propria insoddisfazione per la connotazione da Grande Fratello del contratto sociale originario della Comune dell’Emacs. Per quanto gli piacesse curiosare nei sistemi altrui, la possibilità che qualcuno incaricato del mantenimento del codice di un programma potesse usare tale potere in maniera distorta lo convinse a moderare i toni della GPL.

"Non mi sembrava giusto imporre la pubblicazione di tutti i cambiamenti", sostiene Stallman. "Era sbagliato richiederne l’inoltro a un unico sviluppatore privilegiato. Quel tipo di centralizzazione e di prerogativa riservata a un singolo individuo faceva a pugni con una società in cui vigono uguali diritti per tutti."

È così che la GPL rimane una delle migliori creature partorite da Stallman. Grazie a essa, venne a crearsi un sistema di proprietà condivisa all’interno dei normali confini della legislazione sul copyright. Fatto ancor più importante, questo mise in evidenza la somiglianza intellettuale tra il codice legale e quello del software. Il preambolo della GPL conteneva un profondo messaggio implicito: anziché considerare con sospetto le norme sul copyright, gli hacker avrebbero dovuto interpretarle come un ulteriore contesto su cui poter intervenire.

"La GPL prese forma in maniera analoga a qualsiasi programma di software libero, facendo affidamento su un’ampia comunità che ne discuteva la struttura, sul rispetto delle posizioni contrarie, sulla necessità di addolcirla e anche di trovare un compromesso per garantirne la maggiore accettazione possibile", sostiene Jerry Cohen, un altro avvocato che aiutò Stallman nella messa a punto della licenza. "Il procedimento funzionò molto bene e nelle successive versioni della GPL si è passati da una reazione diffusamente scettica e talvolta ostile a un’accettazione assai vasta."

In un’intervista apparsa nel 1986 sulla rivista Byte, Stallman sintetizza la GPL in toni coloriti. Oltre a una dichiarazione dei valori hacker, disse, i lettori dovrebbero considerarla anche "come una forma di jujitsu intellettuale, dove il sistema legale impostato dai magnati del software si ritorce contro di loro".5 Qualche anno dopo, Stallman ne avrebbe descritto la creazione in termini meno duri. "Mi trovai a riflettere su diverse questioni a livello etico, politico e legale", spiegò. "Dovevo cercare di mettere insieme qualcosa che potesse rientrare nell’attuale sistema legale. Lo spirito del lavoro voleva porre le basi normative per una società di tipo nuovo ma, visto che non rappresentavo alcun governo, in realtà non potevo modificare alcuna normativa. Dovevo provarci tenendo conto dei sistemi legali attualmente in vigore, i quali non prevedevano nulla di simile."

Mentre Stallman rifletteva sulle questioni etiche, politiche e legali legate al software libero, un hacker californiano rispondente al nome di Don Hopkins gli rispedì un manuale per il microprocessore 68000. Hopkins, specializzato in Unix e amante della fantascienza, lo aveva ricevuto in prestito da Stallman tempo addietro. In segno di riconoscenza, Hopkins decorò la busta con adesivi presi a un incontro locale sulla fantascienza. Uno di questi catturò l’attenzione di Stallman. Diceva, "Copyleft (L), All Rights Reversed" (Copyleft (L), tutti i diritti rovesciati).6

Con la diffusione della prima versione della GPL, egli decise di adattarvi quella dicitura, dando alla licenza sul software libero il soprannome di "Copyleft". Col tempo, tale soprannome e il relativo simbolo, una "C" rovesciata, sarebbero divenuti il sinonimo ufficiale apposto dalla stessa Free Software Foundation a ogni tipo di copyright "che vuole che ogni programma sia ’software libero’ e che lo stesso valga per tutte le sue versioni modificate e ampliate".

Una volta il sociologo tedesco Max Weber avanzò il sospetto che tutte le grandi religioni siano fondate sulla "routinizzazione" o l’"istituzionalizzazione" del carisma. Ogni religione di successo, sosteneva Weber, converte il carisma o il messaggio del leader originario in un apparato sociale, politico ed etico più facilmente traducibile nel passaggio tra le varie epoche e culture.

Pur se di natura tutt’altro che religiosa, la GPL si pone certamente come interessante esempio di un analogo "processo di routinizzazione" attivato all’interno dell’ambito moderno e decentralizzato tipico dello sviluppo del software. Fin dalla sua diffusione, i programmatori e le aziende che si erano dimostrati poco fedeli o leali nei confronti di Stallman optarono per l’immediata accettazione dei termini previsti dalla GPL. Per alcuni essa si è addirittura trasformata in un meccanismo preventivo per la tutela dei propri programmi. Anche quanti la rifiutano ritenendola un contratto che comporta obblighi eccessivi non possono fare a meno di confermarne l’importanza.

Uno degli hacker che rientra in quest’ultimo gruppo è Keith Bostic, impiegato presso la University of California all’epoca in cui venne diffusa la GPL 1.0. Il dipartimento in cui lavorava, il Computer Systems Research Group, ha partecipato allo sviluppo di Unix a partire dalla fine degli anni ’70 ed era responsabile di numerose parti-chiave del sistema, tra cui il protocollo di rete TCP/IP, pietra miliare delle attuali comunicazioni via Internet.

Al tramonto degli anni ’80, la AT&T, proprietario originario del marchio Unix, avviò la fase di commercializzazione del sistema e iniziò a considerare la Berkeley Software Distribution, o BSD, versione accademica dello stesso Unix sviluppato da Bostic e dai colleghi di Berkeley, come elemento chiave per la messa a punto della tecnologia commerciale.

Sebbene il codice della BSD venisse condiviso tra ricercatori e programmatori commerciali tramite un’apposita licenza, l’operazione presentava un problema. Il codice della Berkeley Software Distribution era inframmezzato con il codice proprietario della AT&T. Di conseguenza le distribuzioni della prima erano disponibili soltanto per quelle istituzioni già in possesso di una licenza della AT&T. Quando quest’ultima decise di alzare i prezzi, tale soluzione, inizialmente considerata innocua, apparve sempre più onerosa.

Assunto nel 1986, Bostic si era incaricato di trasportare la BSD sul computer PDP-11 della Digital Equipment Corporation. Fu in questo periodo, spiega lo stesso Bostic, che si trovò in stretto contatto con Stallman durante le occasionali visite di quest’ultimo in California. "Ricordo particolarmente le animate discussioni sul copyright, seduti davanti ai terminali del Computer Systems Research Group", afferma Bostic. "Discussioni che continuavamo poi a cena."

Alla fine le diverse posizioni portarono a qualcosa di concreto, sebbene in una direzione diversa da quella auspicata da Stallman. Nel giugno 1989, la Berkeley Software Distribution separò il proprio codice di rete dal resto del sistema operativo di proprietà della AT&T e iniziò a distribuirlo sotto una licenza rilasciata dalla University of California. I termini del contratto sembravano alquanto aperti. Tutto quello che si richiedeva all’utente era di dare esplicito riconoscimento all’Università nelle eventuali inserzioni pubblicitarie previste per i programmi derivati.7 Al contrario della GPL, venivano consentite le derivazioni proprietarie. La rapida adozione di tale licenza fu frenata però da un’importante limitazione: la versione della BSD non era un sistema operativo completo. Se ne poteva studiare il codice, ma questo funzionava soltanto se integrato in altri programmi proprietari.

Nel corso degli anni successivi, Bostic e altri programmatori della University of California lavorarono alla sostituzione dei componenti mancanti, trasformando così la BSD in un sistema operativo completo e liberamente distribuibile. Pur se in ritardo per via di una disputa legale avviata dalla Unix Systems Laboratories — la sussidiaria della AT&T che rilevò la proprietà del marchio Unix — quello sforzo avrebbe prodotto frutti all’alba degli anni ’90. Ma ancor prima, parecchie utility incluse nella BSD erano già finite nel progetto GNU di Stallman.

"Non credo che saremmo mai riusciti ad andare così forte senza l’influenza di GNU", sostiene Bostic, ripensando a quel periodo. "Era chiaramente un progetto in cui credevano molto e l’idea piacque anche a noi."

Fu verso la fine degli anni ’80 che la GPL iniziò a esercitare un effetto gravitazionale sulla comunità del software libero. Non occorreva che un programma usasse quella licenza per ottenere la qualifica di software libero — lo testimoniano le utility della BSD — ma aderendovi avrebbe diffuso un preciso messaggio. "Direi che l’esistenza stessa della GPL ispirò molta gente a chiedersi se il software su cui stavano lavorando fosse davvero libero e quale fosse la licenza più adeguata sotto cui distribuirlo", sostiene Bruce Perens, creatore di Electric Fence, nota utility Unix, e futuro leader del gruppo di sviluppo di Debian per GNU/Linux. Qualche anno dopo la diffusione della GPL, Perens rammenta di aver abbandonato la licenza prevista per Electric Fence, preferendo adottare quella più corretta a livello legale messa a punto da Stallman. "In realtà si rivelò un’operazione assai semplice", ricorda Perens.

Rich Morin, un programmatore che aveva preso l’annuncio iniziale di Stallman con un certo scetticismo, ricorda di essere rimasto impressionato dal software che iniziò a raggrupparsi sotto l’egida della GPL. Nella posizione di leader di uno user group dedicato a SunOS, uno dei compiti primari di Morin negli anni ’80 riguardava la distribuzione di nastri contenenti le migliori utility freeware o free software. Un’attività che lo obbligava a contattare gli autori originari per verificare se i loro programmi fossero protetti da copyright oppure di dominio pubblico. Fu intorno al 1989, afferma Morin, che iniziò a notare come il miglior software rientrasse generalmente sotto la licenza GPL. "Nella mia posizione di distributore di software, non appena vedevo la firma GPL la considerato una sicura garanzia", ricorda Morin.

A copertura del lavoro necessario per la distribuzione di quei nastri ai membri del Sun User Group, Morin era solito chiedere loro un rimborso. Ora, con il passaggio dei programmi sotto la GPL, si trovava improvvisamente a mettere insieme quelle raccolte in metà tempo, ottenendo perfino qualche minimo profitto. Intuendo l’opportunità commerciale, Morin trasformò l’hobby in attività imprenditoriale sotto il nome di Prime Time Freeware.

Iniziative commerciali del genere rientravano pienamente nei confini progettuali del software libero. "Quando parliamo di software libero ci riferiamo alla libertà, non al valore monetario", spiegava Stallman nel preambolo alla GPL. A partire dagli anni ’90, raffinò il concetto con una battuta più semplice: "Non pensiamo a ’free’ (libero o gratuito) come in ’free beer’ (birra gratis), ma piuttosto come in ’free speech’ (libertà d’espressione)".

Per lo più le aziende ignorarono le puntualizzazioni di Stallman. Eppure per alcuni imprenditori il termine "freedom" (libertà) associato al software libero rivestiva un significato identico a quello di "free market" (libero mercato). Eliminiamo la proprietà del software dall’equazione commerciale e avremo una situazione in cui perfino la più piccola delle aziende si sentirà libera di competere contro giganti come l’IBM e la Digital.

Uno dei primi imprenditori ad appropriarsi di una simile idea fu Michael Tiemann, programmatore e laureando presso la Stanford University. Durante gli anni ’80, Tiemann aveva seguito il progetto GNU come un aspirante musicista jazz segue l’artista preferito. Dovette tuttavia attendere la distribuzione del GNU Compiler C (GCC) del 1987 prima di poter afferrare in pieno le potenzialità del software libero. Definendolo "una bomba", Tiemann ritiene la sola esistenza di quel programma sufficiente a evidenziare la determinazione di Stallman nelle vesti di programmatore.

"Proprio come ogni scrittore sogna di scrivere un grande romanzo, così negli anni ’80 ogni programmatore non parlava d’altro se non di realizzare un grande compilatore", rammenta Tiemman. "Improvvisamente Stallman ci era riuscito. Fu una cosa umiliante."

"Se vogliamo isolare un solo punto di svolta, quello fu il GCC", concorda Bostic. "Prima del suo lancio, nessuno poteva vantarsi di avere un compilatore."

Anziché competere con Stallman, Tiemann decise di costruire qualcosa a partire dal suo lavoro. La versione originale del compilatore occupava 110.000 righe di codice, ma Tiemann lo ricorda come sorprendentemente semplice da capire. Era talmente semplice che in realtà gli ci vollero meno di cinque giorni per impararlo e un’ulteriore settimana per adattarlo a una nuova piattaforma hardware, il microchip 32032 della National Semiconductor. Nel corso dell’anno successivo, Tiemann iniziò a giocare con il codice, finendo col creare un compilatore nativo per il linguaggio C++. Un giorno, intervenendo a un evento presso i Bell Labs, Tiemann venne a sapere che alcuni sviluppatori della AT&T erano alle prese con un identico progetto.

"In sala c’erano 40 o 50 persone, e chiesi se qualcuno stesse lavorando a quel compilatore", ricorda. "Uno di loro rispose che si trattava di un’informazione riservata, aggiungendo però che una semplice occhiata in giro sarebbe stata sufficiente a fornirmi il quadro della situazione."

Comunque sia, l’idea giusta prese corpo qualche tempo dopo. "Lavoravo a quel progetto ormai da sei mesi. Pensai, ’non so se dipende da me o dal codice, ma il livello di efficacia raggiunto è tale da potersi aspettare qualche tipo di ricompensa dal libero mercato’", chiarisce Tiemann.

Un’ulteriore fonte d’ispirazione giunse dal Manifesto GNU il cui testo, pur ferendo la cupidigia di alcuni rivenditori, ne incoraggia altri a considerare i vantaggi del software libero dal punto di vista del consumatore. Eliminando il potere del monopolio dall’ambito del software commerciale, la GPL consente infatti ai distributori più accorti di competere efficacemente nell’ambito dei servizi e della consulenza, le due aree più redditizie di quel mercato.

In un saggio redatto nel 1999, Tiemann ricorda l’impatto del Manifesto di Stallman. "[...] in superficie può apparire polemica socialista, ma io vi ho trovato qualcosa di diverso. Nascosto tra le righe vi ho intravisto un progetto commerciale."8

In collaborazione con John Gilmore, altro entusiasta del progetto GNU, Tiemann lanciò così un servizio di consulenza dedicato alla personalizzazione di programmi GNU. Con il nome di Cygnus Support, la società firmò il suo primo contratto nel febbraio 1990. A fine anno ne aveva raccolti per un valore complessivo pari a 725.000 dollari.

GNU Emacs, GDB e GCC erano i "tre grandi" tra gli strumenti per sviluppatori, ma non furono gli unici messi a punto da Stallman durante i primi cinque anni del progetto GNU. Entro il 1990, Stallman aveva realizzato anche la versione GNU della Bourne Shell (ribattezzata Bourne Again Shell, o BASH), YACC (rinominata Bison), e awk (gawk). Al pari di GCC, ciascun programma GNU era studiato per girare su molteplici sistemi, non unicamente sulla piattaforma di un solo produttore. Con l’intento di fornire maggiore elasticità a quei programmi, spesso Stallman e i suoi collaboratori finivano per renderli anche più utili.

Riferendosi all’approccio universale di GNU, Morin della Prime Time Freeware sottolinea in particolare un pacchetto, importante pur se di portata ridotta, chiamato hello. "Si tratta di un programma composto da cinque righe in C, organizzato come fosse una distribuzione GNU", spiega Morin. "In tal modo riuscì a conquistarsi moduli tipo il ’Texinfo’ e il ’configure’. Per consentire al software di adattarsi facilmente ad ambienti diversi, si è cioè avvalso di tutti gli altri accessori utilizzati dal progetto GNU. Si tratta di un’operazione di estrema importanza che finì per estendersi non soltanto a tutto il software [di Stallman] ma anche a quello del progetto GNU."

Secondo Stallman, il miglioramento dei programmi rappresentava un’attività secondaria rispetto alla loro scrittura. "Non ero affatto certo di essere in grado di perfezionare questo o quel programma", spiegò nell’intervista a Byte. "Quando ci riuscivo, in un certo senso a beneficiarne era la procedura di re-implementazione, operazione che tende in ogni caso a migliorare le prestazioni di ogni sistema. D’altra parte, ciò può accadere perché è da molto tempo che lavoro su sistemi diversi, di conseguenza mi vengono buone idee per adattarli al meglio."9

Comunque sia, mentre sul finire degli anni ’80 gli strumenti GNU iniziavano a lasciare il segno, la reputazione acquisita da Stallman all’epoca del laboratorio di intelligenza artificiale, per quanto riguarda l’eccessiva pignoleria progettuale, divenne leggendaria nell’intera comunità degli sviluppatori.

Jeremy Allison, allora utente Sun e programmatore destinato a lanciare un decennio più avanti un proprio progetto di software libero, Samba, rammenta quella reputazione ridendoci sopra. Durante gli ultimi anni ’80, Allison iniziò a usare l’Emacs. Ispirato dal modello di sviluppo comunitario, dice di aver inviato a Stallman il proprio contributo solo per vederselo rifiutare.

"Si può riassumere il tutto con un titolo della testata satirica online Onion", scherza Allison. "Qualcosa tipo, ’Dio dice no alle preghiere di un fanciullo.’"

La crescente statura di Stallman come programmatore veniva tuttavia controbilanciata dai problemi in cui si dibatteva nelle vesti di project manager. Anche se GNU passava di successo in successo nella creazione di strumenti per lo sviluppo, l’incapacità di generare un kernel funzionante — il programma di controllo centrale di tutti i sistemi Unix capace di determinare quali periferiche e applicazioni debbano avere accesso al microprocessore e quando — anche prima della fine degli anni ’80 stava provocando qualche mugugno di delusione.

Come per gli altri componenti del progetto GNU, Stallman ne aveva iniziato lo sviluppo cercando un programma già in circolazione da modificare. Secondo la "GNUsletter" della fine degli anni ’80, questo approccio, come il tentativo iniziale di costruire GCC partendo da Pastel, era tutt’altro che ottimale. Una GNUsletter del gennaio 1987 riporta che il progetto GNU stava lavorando al rifacimento di TRIX, un kernel Unix realizzato al MIT.

Nel febbraio del 1987, una newsletter segnala che il progetto aveva spostato l’attenzione su Mach, un "micro-kernel" leggero sviluppato presso la Carnegie Mellon. Ciò nonostante, il lavoro effettivo sul kernel del progetto GNU non prese ufficialmente il via prima del 1990.10

Un simile ritardo rappresentava soltanto una delle numerose preoccupazioni che incombevano su Stallman in quel periodo. Nel 1989, la Lotus Development Corporation avviò una azione legale contro un’azienda rivale, la Paperback Software International, per aver copiato i comandi del menu presenti nel popolare spreadsheet Lotus 1-2-3. La denuncia della Lotus, in aggiunta alla battaglia Apple-Microsoft sull’aspetto tipico delle applicazioni, provocò una ricaduta problematica per il progetto GNU. Anche se le due vicende giudiziarie esulavano dagli obiettivi perseguiti da tale progetto, entrambe riguardavano sistemi operatavi e applicazioni realizzate per il personal computer — non per sistemi compatibili con Unix — minacciavano comunque di propagare un micidiale effetto a catena sull’intera cultura degli sviluppatori. Deciso a far qualcosa, Stallman incaricò alcuni amici programmatori di realizzare un’inserzione pubblicitaria per alcune riviste per opporsi alle due vertenze. Proseguì poi avviando l’organizzazione di un gruppo di protesta contro simili iniziative delle corporation. Sotto il nome di League of Programming Freedom (Lega per la libertà di programmazione), il gruppo tenne dimostrazioni di protesta davanti agli uffici della Lotus e all’aula giudiziaria di Boston che ospitava il processo.

Proteste che ottennero una certa visibilità,11 poiché documentavano la natura in continua evoluzione dell’industria del software. Le applicazioni avevano silenziosamente sostituito i sistemi operativi come principale campo di battaglia delle grandi aziende. Nella sua ricerca senza esito di costruire un sistema operativo di software libero, il progetto GNU sembrava però perdere irrimediabilmente il passo con i tempi. Anzi, agli occhi di alcuni osservatori, proprio il fatto che Stallman avesse ritenuto necessario mettere insieme un gruppo completamente nuovo per opporsi alle azioni legali non faceva altro che rafforzare l’idea di una certa obsolescenza in atto.

Nel 1990, la John D. & Catherine T. MacArthur Foundation riconobbe il genio di Stallman assegnandogli un riconoscimento in denaro. Il premio, una ricompensa di 240.000 dollari per il lancio del progetto GNU e per aver dato voce alla filosofia del software libero, risolse alcune preoccupazioni a breve termine. Per prima cosa consentì a Stallman, dipendente non stipendiato della FSF il cui sostentamento era unicamente basato su contratti di consulenza, di dedicare maggior tempo alla scrittura del codice GNU.12

Ironicamente, il riconoscimento permise inoltre a Stallman di esercitare il diritto di voto. Qualche mese prima un incendio aveva distrutto i suoi pochi possedimenti terreni. Ufficialmente risultava perciò "senza fissa dimora",13 residente al 545 di Technology Square. "[L'ufficio elettorale] non volle accettare quell’indirizzo come mio domicilio", avrebbe ricordato successivamente Stallman. "Ma cambiarono idea subito dopo la pubblicazione su un quotidiano di un articolo in cui si parlava del premio assegnatomi dalla MacArthur Foundation."14

Fatto ancora più importante, quel denaro gli garantì maggiore libertà di movimento. Già completamente immerso nelle tematiche relative al software libero, poté così incrementare i viaggi a sostegno della missione del progetto GNU.

È interessante notare come il definitivo successo di tale progetto e più in generale del movimento del software libero prese avvio da uno di questi viaggi. Nel 1990 Stallman visitò il Politecnico di Helsinki, in Finlandia. Tra il pubblico sedeva anche il ventunenne Linus Torvalds, futuro sviluppatore del kernel Linux, destinato a colmare il vuoto di maggiori proporzioni presente nel progetto GNU.

Allora studente presso la vicina Università, Torvalds osservò Stallman non senza meraviglia. "Per la prima volta in vita mia, eccomi davanti allo stereotipo dell’hacker con i capelli lunghi e la barba", scrive Torvalds nella sua autobiografia del 2001, Rivoluzionario per caso. "Era difficile imbattersi in gente simile a Helsinki."15

Pur se lontano dalle posizioni "sociopolitiche" di Stallman, Torvalds considerò comunque positiva la logica che lo motivava: nessun programmatore scrive codice privo di errori. Grazie alla condivisione del software, per gli hacker il miglioramento di un programma diviene la molla prioritaria rispetto a motivazioni individuali quali cupidigia o egoismo.

Come molti programmatori della propria generazione, Torvalds non si era formato sui mainframe tipo l’IBM 7094, bensì su un vasto assortimento di sistemi fatti in casa. Seguendo i corsi universitari, era passato dalla programmazione su PC a Unix, usando il MicroVAX dell’università. Questa crescita progressiva gli aveva offerto una diversa prospettiva sugli ostacoli che si frapponevano all’accesso alle macchine. Per Stallman, gli scogli maggiori erano costituiti da burocrazia e privilegi interni. Per Torvalds si trattava invece della geografia e del gelido inverno di Helsinki. Costretto ad attraversare i viali dell’Università di quella città unicamente per avere accesso al proprio account Unix, Torvalds iniziò presto a cercare un modo per farlo dal calduccio del proprio appartamento situato fuori dal campus.

Una ricerca che lo condusse presto al sistema operativo Minix, versione leggera di Unix sviluppata a scopo didattico dal professore universitario olandese Andrew Tanenbaum. Il programma stava nei limiti della memoria di un PC 386, la macchina più potente che Torvalds potesse permettersi, ma difettava ancora di alcune componenti essenziali. Mancava soprattutto l’emulazione di terminale, funzione che poteva consentirgli di emulare quello universitario, rendendo così possibile il collegamento al MicroVAX direttamente da casa.

Nell’estate 1991 Torvalds iniziò così a riscrivere da capo Minix, aggiungendovi nello stesso tempo nuove funzioni. A fine estate parlava del suo lavoro come "del GNU/Emacs degli emulatori di terminale".16 Sentendosi sicuro, chiese al newsgroup Minix copie degli standard POSIX, il software di base che stabiliva la compatibilità di un programma con Unix. E qualche settimana dopo fece girare online un messaggio stranamente analogo al testo originario relativo a GNU, diffuso da Stallman nel 1983:

Un saluto a tutti coloro che usano minix
Sto lavorando su un sistema operativo (libero), giusto per hobby, nulla di grande e professionale come gnu, per i cloni AT 386 (486). È in costruzione da aprile, e si può dire quasi pronto. Vorrei ricevere commenti su quello che vi piace o non vi piace in minix, poiché il mio sistema operativo gli assomiglia parecchio (tra le altre cose ha la stessa configurazione fisica del file-system, per motivi pratici).17

Il messaggio attirò una valanga di risposte e, nel giro di un mese, Torvalds inseriva su un sito FTP la versione 0.01 del sistema operativo — ovvero, la prima stesura che fosse possibile sottoporre a revisioni esterne. Nel frattempo aveva anche trovato un nome per il nuovo sistema. Sul disco fisso del PC, lo aveva salvato come Linux, in omaggio alla consuetudine di chiamare ogni variazione di Unix con un nome che finisse in X. Ritenendo però quel nome troppo "egocentrico", Torvalds decise di sostituirlo con Freax, solo per poi scoprire che il gestore del sito FTP l’aveva riportato al nome originario.

Anche se animati dall’intenzione di costruire un vero e proprio sistema operativo, sia Torvalds che altri programmatori erano al corrente della disponibilità di gran parte degli strumenti operativi necessari, grazie all’opera di GNU, BSD e di altri sviluppatori di software libero. Uno dei primi applicativi da cui il gruppo di lavoro su Linux trasse vantaggio fu il GNU C Compiler, strumento che rese possibile l’elaborazione di programmi scritti in C.

L’integrazione del GCC migliorò le prestazioni di Linux. Ma sollevò anche problemi. Nonostante i poteri "virali" della GPL non avessero nulla a che fare con il nuovo kernel, la decisione di Torvalds di prendere in prestito il GCC per il proprio sistema operativo libero stava a indicare un certo obbligo a permettere che altri utenti facessero lo stesso. Come dice lo stesso Torvalds: "Mi ero arrampicato sulle spalle di giganti."18 Inevitabilmente iniziò a pensare a cosa sarebbe accaduto quando qualcun altro gli avesse avanzato una richiesta analoga. Dieci anni dopo quella decisione, Torvalds riecheggia la posizione di Robert Chassel della Free Software Foundation nel riassumere le proprie riflessioni in quella circostanza:

Dopo aver speso sei mesi della tua vita in quel lavoro, decidi di metterlo a disposizione di tutti, anche per tirarci fuori qualcosa, ma non vuoi che altri se ne approfittino. Volevo che la gente potesse prenderne visione e apportarvi modifiche e migliorie a piacimento. Ma dovevo anche assicurarmi di poter verificare tali modifiche. Volevo garantirmi l’accesso continuato al codice, in modo da poter sempre riprendere le eventuali migliorie altrui.19

Quando giunse il momento di distribuire la versione 0.12 di Linux, la prima a contenere una versione pienamente integrata del GCC, Torvalds decise di rendere esplicita la propria lealtà al movimento del software libero. Gettò via la licenza del vecchio kernel per sostituirla con la GPL. La decisione diede vita a una miriade di adattamenti aggiuntivi, con Torvalds e i vari collaboratori alla ricerca di altri programmi GNU da inserire nell’emergente calderone di Linux. Nel giro di tre anni, gli sviluppatori erano pronti a distribuire il primo vero sistema, Linux 1.0, che comprendeva le versioni pienamente modificate di GCC e GDB oltre a un’ampia serie di strumenti BSD.

Entro il 1994, il sistema operativo così amalgamato aveva guadagnato sufficiente considerazione nel mondo hacker, tanto che alcuni osservatori si chiesero se Torvalds non avesse fatto male ad abbracciare la GPL nella fase iniziale del progetto. Nel primo numero della rivista Linux Journal, l’editore Robert Young tenne un’intervista a quattr’occhi con Torvalds. Alla domanda se non si fosse pentito di aver rinunciato alla proprietà privata del codice, il programmatore finlandese rispose di no. "Anche con il senno di poi", questa la replica di Torvalds, considerava l’adesione alla GPL "una delle decisioni migliori" prese durante i primi passi del progetto Linux.20

Una decisione, non certo presa per rispetto o deferenza nei confronti di Stallman e della Free Software Foundation, che testimonia la crescente portabilità della GPL. Anche se ci vollero alcuni anni prima che Stallman se ne rendesse conto, l’esplosione dello sviluppo di Linux ricreava l’analogo scenario dell’Emacs. Stavolta, tuttavia, l’innovazione alla base di tale esplosione non era una trovata come il Control-R quanto piuttosto la novità di far girare un sistema simile a Unix sull’architettura di un PC. Ma anche con motivazioni diverse il risultato finale rifletteva in pieno le caratteristiche etiche di base: un sistema operativo pienamente funzionale composto interamente di software libero.

Come indicava quella prima e-mail inviata al newsgroup comp.os.minix, per alcuni mesi Torvalds considerò Linux poco più che una sorta di intermezzo, fino a quando gli sviluppatori GNU non avessero realizzato il kernel HURD. Questa volontà iniziale di non valutare Linux in termini politici rappresenta un grosso colpo inferto alla Free Software Foundation.

A livello personale Torvalds non era altro che l’ultimo di una lunga fila di ragazzi interessati semplicemente a smontare e rimontare le cose per puro divertimento. Ciò nonostante, sintetizzando il successo di un progetto che altrettanto facilmente avrebbe potuto rimanere per sempre sul disco fisso di un computer abbandonato, egli attribuisce alla propria giovinezza il merito di aver avuto la saggezza di lasciar perdere ogni controllo per accettare invece quanto proposto dalla GPL.

"Forse non ho visto la luce", scrive Torvalds riflettendo su quell’intervento di Stallman al Politecnico e sulla successiva decisione di aderire alla GPL. "Ma direi che qualcosa del suo discorso mi era rimasto dentro."21

Note

  1. Si veda Hal Abelson, Mike Fischer & Joanne Costello, "Software and Copyright Law", versione aggiornata (1998). http://www.swiss.ai.mit.edu/6805/articles/int-prop/software-copyright.html
  2. Si veda Trn Kit README. http://www.za.debian.org/doc/trn/trn-readme
  3. Si veda John Gilmore, citazione tratta da una sua e-mail all’autore del libro.
  4. Si veda Richard Stallman, et al., "GNU General Public License: Version 1", (febbraio 1989). http://www.gnu.org/copyleft/copying-1.0.html
  5. Si veda David Betz & Jon Edwards, "Richard Stallman discute con i redattori di Byte il proprio sistema di pubblico dominio [sic] compatibile con Unix", Byte (luglio 1996). (Ripubblicata sul sito del progetto GNU: http://www.gnu.org/gnu/byte-interview.html.) L'intervista getta un’interessante, per non dire candida, luce sulle posizioni politiche di Stallman all’alba del progetto GNU. Risulta inoltre d’aiuto nel tracciare l’evoluzione della sua retorica. Descrivendo l’obiettivo della GPL, Stallman sostiene: "Sto cercando di cambiare l’approccio alla conoscenza e all’informazione in generale. Secondo me, ogni tentativo di rendere proprietaria tale conoscenza, di limitarne o meno l’utilizzo da parte dei singoli, oppure di impedire ad altri di condividerla, va considerato un sabotaggio". Confrontiamo simili posizioni con un’affermazione resa dallo stesso Stallman all’autore del libro nell’agosto 2000: "Vi esorto a non usare il termine ’proprietà intellettuale’ nelle vostre riflessioni. Ciò potrebbe ingenerare equivoci, perché quel termine suggerisce un’eccessiva generalizzazione tra copyright, brevetti e marchi commerciali. Si tratta di elementi dagli effetti talmente diversi tra loro che è del tutto folle discuterne come di un unico insieme. Se qualcuno parla di proprietà intellettuale senza virgolette, vuol dire che difetta di chiarezza, e allora è meglio lasciar perdere".
  6. Il gioco di parole fra "reserved" (riservati) e "reversed" (rovesciati) è intraducibile. [N.d.R.]
  7. Quella "odiosa clausola pubblicitaria" della University of California in seguito si sarebbe rivelata un problema. Alla ricerca di un’alternativa meno restrittiva della GPL, alcuni hacker ricorsero a tale clausola, sostituendo la dicitura "University of California" con il nome della propria istituzione. Risultato: i programmi di software libero che utilizzavano parti prese da decine di altri programmi dovevano citare decine di entità. Nel 1999, dopo circa dieci anni di insistenze da parte di Stallman, la University of California si trovò d’accordo a eliminare quella clausola. Si veda "The BSD License Problem": http://www.gnu.org/philosophy/bsd.html.
  8. Si veda Michael Tiemann, "Il futuro della Cygnus Solutions: resoconto di un imprenditore", Open Sources, Apogeo, 1999, p. 78.
  9. Si veda Richard Stallman, Byte (1986).
  10. Si veda "HURD History", http://www.gnu.org/software/hurd/history.html
  11. Secondo un comunicato della League of Programming Freedom, le proteste attirarono l’attenzione, perché costituivano il primo esempio di strofe di protesta esadecimali:

       1-2-3-4, toss the lawyers out the door; (1-2-3-4, butta fuori l’avvocato)
       5-6-7-8, innovate don’t litigate; (5-6-7-8, innovazione non cause legali)
       9-A-B-C, 1-2-3 is not for me; (9-A-B-C, 1-2-3 non fa per me)
       D-E-F-O, look and feel have got to go (D-E-F-O, l’aspetto tipico può restare)

    http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/demo.final.release

  12. Qui il termine " scrivere" va inteso in senso lato. Più o meno in concomitanza con il premio della MacArthur, Stallman iniziò a soffrire di dolori cronici alle mani e quindi a dettare il suo lavoro ai dattilografi della FSF. Qualcuno pensava che potesse trattarsi dei tipici dolori dovuti a stress ripetitivi (RSI), problema comune tra i programmatori, ma Stallman non ne appare convinto al 100%: "Non era la sindrome del tunnel carpale, poiché il problema era nella mani e non nei polsi". Da allora ha imparato a fare a meno dei dattilografi, utilizzando una tastiera che richiede una minore pressione delle dita.
  13. Si veda Reuven Lerner, "Stallman wins $240,000 MacArthur award", MIT, The Tech (18 luglio 1990). http://the-tech.mit.edu/V110/N30/rms.30n.html
  14. Si veda Michael Gross, "Richard Stallman: High School Misfit, Symbol of Free Software, MacArthur-certified Genius" (1999).
  15. Si veda Linus Torvalds & David Diamond, Rivoluzionario per caso. Milano, Garzanti, 2001.
  16. Ibid.
  17. Si veda "Linux 10th Anniversary". http://www.linux10.org/history/
  18. Si veda Linus Torvalds & David Diamond, Rivoluzionario per caso. Milano, Garzanti, 2001.
  19. Ibid.
  20. Si veda Robert Young, "Interview with Linus, the Author of Linux", Linux Journal (1 marzo 1994). http://www.linuxjournal.com/article.php?sid=2736
  21. Si veda Linus Torvalds & David Diamond, Rivoluzionario per caso, Milano, Garzanti, 2001.