|
Tratto da Richard Stallman
"Sviluppare un intero sistema è un progetto considerevole. Per
raggiungere l'obiettivo decisi di adattare e usare parti di software
libero tutte le volte
che
fosse possibile. Per esempio, decisi fin dall'inizio di usare TeX come
il principale programma di formattazione di testo; qualche anno più
tardi, decisi di usare l'X Window System piuttosto che scrivere un
altro sistema a finestre per GNU. A causa di questa decisione, il
sistema GNU e la raccolta di tutto il software GNU non sono la stessa
cosa. Il sistema GNU comprende programmi che non sono GNU, sviluppati
da altre persone o gruppi di progetto per i propri scopi, ma che
possiamo usare in quanto software libero.
Poco dopo aver iniziato il progetto GNU, venni a sapere del Free
University Compiler Kit, noto anche come VUCK (la parola olandese che
sta per "free" inizia con la V). Era un compilatore progettato per
trattare più linguaggi, fra cui C e Pascal, e per generare codice
binario per diverse architetture. Scrissi al suo autore chiedendo se
GNU avesse potuto usarlo. Rispose in modo canzonatorio, dicendo che
l'università era sì libera, ma non il compilatore. Decisi allora che
il mio primo programma per il progetto GNU sarebbe stato un
compilatore multilinguaggio e multipiattaforma.
Sperando
di evitare di dover scrivere da me l'intero compilatore, ottenni il
codice sorgente del Pastel, un compilatore multipiattaforma sviluppato
ai Laboratori Lawrence Livermore. Il linguaggio supportato da Pastel,
in cui il Pastel stesso era scritto, era una versione estesa del
Pascal, pensata come linguaggio di programmazione di sistemi. Io vi
aggiunsi un frontend per il C, e cominciai il porting per il
processore Motorola 68000, ma fui costretto a rinunciare quando
scoprii che il compilatore richiedeva diversi megabyte di memoria
sullo stack, mentre il sistema Unix disponibile per il processore
68000 ne permetteva solo 64K.
Mi resi conto allora che il compilatore Pastel interpretava tutto il
file di ingresso creandone un albero sintattico, convertiva questo in
una catena di "istruzioni", e quindi generava l'intero file di uscita
senza mai liberare memoria. A questo punto, conclusi che avrei dovuto
scrivere un nuovo compilatore da zero. Quel nuovo compilatore è ora
noto come Gcc; non utilizza niente del compilatore Pastel, ma riuscii
ad adattare e riutilizzare il frontend per il C che avevo scritto.
Questo però avvenne qualche anno dopo; prima, lavorai su GNU Emacs".
GNU Emacs
"Cominciai a lavorare su GNU Emacs nel settembre 1984, e all'inizio
del 1985 cominciava ad essere utilizzabile. Così potei iniziare ad
usare sistemi Unix per scrivere; fino ad allora, avevo scritto sempre
su altri tipi di macchine, non avendo nessun interesse ad imparare
"vi" né "ed".
A questo punto alcuni cominciarono a voler usare GNU Emacs, il c he
pose il problema di come distribuirlo. Naturalmente lo misi sul server
ftp anonimo del computer che usavo al MIT (questo computer,
prep.ai.mit.edu, divenne così il sito ftp primario di distribuzione di
GNU; quando alcuni anni dopo andò fuori servizio, trasferimmo il nome
sul nostro nuovo ftp server). Ma allora molte delle persone
interessate non erano su Internet e non potevano ottenere una copia
via ftp, così mi si pose il problema di cosa dir loro.
Avrei potuto dire: «trova un amico che è in rete disposto a farti una
copia». Oppure avrei potuto fare quel che feci con l'originario Emacs
su PDP-10, e cioè dir loro: «spediscimi una busta affrancata ed un
nastro, ed io te lo rispedisco con sopra Emacs». Ma ero senza lavoro,
e cercavo un modo di far soldi con il software libero. E così feci
sapere che avrei spedito un nastro a chi lo voleva per 150 dollari. In
questo modo, creai un'impresa di distribuzione di software libero, che
anticipava le compagnie che oggi distribuiscono interi sistemi GNU
basati su Linux".
|