Free as in Freedom in italiano: Capitolo 1. La stampante fatale
Free as in Freedom in italiano: Capitolo 2. 2001: Odissea hacker
Free as in Freedom in italiano: Capitolo 3. Ritratto di un hacker da giovane
Free as in Freedom in italiano: Capitolo 4. Smontare Dio
Free as in Freedom in italiano: Capitolo 5. Ruscello di libertà
Free as in Freedom in italiano: Capitolo 6. Comune Emacs
Dilemma della morale assoluta
Nella notte del 27 settembre 1983, alle 0:30, un messaggio inusuale firmato rms@mit-oz apparve nel gruppo Usenet net.unix-wizards. Il messaggio era breve e estremamente invitante: ‘Nuova implementazione di UNIX’. Ma invece di una qualche nuova versione pronta di Unix, il lettore si trovava di fronte a un appello:
In questo Giorno del Ringraziamento, inizio a scrivere un nuovo sistema operativo completamente compatibile con Unix, che sarà chiamato GNU (GNU’s Not Unix). Lo distribuirò gratuitamente a tutti coloro che lo desiderano. Ho davvero bisogno del vostro tempo, denaro, codice, hardware - qualsiasi aiuto.
Agli occhi di uno sviluppatore Unix esperto, il messaggio sembrava una miscela di idealismo e alta autostima. L'autore non si limitava a ricreare da zero un intero sistema operativo, già molto sviluppato e potente, ma intendeva anche migliorarlo. Il sistema GNU doveva contenere tutti i componenti necessari come un editor di testo, una shell, un compilatore e ‘diverse altre cose’. Venivano promesse anche possibilità estremamente attraenti che non esistevano nei sistemi Unix già esistenti: un’interfaccia grafica nel linguaggio di programmazione Lisp, un file system resistente ai guasti, protocolli di rete basati sull'architettura di rete del MIT.
‘GNU sarà in grado di eseguire programmi Unix, ma non sarà identico al sistema Unix,’ scrisse l'autore, ‘faremo tutti i miglioramenti necessari che sono diventati urgenti dopo anni di lavoro con vari sistemi operativi.’
Prevedendo una reazione scettica al suo messaggio, l'autore lo integrò con un breve estratto autobiografico intitolato: ‘Chi sono?’:
Sono Richard Stallman, il creatore del primo editor EMACS, uno dei cui cloni avrai sicuramente incontrato. Lavoro presso il Laboratorio di Intelligenza Artificiale del Massachusetts Institute of Technology. Ho una vasta esperienza nello sviluppo di compilatori, editor, debugger, interpreti di comandi, sistemi operativi ITS e Lisp Machine. Ho implementato un supporto per lo schermo indipendente dai terminali in ITS, nonché un file system a prova di guasto e due sistemi finestre per le macchine Lisp.
È successo che il progetto elaborato di Stallman non sia iniziato nel Giorno del Ringraziamento, come promesso. Solo nel gennaio 1984 Richard si immersi completamente nello sviluppo di software in stile Unix. Dal punto di vista dell'architetto di sistema di ITS, era come passare dalla costruzione di palazzi moreschi alla costruzione di centri commerciali suburbani. Tuttavia, lo sviluppo del sistema Unix presentava anche vantaggi. ITS, nonostante la sua potenza, aveva un punto debole: funzionava solo su computer PDP-10 di DEC. All'inizio degli anni '80, il Laboratorio abbandonò il PDP-10, e ITS, che i programmatori paragonavano a una città vivente, si trasformò in una città fantasma. Unix, d'altra parte, era stato progettato fin dall'inizio per la portabilità da un'architettura computeristica all'altra, quindi non correva simili rischi. Sviluppato da ricercatori junior di AT&T, Unix scivolò oltre i radar aziendali e trovò una tranquilla sistemazione nel mondo non profit dei centri di ricerca. Avendo meno risorse rispetto ai loro colleghi hacker del MIT, gli sviluppatori di Unix adattarono il loro sistema per funzionare su un assortimento di hardware eterogeneo. In particolare, sul PDP-11 a 16 bit, che gli hacker del Laboratorio consideravano inadeguato per compiti seri, ma anche su mainframe a 32 bit come il VAX 11/780. Entro il 1983, aziende come Sun Microsystems avevano creato computer desktop relativamente compatti — workstation — paragonabili in potenza al vecchio mainframe PDP-10. Anche su queste workstation risiedeva l'onnipresente Unix.
La portabilità di Unix era garantita da uno strato aggiuntivo di astrazione tra le applicazioni e l'hardware. Invece di scrivere programmi nel codice macchina di un computer specifico, come facevano gli hacker del Laboratorio nello sviluppo di programmi per ITS su PDP-10, gli sviluppatori di Unix utilizzarono un linguaggio di programmazione di alto livello, il C, che non era legato a una piattaforma hardware specifica. In questo modo, gli sviluppatori si concentrarono sulla standardizzazione delle interfacce attraverso le quali le parti del sistema operativo interagivano tra loro. Il risultato fu un sistema in cui qualsiasi parte poteva essere modificata senza influenzare le altre e senza compromettere il loro funzionamento. E per trasferire il sistema da un'architettura hardware a un'altra, era sufficiente modificare solo una parte del sistema, senza dover riscrivere tutto. Gli esperti hanno apprezzato enormemente questo fantastico livello di flessibilità e comodità, motivo per cui Unix si diffuse rapidamente nel mondo informatico.
Stallman decise di creare il sistema GNU a causa della morte di ITS, il preferito dei hacker del Laboratorio di Intelligenza Artificiale. La morte di ITS fu un colpo per loro, compreso Richard. Se la storia della stampante laser Xerox gli aveva aperto gli occhi sull'ingiustizia delle licenze proprietarie, la scomparsa di ITS lo spinse da un rifiuto del software proprietario a una opposizione attiva nei suoi confronti.
Le ragioni della morte di ITS, così come il suo codice, affondavano le radici nel passato. Nel 1980, la maggior parte degli hacker del Laboratorio stava già lavorando a una macchina Lisp e a un sistema operativo per essa.
Lisp è un linguaggio di programmazione elegante, perfetto per lavorare con dati la cui struttura è sconosciuta in anticipo. È stato creato dal pioniere della ricerca sull'intelligenza artificiale e dal creatore del termine "intelligenza artificiale" John McCarthy, che lavorava al MIT nella seconda metà degli anni '50. Il nome del linguaggio è un'abbreviazione di "LISt Processing" o "elaborazione delle liste". Dopo che McCarthy lasciò il MIT per Stanford, gli hacker del Laboratorio modificarono leggermente Lisp, creando il suo dialetto locale MACLISP, dove le prime tre lettere indicavano il progetto MAC, grazie al quale è nato il Laboratorio di IA al MIT. Sotto la direzione dell'architetto dei sistemi Richard Greenblatt, gli hacker del Laboratorio svilupparono una macchina Lisp: un computer speciale per l'esecuzione di programmi in Lisp, e anche un sistema operativo per questo computer, anch'esso scritto in Lisp.
All'inizio degli anni '80, gruppi di hacker concorrenti fondarono due aziende per la produzione e vendita di macchine Lisp. L'azienda di Greenblatt si chiamava Lisp Machines Incorporated, o semplicemente LMI. Si aspettava di farne a meno degli investimenti esterni e di creare una "società hack" puramente. Ma la maggior parte degli hacker si unì a Symbolics, una normale startup commerciale. Nel 1982, avevano già lasciato completamente il MIT.
Coloro che rimasero si potevano contare sulle dita di una mano, quindi i programmi e le macchine venivano riparati sempre meno frequentemente, o non venivano riparati affatto. E cosa ancora peggiore, secondo Stallman – nel Laboratorio iniziarono a verificarsi "cambiamenti demografici". Gli hacker, che erano già una minoranza, sparirono quasi del tutto, lasciando il Laboratorio in completo dominio di insegnanti e studenti, il cui rapporto con il PDP-10 era decisamente ostile.
Nel 1982, il Laboratorio di IA ricevette un sostituto per il suo PDP-10 di 12 anni – il DECSYSTEM 20. Le applicazioni scritte per il PDP-10 funzionavano sul nuovo computer senza problemi, poiché il DECSYSTEM 20 era, di fatto, una versione aggiornata del PDP-10, ma il sistema operativo precedente era completamente inadeguato – era necessario portare ITS sul nuovo computer, il che significava doverlo riscrivere quasi per intero. E questo in un momento in cui quasi tutti gli hacker del Laboratorio se ne erano andati, persone che avrebbero potuto occuparsene. Così, rapidamente, sul nuovo computer si impose il sistema operativo commerciale Twenex. I pochi hacker rimasti al MIT dovettero semplicemente accettarlo.
«Senza hacker che potessero occuparsi dello sviluppo e del supporto del sistema operativo, siamo condannati», dicevano i membri del corpo docente e gli studenti, «abbiamo bisogno di un sistema commerciale supportato da qualche azienda, affinché sia essa a risolvere i problemi con questo sistema». Stallman ricorda che questo argomento si rivelò un grave errore, ma in quel momento suonava convincente.
Inizialmente, gli hacker vedevano in Twenex l'ennesima incarnazione dell'autoritarismo corporativo, qualcosa da abbattere. Anche nel nome si rifletteva l'antipatia degli hacker – in realtà, il sistema si chiamava TOPS-20, indicando la sua continuità con il TOPS-10, anch'esso un sistema commerciale DEC per PDP-10. Ma architettonicamente, il TOPS-20 non aveva nulla a che fare con il TOPS-10. Era stato realizzato sulla base del sistema Tenex, sviluppato dall'azienda Bolt, Beranek and Newman per il PDP-10. Lo stesso Stallman iniziò a chiamare il sistema “Twenex”, semplicemente per non doverlo nominare TOPS-20. «Il sistema era lontano dalle soluzioni d'avanguardia, quindi non riuscivo a chiamarlo col suo nome ufficiale», ricorda Stallman, «perciò ho inserito una 'w' in 'Tenex', così da ottenere 'Twenex'». (Questo nome gioca con la parola “twenty”, cioè “venti”)
Il computer su cui operava Twenex/TOPS-20 veniva ironicamente chiamato «Oz». Il fatto è che il DECSYSTEM 20 richiedeva una piccola macchina PDP-11 per gestire il terminale. Un hacker, vedendo per la prima volta il PDP-11 collegato a questo computer, paragonò la scena a una lussuosa presentazione del Mago di Oz. «Io sono il grande e potente Oz!», proclamò. «Ma non guardate la piccola leva da cui opero!».
Eppure, nel sistema operativo del nuovo computer non c'era nulla di divertente. La sicurezza e il controllo degli accessi erano integrati in Twenex a livello base, e anche le sue utility con le applicazioni erano progettate tenendo conto della sicurezza. Le battute sprezzanti sui sistemi di sicurezza del Laboratorio si erano trasformate in una seria battaglia per il controllo del computer. Gli amministratori sostenevano che senza i sistemi di sicurezza Twenex sarebbe stata instabile e poco tollerante agli errori. Gli hacker sostenevano che stabilità e affidabilità si potevano ottenere molto più rapidamente modificando il codice sorgente del sistema. Ma nel Laboratorio c'erano così pochi hacker che nessuno li ascoltava.
Gli hacker pensarono che si potessero bypassare le restrizioni di sicurezza dando a tutti gli utenti "privilegi di controllo" – diritti elevati che consentono di fare molte delle cose vietate agli utenti normali. Ma in tal caso, qualsiasi utente poteva sottrarre i "privilegi di controllo" a un altro utente, il quale non poteva recuperarli a causa della mancanza di diritti di accesso. Perciò, gli hacker decisero di ottenere il controllo del sistema sottraendo i "privilegi di controllo" a tutti, tranne che a se stessi.
L'individuazione delle password e l'avvio del debugger durante il caricamento del sistema non portarono a nulla. Dopo il fallimento nel "colpo di Stato", Stallman inviò un messaggio a tutti i membri del Laboratorio.
"Fino ad ora gli aristocratici erano stati sconfitti, – scrisse, – ma ora hanno preso il sopravvento e il tentativo di prendere il potere non ha avuto successo". Richard firmò il messaggio: "Radio Free OZ", in modo che nessuno sospettasse fosse lui. Ottima copertura, considerando che tutti al Laboratorio sapevano dell'atteggiamento di Stallman verso i sistemi di sicurezza e delle sue derisioni sulle password. Tuttavia, il disgusto di Richard per le password era noto ben oltre i confini del MIT. Sui computer del Laboratorio, sotto l'account di Stallman, c'era quasi tutto l'ARPAnet – il precursore di Internet all'epoca. Tra questi "turisti" c'era, per esempio, Don Hopkins, un programmatore californiano, che attraverso il passaparola degli hacker scoprì che era possibile accedere al rinomato sistema ITS del MIT semplicemente inserendo le tre lettere delle iniziali di Stallman come nome utente e password.
«Sono infinitamente grato al MIT per averci permesso, a me e a molte altre persone, di utilizzare liberamente i loro computer», afferma Hopkins, «ha significato molto per tutti noi».
Questa politica «turistica» è durata molti anni, mentre il sistema ITS era attivo, e la direzione del MIT la osservava con indulgenza. Ma quando il computer Oz è diventato il principale ponte dal Laboratorio all'ARPAnet, tutto è cambiato. Stallman continuava a consentire l'accesso al suo account con un nome utente e una password noti, ma gli amministratori gli hanno chiesto di cambiare la password e di non darla più a nessuno. Richard, facendo riferimento alla sua etica, ha rifiutato di lavorare sul computer Oz.
«Quando le password hanno cominciato a comparire sui computer del Laboratorio di Intelligenza Artificiale, ho deciso di seguire la mia convinzione che non dovrebbero esistere password», ha dichiarato poi Stallman, «e poiché credevo che i computer non avessero bisogno di sistemi di sicurezza, non avrei dovuto supportare queste misure per la loro implementazione».
Il rifiuto di Stallman di inginocchiarsi di fronte alla grande e terribile macchina Oz mostrava che tra gli hacker e la dirigenza del Laboratorio cresceva la tensione. Ma questa tensione era solo un pallido riflesso del conflitto che infuriava all'interno della comunità hacker, che si era divisa in due fazioni: LMI (Lisp Machines Incorporated) e Symbolics.
Symbolics ha ricevuto molti investimenti esterni, attirando così numerosi hacker del Laboratorio. Lavoravano sul sistema della macchina Lisp sia al MIT che al di fuori. Entro la fine del 1980, l'azienda aveva assunto 14 membri del Laboratorio come consulenti per sviluppare la propria versione della macchina Lisp. Gli altri hacker, escluso Stallman, lavoravano per LMI. Richard ha deciso di non schierarsi dalla parte di nessuno e, come al solito, era da solo.
In un primo momento, gli hacker assunti da Symbolics continuavano a lavorare anche al MIT, migliorando il sistema della macchina Lisp. Usavano, come gli hacker di LMI, una licenza MIT per il loro codice. Questa richiedeva di restituire le modifiche al MIT, ma non obbligava il MIT a distribuirle. Tuttavia, nel corso del 1981, gli hacker si attenevano a un accordo tra gentiluomini, secondo il quale tutti i loro miglioramenti venivano integrati nella macchina Lisp del MIT e distribuiti a tutti gli utenti di queste macchine. Tale situazione manteneva ancora una certa stabilità nella comunità hacker.
Ma il 16 marzo 1982 – Stallman ricorda bene quel giorno, perché era il suo compleanno – il gentile accordo giunse al termine. Questo avvenne per volontà della dirigenza di Symbolics, che voleva così soffocare il proprio concorrente, la LMI, sulla quale lavoravano molto meno hacker. I dirigenti di Symbolics pensarono così: se LMI ha molte meno persone, significa che il lavoro collettivo sulla macchina Lisp è vantaggioso proprio per loro, e se interrompiamo questo scambio di sviluppi, LMI sarà distrutta. Con questo obiettivo, decisero di abusare della lettera della licenza. Invece di apportare modifiche alla versione del sistema del MIT, che LMI poteva utilizzare, iniziarono a fornire al MIT la versione di Symbolics, che potevano modificare a loro piacimento. Risultava quindi che qualsiasi test e modifica del codice della macchina Lisp al MIT fossero a beneficio esclusivo di Symbolics.
Come persona responsabile della manutenzione della macchina Lisp di laboratorio (nei primi mesi – con l'aiuto di Greenblatt), Stallman si infuriò. Gli hacker di Symbolics fornirono codice con centinaia di modifiche che causavano errori. Interpretando questo come un ultimatum, Stallman disattivò la linea di comunicazione del Laboratorio con Symbolics, giurò di non lavorare mai più su macchine di quella compagnia e annunciò la sua adesione al lavoro sulla macchina Lisp del MIT a supporto di LMI. «Ai miei occhi, il Laboratorio era un paese neutrale, come il Belgio nella Seconda Guerra Mondiale, – racconta Stallman, – e se la Germania invade il Belgio, quest'ultima dichiara guerra alla Germania e si unisce a Gran Bretagna e Francia».
Quando i dirigenti di Symbolics si accorsero che le loro ultime innovazioni apparivano ancora nella versione MIT della macchina Lisp, si arrabbiarono e iniziarono ad accusare gli hacker del Laboratorio di furto di codice. Ma Stallman non violava affatto la legge sul diritto d'autore. Studiò il codice fornito da Symbolics e formulò logiche supposizioni sulle future correzioni e miglioramenti, che iniziò a realizzare da zero per la macchina Lisp del MIT. I dirigenti di Symbolics non credevano a questo. Installarono un software spia sul terminale di Stallman, che registrava tutto ciò che Richard stava facendo. Così speravano di raccogliere prove di furto di codice e mostrarle all'amministrazione del MIT, ma anche all'inizio del 1983 non avevano quasi niente da mostrare. Tutto ciò che avevano era qualche dozzina di casi in cui il codice delle due sistemi sembrava un po' simile.
Quando gli amministratori del Laboratorio mostrarono le prove a Symbolics a Stallman, lui le respinse, dicendo che il codice era simile, ma non identico. E riportò la logica della direzione di Symbolics contro se stessa: se questi frammenti di codice simile erano tutto ciò che riuscirono a trovare, questo dimostrava solo che Stallman in realtà non aveva rubato codice. Questo fu sufficiente perché i dirigenti del Laboratorio approvassero il lavoro di Stallman, e lui lo continuò fino alla fine del 1983.
Tuttavia, Stallman cambiò il suo approccio. Per proteggere al massimo se stesso e il progetto dalle pretese di Symbolics, smise completamente di guardare i loro codici sorgente. Iniziò a scrivere codice esclusivamente basandosi sulla documentazione. Le più grandi innovazioni Richard non le aspettava da Symbolics, ma le realizzava da solo, aggiungendo poi interfacce per la compatibilità con l'implementazione di Symbolics, basandosi sulla loro documentazione. Leggeva anche il changelog del codice di Symbolics per capire quali errori corregevano e correggeva quegli errori autonomamente, in modi diversi.
Ciò che accadeva rafforzò la determinazione di Stallman. Creando analoghi delle nuove funzionalità di Symbolics, convinse i membri del Laboratorio a scegliere la versione MIT della macchina Lisp, che garantì un buon livello di testing e ricerca di bug. E la versione MIT era completamente aperta a LMI. «Volevo punire Symbolics a tutti i costi», racconta Stallman. Questa dichiarazione non solo indica che il carattere di Richard è lontano dal pacifismo, ma anche che il conflitto attorno alla macchina Lisp lo toccava profondamente.
La disperata determinazione di Stallman può essere compresa tenendo conto di come ciò che accadeva sembrasse per lui: una "distruzione" della sua "casa", ovvero della comunità hacker e della cultura del Laboratorio AI. Successivamente, Levy ha intervistato Stallman via email, e Richard ha paragonato se stesso a Ishi, l'ultimo noto rappresentante della tribù nativa Yahy, sterminata nelle guerre indiane tra il 1860 e il 1870. Questa analogia conferisce agli eventi descritti un respiro epico, quasi mitologico. Gli hacker che lavoravano per Symbolics lo vedevano in una luce leggermente diversa: la loro azienda non stava distruggendo né sterminando, ma semplicemente facendo ciò che andava fatto da tempo. Spostando la macchina Lisp nel campo del commercio, Symbolics ha cambiato l'approccio alla progettazione del software: invece di adattarli a rigidi schemi di hacker, sono diventati gli standard più morbidi e umani dei manager. E Stallman non veniva visto come un avversario combattente a difesa della giusta causa, ma come un portatore di una mentalità obsoleta.
Le faide personali hanno ulteriormente alimentato il fuoco. Ancor prima dell'arrivo di Symbolics, molti hacker evitavano Stallman, e ora la situazione era ulteriormente peggiorata. "Non mi chiamavano più per le gite a Chinatown", ricorda Richard, "Grinblat ha dato inizio all'usanza: quando vuoi andare a pranzare, eviti i colleghi e li inviti a unirsi a te, oppure invii loro un messaggio. Da qualche parte tra il 1980 e il 1981 hanno smesso di invitarmi. Non solo non mi chiamavano, ma, come mi ha poi confessato una persona, esercitavano pressioni sugli altri affinché nessuno mi parlasse dei viaggi programmati per il pranzo."
Fonte: linux.org.ru

