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. Sfida il dio
Free as in Freedom in italiano: Capitolo 5. Ruscello di libertà
Free as in Freedom in russo: Capitolo 6. Comunica Emacs
Il dilemma della morale assoluta
All'una e mezza di notte del 27 settembre 1983, un messaggio singolare è apparso nel gruppo Usenet net.unix-wizards, firmato rms@mit-oz. Il messaggio era intitolato brevemente e in modo estremamente allettante: «Una nuova implementazione di UNIX». Ma invece di una nuova versione pronta di Unix, il lettore trovava un appello:
In questo Giorno del Ringraziamento, inizio a scrivere un nuovo sistema operativo completamente compatibile con Unix, che si chiamerà GNU (GNU’s Not Unix). Lo distribuirò liberamente a chiunque lo desideri. Ho un grande bisogno del vostro tempo, denaro, codice, hardware – qualsiasi aiuto.
Negli occhi di un esperto sviluppatore Unix, il messaggio appariva una combinazione di idealismo e alta autostima. L'autore non si limitava a ricreare da zero un intero sistema operativo, già piuttosto avanzato e potente, ma si impegnava anche a migliorarlo. Il sistema GNU doveva includere tutti i componenti necessari, come un editor di testo, una shell, un compilatore e "una serie di altre cose". Venivano promesse anche funzionalità estremamente attraenti, assenti nei sistemi Unix esistenti: un'interfaccia grafica in linguaggio di programmazione Lisp, un file system resistente ai guasti e protocolli di rete basati sull'architettura del MIT.
"GNU sarà in grado di eseguire programmi Unix, ma non sarà identico al sistema Unix," scriveva l'autore, "faremo tutti i necessari miglioramenti che sono maturati nel corso degli anni di lavoro su vari sistemi operativi."
Prevedendo la reazione scettica al suo messaggio, l'autore lo completò con un breve passaggio autobiografico intitolato: "Chi sono?":
Sono Richard Stallman, il creatore dell'originale editor EMACS, uno dei cloni che sicuramente conosci. Lavoro presso il Laboratorio di Intelligenza Artificiale del Massachusetts Institute of Technology. Ho una vasta esperienza nello sviluppo di compilatori, editor, debugger, interpreti a riga di comando, sistemi operativi ITS e Lisp Machine. Ho implementato un supporto per schermi indipendente dal terminale in ITS, così come un file system a prova di guasto e due sistemi a finestre per le macchine Lisp.
È successo che il complesso progetto di Stallman non sia partito nel Giorno del Ringraziamento, come promesso. Solo a gennaio del 1984 Richard si immerse 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 portava con sé alcuni vantaggi. ITS, nonostante la sua potenza, aveva un punto debole: funzionava solo sul computer PDP-10 della DEC. All'inizio degli anni '80, il laboratorio abbandonò il PDP-10 e l'ITS, che i hacker paragonavano a una città vivace, si trasformò in una città fantasma. Unix, d'altro canto, era stato inizialmente progettato con l'intenzione di essere portabile da un'architettura computazionale a un'altra, quindi non correva simili rischi. Sviluppato da giovani ricercatori della AT&T, Unix sfuggì ai radar aziendali e trovò un rifugio tranquillo nel mondo non profit dei centri di ricerca. Con meno risorse rispetto ai loro colleghi hacker del MIT, gli sviluppatori di Unix adattarono il loro sistema per funzionare su una varietà di hardware misto. Principalmente 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. Nel 1983, aziende come Sun Microsystems crearono computer desktop relativamente compatti – le "workstation", paragonabili in potenza al vecchio mainframe PDP-10. Anche su queste workstation si stabilì l'onnipresente Unix.
La portabilità di Unix era garantita da un ulteriore strato di astrazione tra le applicazioni e l'hardware. Invece di scrivere programmi in codici macchina specifici per un determinato computer, come facevano gli hacker del laboratorio sviluppando programmi per ITS su PDP-10, gli sviluppatori di Unix utilizzavano il linguaggio di programmazione di alto livello C, che non era legato a una piattaforma hardware specifica. Gli sviluppatori si concentrarono sulla standardizzazione delle interfacce attraverso le quali le parti del sistema operativo interagivano tra loro. Ne risultò un sistema in cui qualsiasi componente poteva essere modificato senza influenzare le altre parti e senza compromettere il loro funzionamento. Inoltre, per trasferire il sistema da un'architettura hardware a un'altra, era sufficiente modificare solo una parte del sistema, invece di riscriverlo completamente. Gli esperti hanno riconosciuto un livello di flessibilità e comodità straordinario, e così Unix si è rapidamente diffuso nel mondo computazionale.
Stallman ha deciso di creare il sistema GNU a causa della morte di ITS, il progetto amato dagli hacker del laboratorio di IA. La scomparsa di ITS è stata un colpo per loro, incluso Richard. Se la storia della stampante laser Xerox gli ha aperto gli occhi sull'ingiustizia delle licenze proprietarie, la morte di ITS lo ha spinto da un rifiuto del software chiuso a un attivo contrasto con esso.
Le cause della morte di ITS, così come il suo codice, risalivano a tempi lontani. Nel 1980, la maggior parte degli hacker del laboratorio stava già lavorando su una macchina Lisp e sul sistema operativo per essa.
Lisp – un linguaggio di programmazione elegante, perfetto per lavorare con dati la cui struttura è sconosciuta in anticipo. È stato creato da John McCarthy, pioniere della ricerca sull'intelligenza artificiale e coniatore del termine "intelligenza artificiale", che lavorava al MIT nella seconda metà degli anni '50. Il nome del linguaggio è l'acronimo di "LISt Processing". Dopo che McCarthy lasciò il MIT per Stanford, i programmatori del laboratorio modificarono leggermente Lisp, creando il suo dialetto locale chiamato MACLISP, dove le prime 3 lettere rappresentano il progetto MAC, dal quale è nata effettivamente la Lab AI al MIT. Sotto la direzione dell'architetto di sistema Richard Greenblatt, i programmatori del laboratorio svilupparono una macchina Lisp – un computer speciale per eseguire programmi scritti in Lisp, e 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. Intendeva operare senza investimenti esterni e creare un'azienda puramente "hacker". Tuttavia, 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 contavano sulle dita di una mano, il che portava a riparazioni sempre più lunghe delle macchine e dei programmi, o a nessuna riparazione del tutto. E cosa peggiore, secondo Stallman, nei laboratori iniziarono a verificarsi "cambiamenti demografici". Gli hacker, che erano già in minoranza, scomparvero quasi completamente, lasciando il laboratorio completamente in mano a docenti e studenti, il cui atteggiamento nei confronti del PDP-10 era apertamente ostile.
Nel 1982, il Laboratorio di Intelligenza Artificiale ricevette un aggiornamento per il suo PDP-10, che aveva 12 anni: il DECSYSTEM 20. Le applicazioni scritte per il PDP-10 funzionavano sul nuovo computer senza problemi, poiché il DECSYSTEM 20 era, in sostanza, un PDP-10 aggiornato. Tuttavia, il sistema operativo precedente non era affatto adatto: era necessario portare l'ITS sul nuovo computer, il che implicava quasi una riscrittura completa. E questo avveniva in un momento in cui praticamente tutti gli hacker che avrebbero potuto occuparsene avevano lasciato il Laboratorio. Così sul nuovo computer si impadronì rapidamente il sistema operativo commerciale Twenex. Gli pochi hacker rimasti al MIT potevano solo rassegnarsi a questo.
«Senza gli hacker che si occupassero dello sviluppo e della manutenzione 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é possa risolvere i problemi di questo sistema». Stallman ricorda che questo argomento si rivelò un grave errore, ma in quel momento sembrava convincente.
Inizialmente, gli hacker vedevano in Twenex un'altra incarnazione della corporatocrazia autoritaria che desideravano distruggere. Anche nel nome traspariva il disprezzo degli hacker: la vera denominazione del sistema era TOPS-20, che indicava una continuità con TOPS-10, un'altra soluzione commerciale della DEC per il PDP-10. Tuttavia, architettonicamente, TOPS-20 non aveva nulla a che fare con TOPS-10. Fu sviluppato sulla base del sistema Tenex, progettato dall'azienda Bolt, Beranek and Newman per il PDP-10. Fu Richard Stallman a iniziare a chiamare il sistema 'Twenex', semplicemente per evitare di nominarlo TOPS-20. 'Il sistema era lontano dalle migliori soluzioni, quindi non riuscivo a chiamarlo col suo nome ufficiale,' ricorda Stallman, 'perciò ho inserito una 'w' in 'Tenex', per formare 'Twenex'. (Questo nome gioca con la parola 'twenty', ossia 'venti')
Il computer su cui operava Twenex/TOPS-20 era ironicamente soprannominato 'Oz'. Infatti, il DECSYSTEM 20 richiedeva una piccola macchina PDP-11 per il funzionamento del terminale. Un hacker, vedendo per la prima volta l'interfaccia del PDP-11 a questo computer, la paragonò a un grandioso spettacolo del Mago di Oz. 'Io sono il grande e potente Oz!' – proclamò. – 'Non guardate la melma da cui lavoro.'
Tuttavia, nel sistema operativo del nuovo computer non c'era nulla di divertente. La sicurezza e il controllo degli accessi erano integrati in Twenex a un livello fondamentale, e le sue utility con le applicazioni erano state sviluppate tenendo conto della sicurezza. Le battute condiscendenti sui sistemi di sicurezza del Laboratorio si trasformarono in una seria battaglia per il controllo del computer. Gli amministratori affermavano che senza i sistemi di sicurezza Twenex sarebbe stata instabile e vulnerabile agli errori. Gli hacker sostenevano che stabilità e affidabilità potevano essere raggiunte molto più rapidamente modificando il codice sorgente del sistema. Ma erano così pochi nel Laboratorio che nessuno li ascoltava.
Gli hacker pensavano di poter eludere le restrizioni di sicurezza concedendo a tutti gli utenti "privilegi di controllo" – diritti elevati che consentivano di fare molto di ciò che era vietato ai normalissimi utenti. Tuttavia, in questo caso, qualsiasi utente poteva revocare i "privilegi di controllo" a qualsiasi altro utente, il quale non aveva la possibilità di riottenerli essendo privo dei diritti di accesso. Pertanto, gli hacker decisero di prendere il controllo del sistema, revocando i "privilegi di controllo" a tutti tranne che a se stessi.
Il tentativo di forzare le password e di avviare il debugger durante il caricamento del sistema non portò a nulla. Dopo aver fallito 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», affinché nessuno sospettasse che fosse lui. Ottima maschera, considerando che tutti al Laboratorio sapevano del rapporto di Stallman con i sistemi di sicurezza e delle sue prese in giro riguardo alle password. Tuttavia, l'avversione di Richard per le password era nota ben al di là del MIT. Nei computer del Laboratorio, sotto il profilo di Stallman, si connetteva quasi tutta l'ARPAnet – l'antenato di internet di quei tempi. Tra questi «turisti», c'era per esempio Don Hopkins, un programmatore della California, che aveva scoperto tramite il passaparola degli hacker che per entrare nel rinomato sistema ITS del MIT bastava inserire le 3 lettere delle iniziali di Stallman come username e password.
«Sono infinitamente grato al MIT per il fatto che io e molte altre persone abbiamo potuto utilizzare liberamente i loro computer, – dice Hopkins, – questo ha significato moltissimo per tutti noi».
Questa politica "turistica" è durata a lungo, fino a quando il sistema ITS era ancora attivo, e la direzione del MIT la tollerava. Ma quando la macchina Oz è diventata il ponte principale tra il Laboratorio e ARPAnet, tutto è cambiato. Stallman continuava a fornire accesso al suo account con le stesse credenziali, ma gli amministratori gli hanno chiesto di cambiare la password e di non condividerla più con nessuno. Richard, richiamando la sua etica, ha rifiutato di lavorare sulla macchina Oz.
"Quando le password hanno iniziato a comparire sui computer del Laboratorio di Intelligenza Artificiale, ho deciso di seguire la mia convinzione che le password non dovessero esistere," ha dichiarato Stallman in seguito, "e poiché credevo che i computer non avessero bisogno di sistemi di sicurezza, non dovevo sostenere queste misure per la loro attuazione."
Il rifiuto di Stallman di inginocchiarsi di fronte alla grande e terribile macchina Oz dimostrava che cresceva la tensione tra i hacker e la direzione del Laboratorio. Tuttavia, questa tensione era solo una pallida ombra del conflitto che infuriava all'interno del gruppo degli hacker, diviso in due fazioni: LMI (Lisp Machines Incorporated) e Symbolics.
Symbolics ha ricevuto molti investimenti esterni, attirando numerosi hacker del Laboratorio. Lavorarono sul sistema della macchina Lisp sia al MIT che oltre. Entro la fine del 1980, l'azienda assunse 14 membri del Laboratorio come consulenti per sviluppare la propria versione della macchina Lisp. Gli altri hacker, a parte Stallman, lavoravano per LMI. Richard decise di non schierarsi e, come al solito, rimase da solo.
In un primo momento, gli hacker assunti da Symbolics continuarono a lavorare anche al MIT, migliorando il sistema della macchina Lisp. Utilizzarono, come gli hacker di LMI, la licenza MIT per il loro codice. Questa richiedeva il ritorno delle modifiche al MIT, ma non obbligava il MIT a diffondere tali modifiche. Tuttavia, durante il 1981, gli hacker rispettarono un accordo informale, secondo cui tutti i loro miglioramenti venivano incorporati nella macchina Lisp del MIT e distribuiti tra tutti gli utenti di queste macchine. Tale situazione conservava ancora una certa stabilità nella comunità degli hacker.
Ma il 16 marzo 1982 – Stallman ricorda bene quel giorno, perché era il suo compleanno – la gentile intesa arrivò alla sua conclusione. Questo avvenne per volontà della direzione di Symbolics, che voleva soffocare il proprio concorrente, la compagnia LMI, con un numero di hacker significativamente inferiore. I dirigenti di Symbolics giunsero alla conclusione che, essendo LMI con molti meno dipendenti, il lavoro collettivo sulla macchina Lisp fosse vantaggioso solo per loro; e se avessero interrotto questo scambio di sviluppi, LMI sarebbe stata annientata. A tal fine, decisero di abusare della lettera della licenza. Invece di apportare modifiche alla versione MTI del sistema, accessibile a LMI, iniziarono a fornire la versione Symbolics del sistema a MTI, che potevano modificare a loro piacimento. Ne conseguiva che ogni test e modifica del codice della macchina Lisp a MTI giovava solo a Symbolics.
Come persona responsabile per il supporto della macchina Lisp del laboratorio (nei primi mesi con l'aiuto di Greenblatt), Stallman andò su tutte le furie. Gli hacker di Symbolics fornirono codice con centinaia di modifiche che causavano errori. Considerando questo come un ultimatum, Stallman disattivò il collegamento del laboratorio con Symbolics, giurò di non lavorare mai più su macchine di quell'azienda e annunciò di unirsi al lavoro sulla macchina Lisp del MIT per supportare LMI. «Ai miei occhi, il laboratorio era un paese neutrale, come il Belgio durante la seconda guerra mondiale», racconta Stallman, «e se la Germania invade il Belgio, questo dichiara guerra alla Germania e si unisce a Gran Bretagna e Francia».
Quando i dirigenti di Symbolics si resero conto che le loro ultime innovazioni apparivano anche nella versione MIT della macchina Lisp, si arrabbiarono e iniziarono ad accusare gli hacker del laboratorio di furto di codice. Tuttavia, Stallman non violò affatto la legge sul copyright. Studiò il codice fornito da Symbolics e fece delle logiche supposizioni sui futuri aggiornamenti 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 faceva. Speravano così di raccogliere prove di furto di codice da mostrare all'amministrazione del MIT, ma anche all'inizio del 1983 non avevano quasi nulla da mostrare. Tutto ciò che avevano era una dozzina di casi in cui il codice dei due sistemi sembrava un po' simile.
Quando gli amministratori del Laboratorio mostrarono le prove a Stallman, lui le respinse, affermando che il codice era simile, ma non identico. E utilizzò la logica della dirigenza di Symbolics contro di loro: se questi piccoli pezzi di codice simile erano tutto ciò che erano riusciti a trovare, ciò dimostra solo che Stallman in realtà non aveva rubato il codice. Questo fu sufficiente perché i dirigenti del Laboratorio approvassero il lavoro di Stallman, e lui continuò fino alla fine del 1983.
Ma Stallman cambiò il suo approccio. Per proteggere al massimo se stesso e il progetto dalle rivendicazioni di Symbolics, smise completamente di guardare nei loro codici sorgenti. Iniziò a scrivere codice esclusivamente secondo la documentazione. Le più grandi innovazioni non le aspettava da Symbolics, ma le realizzava da solo, aggiungendo successivamente interfacce per la compatibilità con l'implementazione di Symbolics, basandosi sulla loro documentazione. Leggeva anche il registro delle modifiche del codice di Symbolics per capire quali errori avevano corretto e li riparava da solo, in modi diversi.
Ciò che è accaduto ha rafforzato la determinazione di Stallman. Creando analoghi delle nuove funzionalità di Symbolics, ha convinto i dipendenti del laboratorio a lavorare sulla versione Lisp della MIT, garantendo un buon livello di testing e di ricerca di errori. E la versione MIT era completamente aperta a LMI. "Volevo punire Symbolics a ogni costo", racconta Stallman. Questa affermazione non solo indica che il carattere di Richard è lontano dal pacifismo, ma anche che il conflitto riguardante la macchina Lisp lo ha colpito profondamente.
La determinazione disperata di Stallman può essere compresa se si tiene conto di come gli eventi apparissero a lui: una «distruzione» della sua «casa», cioè della comunità dei hacker e della cultura del Laboratorio di IA. In seguito, Levy ha intervistato Stallman via e-mail, e Richard lì ha paragonato se stesso a Ishii – l'ultimo noto rappresentante della tribù indiana Yahi, sterminata durante le guerre indiane degli anni 1860-1870. Questa analogia conferisce agli eventi descritti una dimensione epica, quasi mitologica. Gli hacker che lavoravano per Symbolics vedevano la questione in una luce diversa: la loro azienda non distruggeva né sterminava, ma faceva semplicemente ciò che doveva essere fatto da tempo. Spostando la macchina Lisp nel campo del commercio, Symbolics ha cambiato il modo di progettare i software – anziché adattarli a rigidità di pensiero degli hacker, si sono adottati standard più morbidi e umani dei manager. E per loro, Stallman non era visto come un combattente contrario alla causa giusta, ma come un portatore di un pensiero obsoleto.
Le controversie personali hanno ulteriormente complicato la situazione. Anche prima dell'arrivo di Symbolics, molti hacker stavano lontani da Stallman, e ora la situazione è peggiorata notevolmente. «Non mi hanno più invitato nei viaggi a Chinatown», ricorda Richard. «Grinblatt ha iniziato la tradizione: quando vuoi pranzare, giri tra i colleghi e li inviti a unirsi a te, oppure mandi loro un messaggio. Intorno al 1980-1981, hanno smesso di invitarmi. Non solo non mi invitavano, ma, come mi ha confessato poi una persona, esercitavano pressione sugli altri affinché nessuno mi parlasse dei piani per i pranzi.»
Fonte: linux.org.ru

