di Daniele Giacomini
Il Progetto GNU è nato nel 1984 con l’obiettivo di sviluppare il Sistema GNU. Il nome “GNU” è un acronimo ricorsivo per “GNU’s Not Unix” (GNU Non è Unix) e si pronuncia gh-nu (con la g dura, una sola sillaba senza pause tra la g e la n).
Un sistema operativo tipo Unix è costituito da un insieme di applicazioni, librerie e strumenti di sviluppo, oltre a un programma utilizzato per allocare le risorse e comunicare con l’hardware, noto come kernel.
Hurd, il kernel di GNU, non è ancora pronto per l’utilizzo ordinario, e per questo GNU viene tipicamente usato con un kernel di nome Linux. Questa combinazione è il sistema operativo GNU/Linux. GNU/Linux è usato da milioni di persone, ma molti lo chiamano erroneamente “Linux”.
Il «software libero» è un concetto semplice e intuitivo, ma il percorso attraverso cui si conquista una libertà è sempre difficile. Se oggi questo tipo di software rappresenta concretamente una scelta possibile, lo si deve all’azione di persone che con impegno hanno agito legalmente, verso il raggiungimento di questo obiettivo. Confondere invece la facoltà tecnica di copiare ciò che si vuole, soprattutto ciò che la legge vieta, non è libertà, ma dipendenza dallo stesso sistema che si crede di combattere.
La storia degli inizi del software libero è strettamente intrecciata negli anni “70 con lo sviluppo del sistema UNIX. Quest’ultimo, per parte sua, è un sistema operativo per computer inizialmente sviluppato da un gruppo di ricerca dei laboratori di AT&T e Bell Laboratories. Nello sviluppo di questo sistema figurarono sulle prime anche gli straordinari programmatori Ken Thompson e Dennis Ritchie.
In quegli anni i primi utenti di UNIX sono state le università, a cui in particolare questo sistema operativo era fornito a costo contenuto, con i sorgenti del programma stesso ma senza alcun tipo di assistenza, né era prevista alcuna garanzia. Proprio questa assenza di sostegno da parte della casa che lo aveva sviluppato originariamente, ha stimolato la cooperazione tra gli utenti competenti, in pratica tra le università.
Il maggior fermento intorno a UNIX si è concentrato presso l’università della California a Berkeley, dove a partire dal 1978 si è cominciato a distribuire una variante di questo sistema operativo, con il nome BSD, ovvero Berkeley software distribution.
Per questo software è nata una licenza d’uso che rimane il progenitore della filosofia del software libero: la licenza BSD. Per molto tempo, la variante BSD di UNIX è rimasta relegata all’ambito universitario o a quello delle aziende che avevano acquistato i diritti per utilizzare il codice sorgente dello UNIX originale. Ciò fino a quando si è sentita l’esigenza di ripulire lo Unix BSD dal codice proprietario.
Il risultato iniziale è stato 386BSD, pubblicato nel 1992 con la versione 0.1. Tuttavia, questa edizione libera dello Unix BSD non ha avuto vita facile, dal momento che da quel punto sono iniziate delle contese giudiziarie sulla proprietà di alcune porzioni di codice ritenute libere (a torto o a ragione che fosse). Dai problemi di 386_BSD che hanno causato la sua eliminazione dalla distribuzione pubblica, si sono sviluppati altri progetti indipendenti per ottenere, finalmente, un sistema BSD libero. Il primo di questi è stato nominato NetBSD, al quale si è aggiunto subito dopo FreeBSD più tardi anche OpenBSD. Tuttavia, i problemi legali non sono terminati con 386BSD: la variante denominata FreeBSD è stata «libera» solo all’inizio del 1995 con la versione 2.0.[A Brief History of FreeBSD] di Jordan K. Hubbard, marzo 1998.
Allo stato attuale, le tre varianti *BSD sono tutte riconducibili a BSD 4.4-Lite, dove le differenze più importanti riguardano le piattaforme hardware in cui possono essere installate e l’origine della distribuzione.
Nel 1985, Richard Stallman fonda la FSF, Free software foundation, con lo scopo preciso di creare e diffondere la filosofia del «software libero». Libertà intesa come la possibilità data agli utenti di distribuire e modificare il software a seconda delle proprie esigenze e di poter distribuire anche le modifiche fatte. Queste idee filosofiche si sono tradotte nella redazione di un contratto di licenza d’uso, la General Public License, studiato appositamente per proteggere il software libero in modo da non poter essere accaparrato da chi poi potrebbe impedirne la diffusione libera. Per questo motivo, oggi, il copyright di software protetto in questo modo, viene definito copyleft.
Il software libero richiede delle basi, prima di tutto il sistema operativo. In questo senso, l’intento pratico di Richard Stallman è stato quello di realizzare, con l’aiuto di volontari, un sistema operativo completo. Con questo obiettivo è nato il progetto GNU (Gnu’s not Unix), puntando inizialmente alla realizzazione di un compilatore C, quindi alla costruzione di programmi di servizio, soprattutto quelli standard di un sistema Unix tipico, lasciando per un momento successivo lo sviluppo di un kernel. Così facendo, il progetto GNU ha dato vita subito a una grande quantità di software utilizzabile sulla maggior parte delle piattaforme Unix, indirizzando implicitamente il software libero nella direzione dei
sistemi di questo tipo.
Alla fine degli anni 1980, il professor Andrew S. Tanenbaum sviluppa Minix, un sistema operativo Unix per elaboratori x86 realizzato specificamente per uso didattico. Era sufficiente acquistare il libro a cui era abbinato e si otteneva un sistema completo di sorgenti. Tuttavia, Minix aveva un problema: poteva essere usato, distribuito e modificato, solo per fini didattici. I diritti di questo sistema operativo sono stati ceduti inizialmente alla casa editrice del libro con il quale questo veniva diffuso; tuttavia, nell’anno 2000, Andrew S. Tanenbaum ha ottenuto dalla casa editrice di poter distribuire il sistema Minix con una licenza simile a quella di BSD.
LINUX
Linux nasce all’inizio degli anni 1990 come un progetto personale di studio delle funzionalità di multiprogrammazione dei microprocessori x86-32 da parte di Linus Torvalds, all’epoca uno studente all’università di Helsinki, in Finlandia. Inizialmente il lavoro di Linus Torvalds si basava su un sistema Minix, riscrivendo il kernel e adattando successivamente il compilatore e i programmi sviluppati dal progetto GNU. L’idea di Linus Torvalds era quella di realizzare «a better Minix than Minix», ovvero, voleva costruire qualcosa di meglio del sistema Minix.
Dopo molto lavoro, Linus Torvalds arriva a un sistema minimo e soprattutto autonomo da Minix. Il 5 ottobre 1991 invia il messaggio seguente al gruppo di discussione comp.os.minix
.
Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on Minix? No more all-nighters to get a nifty program working? Then this post might be just for you.
As I mentioned a month ago, I’m working on a free version of a Minix-lookalike for AT-386 computers. It has finally reached the stage where it’s even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02…but I’ve successfully run bash, gcc, gnu-make, gnu-sed, compress, etc. under it.
Linux ha coinvolto in breve tempo un numero molto grande di persone, unite dal fatto che si trattava di un progetto libero da qualunque restrizione legale al suo utilizzo, alla sua diffusione, alla possibilità di modificarlo ecc. In pratica, la fortuna di Linux rispetto a Minix, è stata quella di avere scelto subito la licenza GNU-GPL, quella che ancora oggi rappresenta la difesa ideale per il software che viene scritto perché sia a disposizione di tutti. Tuttavia, per il successo del kernel Linux è stato determinante il lavoro parallelo del progetto GNU, il quale ha dato al primo tutto quello che serve per un sistema operativo completo: GNU/Linux appunto.
DEBIAN
Nel 1993 Ian Murdock fonda il progetto Debian, con lo scopo di realizzare una distribuzione GNU/Linux libera e accurata. Successivamente, Bruce Perens stila la bozza di ciò che attualmente costituisce le «linee guida», per stabilire cosa sia da intendere «software libero» e cosa invece non rientri in questa categoria, ai fini della distribuzione stessa. Tali linee guida sono note con la sigla DFSG; successivamente, queste hanno dato origine alla definizione di Open Source.
Il progetto Debian ha curato distribuzioni GNU/Linux per le architetture più comuni e anche distribuzioni con combinazioni differenti di kernel e software applicativo.