|
Dovrebbe essere dunque chiaro che prima che
nascesse Linux (il cui sviluppo risale agli anni novanta) esisteva
già moltissimo software per il sistema operativo Unix e
compatibili, disponibile gratuitamente ed usato normalmente anche
in sistemi Unix commerciali. L'uso di questo software comunque era
riservato a chi possedeva macchine in grado di far funzionare uno
Unix, che girava solo su macchine costosissime. Per questo motivo
per molto tempo l'uso del free software è stato,
paradossalmente, molto costoso.
Nei primi anni novanta, quello che ancora non
esisteva ancora era un kernel per una piattaforma a basso costo
come i PC. Il kernel è quello strato software che consente
ai programmi scritti per Unix di girare, previa ricompilazione.
Gran parte dei programmi per un qualsiasi Unix sono facilmente
ricompilabile su qualunque altro sistema che implementi le stesse
chiamate di sistema, che sono un insieme contenuto, semplice e,
negli anni, ormai standardizzato. Per questo motivo esistono,
letteralmente, centinaia di implementazioni di Unix. I programmi
GNU in particolare sono molto portabili tra i vari Unix e sono in
grado di riconoscere automaticamente in fase di configurazione le
caratteristiche del sistema su cui si sta cercando di compilarli.
Oggi sono disponibili vari compilatori in grado di compilare
moltissimi programmi per Unix anche su NT.
Quando Linux iniziò il suo lavoro la
FSF non ne aveva ancora prodotto un kernel, sebbene attualmente ne
sta sviluppando uno. Tuttavia i PC ormai erano abbastanza potenti
da permettere ad un sistema operativo relativamente evoluto come
Unix di girare. I tempi erano ormai maturi, e in quel periodo
diversi si stavano cimentando nello sviluppo di una versione di
Unix per PC.
Linus Torvalds, studente
all'università di Helsinky in Finlandia, iniziò il
suo progetto scrivendo un driver di terminale per il sistema
operativo Minix. Il Minix era un piccolo e limitato Unix sviluppato
dal professore olandese Andrew Tanenbaum a corredo di un libro sui
sistemi operativi. Si trattava di uno Unix molto piccolo e limitato
per i PC XT con processore 8088 (!). Chi scrive, ha studiato
all'università l'intero codice del kernel.
Sfortunatamente, date le sue limitazioni, il
Minix era in grado di ricompilare solo qualcuno (non molti per la
verità) dei programmi per lo Unix "vero" esistenti. Dopo
aver sviluppato il suo terminale, Linus decise di tentate lo
sviluppo di un "Minix migliore di Minix", che girasse sui
processori 386 superando le molte limitazioni di Minix. Linus
decise inoltre di distribuire liberamente in sorgente il suo
progetto, applicandovi la GPL, a differenza di Minix che richiedeva
l'acquisto del libro. Il programma fu chiamato Linux dal nome che
fu dato alla directory del sorgente per l'ftp. Quando Linus
annunciò al mondo il suo progetto, trovò molta gente
entusiasta disposta a collaborare attivamente allo sviluppo di
Linux. Presto si formò un team che collaborando via
Internet, lo arricchirono sempre di più fino a renderlo in
grado di ricompilare molti programmi, diventando utile in pratica.
Il meccanismo era innestato. Finalmente era disponibile un kernel
gratuito in grado di far girare gran parte del software gratuito
per Unix già esistente sulle piattaforme a basso costo, i
PC. Comunque, Linux è un sistema a 32 bit che fa uso delle
caratteristiche evolute del 386, come la memoria virtuale. Oggi
Linux è abbastanza potente e completo da consentire la
ricompilazione della quasi totalità dei programmi per Unix,
è diventata una delle piattaforme Unix più importanti
essendo sicuramente una delle più diffuse. Linux è
supportato dai suoi stessi utenti che ne curano lo sviluppo.
Chiunque abbia abbastanza competenza da scrivere un device driver
per un nuovo hardware può contribuire alla causa inviando il
proprio codice. È così che oggi Linux include
supporto ad una enorme quantità di periferiche e device
driver. Inoltre il mondo del free software ha incoraggiato molti
programmatori a sviluppare nuovi programmi espressamente per
Linux.
|