Opensource: un'introduzione
ed un paio di riflessioni
di Roberto Antole
Premessa
Nel
numero precedente del giornalino si è parlato di Linux e della sua
contrapposizione a Windows.
Con questo articolo vogliamo introdurre alcuni concetti che riguardano
la filosofia e la cultura del mondo opensource,
del quale Linux costituisce uno dei prodotti migliori.
Un
po' di storia: gli albori dell'informatica
Tra
i primi (e pochi) sviluppatori di software vigeva un clima di
collaborazione e di aiuto reciproco: c'era, infatti, un continuo
interscambio di informazioni, aiuti e suggerimenti tra coloro che, per
primi, si trovavano a dover affrontare il problema di “far
funzionare i computer”.
Con l'andare del tempo, però, le case produttrici e le aziende
iniziarono a distribuire i programmi senza renderne disponibili i
sorgenti, scatenando le proteste di molti programmatori, i quali
sentivano questa pratica come una limitazione delle loro libertà:
non si sentivano liberi di capire come i programmi venivano realizzati,
non si sentivano liberi di migliorarli (o adattarli alle loro personali
esigenze), non si sentivano liberi di capire se, eventualmente, i
programmi in questione contenessero del codice scritto da loro.
La
Free Software Foundation
Nel
1984 il pensiero di questi programmatori portò alla fondazione della Free
Software Foundation (FSF)
ad opera del giovane sviluppatore Richard
M. Stallman: il fine ultimo di questa organizzazione senza scopo di
lucro era, ed è tuttora, quello di realizzare un sistema completo e
tecnicamente valido, il cui utilizzo garantisca il rispetto delle libertà
degli sviluppatori e degli utilizzatori.
Liberi
da chi? Liberi da che cosa?
A
tale proposito, Stallman scrisse la definizione del free software (software
libero), in modo da fissare i canoni che i programmatori dovevano
rispettare per tutelare i propri diritti e quelli degli utenti.
Facciamo subito una precisazione importante: in inglese la parola free significa sia libero
che gratuito: quando si parla
di free software si intende
software libero, non gratuito: ci può essere del software libero a
pagamento, ma ci può
essere anche del software non libero gratuito.
Secondo Stallman, un programma è libero quando:
-è liberamente eseguibile;
-è liberamente modificabile secondo i propri scopi;
-è liberamente distribuibile (si può copiare liberamente);
-è liberamente distribuibile dopo averlo modificato (si possono rendere
disponibili le proprie modifiche).
Condizione necessaria per rispettare queste regole è quella di
distribuire i sorgenti insieme ai propri programmi perché solo
attraverso essi è possibile conoscere appieno e modificare i programmi.
Rilasciare i sorgenti, inoltre, continua a garantire la diffusione delle
conoscenze e la collaborazione tra i vari sviluppatori.
Il
Progetto GNU
Per
realizzare questo sistema libero la FSF varò il Progetto GNU, il cui scopo era quello di realizzare un sistema
operativo simile ad Unix, ma le cui componenti fossero, tutte, software
libero.
Per garantire ciò venne creata la licenza d'uso GPL
(General Public License): una
licenza d'uso è un documento che accompagna un programma e che
specifica come tale programma può essere utilizzato e distribuito.
Secondo la GPL un programma deve essere utilizzato rispettando i
principi del free software.
Un aspetto fondamentale della GPL è che tale licenza impone che
eventuali modifiche apportate ai programmi vengano ridistribuite ancora
sotto lo stesso tipo di licenza, garantendo, in questo modo, il continuo
rispetto dei principi del software libero.
Linux
Inizialmente
il Progetto GNU produsse molte applicazioni (editor, compilatori, ...),
ma nessuno riuscì a creare un kernel (il cuore del sistema operativo)
efficiente ed adeguato per far funzionare i programmi realizzati. Si
aveva a disposizione del software libero, ma per utilizzarlo si era
costretti a ricorrere all'uso di sistemi operativo non liberi,
lasciando, così, incompiuto il sogno della FSF...
Questo vuoto venne colmato nel 1991 da Linus
Torvalds, uno studente finlandese che realizzò un kernel e decise
di distribuirlo sotto la licenza GPL.
Grazie alla collaborazione di moltissimo sviluppatori sparsi in tutto il
mondo, il lavoro di Torvalds e del Progetto GNU sono diventati quel
sistema operativo completo, efficiente e molto apprezzato che noi oggi
chiamiamo Linux...
E
opensource, allora, cosa significa?
Nel
1998 nacque l'associazione OpenSource
Initiative (OSI) con lo
scopo di promuovere e
diffondere il software libero negli ambienti commerciali. Il messaggio
lanciato dalla FSF, infatti, era visto con diffidenza dalle aziende e
dai produttori, perché carico di contenuti ideologici e filosofici.
Il lavoro dell'OSI, pur difendendo gli stessi principi, è più attento
agli aspetti pratici dell'utilizzo e dello sviluppo di prodotti liberi.
Ecco perché, oggi, si sente parlare di opensource
piuttosto che di free software: si parla sempre della stessa cosa, ma il
termine opensource (sorgente aperto) pone più attenzione sulla
condivisione delle conoscenze e sulla trasparenza dei programmi (ed
elimina l'ambiguità derivata del termine free).
Linux
vs Windows (OpenSource vs Monopolio)
In
questi anni, Linux è stato più volte contrapposto al monopolio dei
prodotti Microsoft, non solo da un punto di vista tecnico, ma anche,
potremmo dire, da un punto di vista concettuale. Più in generale,
possiamo dire che abbiamo assistito, e stiamo assistendo, ad un
confronto tra due modi differenti di vedere e concepire la pratica della
programmazione e l'utilizzo del computer.
Tecnicamente
parlando
Tecnicamente
parlando, le varie distribuzioni opensource ed i sistemi Windows hanno
pregi e difetti che possono essere valutati e quantificati solo
rapportandoli con l'utilizzo per il quale vengono impiegati: un prodotto
può essere più o meno adatto a risolvere particolari problemi, può
necessitare di formazione specifica, può essere più o meno adattabile
alle particolari esigenze, può essere più o meno supportato, può
avere un costo più o meno alto, ... Tutti questi sono parametri che
devono essere presi in considerazione quando si deve scegliere quali
prodotti utilizzare (ammesso, naturalmente, che il mercato proponga una
scelta).
Ma, da un punto di vista strettamente tecnico, a priori non sarebbe
corretto bandire tutto il software proprietario (quello, cioè, che
viene distribuito, come Windows, senza il codice sorgente) perché
l'essere proprietario non è una discriminante tecnica
sufficiente per valutare un prodotto. Se un programma proprietario
funzionasse decisamente meglio di uno opensource? E se esistesse un solo
programma proprietario in grado di svolgere dei particolari compiti? Da
un punto di vista tecnico, quale scelta fareste?
Concettualmente
parlando
Concettualmente
parlando, invece, i pregi del modello opensource sono decisamente
evidenti e sostanziali:
-
il
codice aperto favorisce la trasparenza: possiamo controllare, in ogni
momento, che un programma non esegua istruzioni a nostra insaputa
(andando, ad esempio, a violare la nostra privacy);
-
mettere
a disposizione il codice ne incrementa la sicurezza perché si ha a
disposizione un team di centinaia di sviluppatori che possono testarlo e
migliorarlo;
-
l'opensource
favorisce la diffusione degli standard, necessari per far collaborare
proficuamente, tra loro, gli sviluppatori, e gli standard sono fissati a
livello internazionale per venire incontro alle esigenze degli utenti e
per favorire lo sviluppo tecnologico;
-
il
modello opensource garantisce e favorisce anche il diritto e la libertà
di informazione;
-
il
software opensource stimola la criticità degli utenti perché lo
possono esaminare e valutare;
-
il
modello opensource si contrappone decisamente ad atteggiamenti
monopolistici il cui scopo principale è quello di ottenere profitto e
non l'effettiva soddisfazione delle richieste del cliente.
(Questa
lista non ha alcuna pretesa di essere completa ed esaustiva.)
Uno
spunto di riflessione
Nonostante
quanto abbiamo appena detto riguardo al modello opensource, visto che
siamo partiti parlando di libertà, chiunque dovrebbe essere lasciato
libero di utilizzare del software proprietario; chiunque dovrebbe, in
senso più generale, essere lasciato libero di scegliere quale soluzione
adottare.
Ma, si chiedono gli esponenti del mondo opensource, se un'azienda può
fare delle scelte particolari, uno Stato
non dovrebbe, invece, avere come fine quello di garantire le libertà ed
i diritti dei cittadini? E se la Pubblica
Amministrazione utilizza (o impone l'utilizzo di) software
proprietario, le nostre libertà sono veramente garantite? Se, per
esempio, per accedere ad un sito di un ministero sono costretto ad
utilizzare un particolare browser, è giusto che io sia obbligato ad
acquistare un prodotto che, al di là del costo, io non ritengo valido?
È giusto che sia lo Stato ad impormelo? Se io uso un altro browser non
vengo, in questo modo, discriminato proprio da chi dovrebbe garantirmi
le libertà più semplici e fondamentali? E così facendo, lo Stato non
favorisce, di fatto, una particolare azienda, dimenticandosi di tutelare
la libera concorrenza? Applicare il modello opensource potrebbe essere
la soluzione?
Molti Stati nel mondo si stanno interrogando a tale proposito e anche in
Italia qualcosa si sta muovendo: in seguito alla presentazione di una
proposta di legge, il Ministero per l'Innovazione e le Tecnologie ha
istituito una commissione per studiare e valutare le tecnologie a
sorgente aperto in vista di un loro possibile futuro utilizzo
nell'ambito della Pubblica Amministrazione. I lavori di questa
commissione dovrebbero terminare a breve: aspettiamone i risultati
incrociando le dita...
Un
altro spunto di riflessione: il ruolo della scuola
Qualcuno
ha iniziato anche a riflettere sul mondo della scuola e su come esso
dovrebbe relazionarsi con l'opensource.
Il fine della scuola è quello di educare, di insegnare delle funzioni,
non delle funzionalità; la scuola dovrebbe insegnare a scrivere un
documento di testo, non ad utilizzare un determinato programma; gli
studenti non dovrebbero diventare esperti utilizzatori di uno specifico
sistema operativo, ma dovrebbero imparare i concetti che governano la
moderna informatica.
È
vero tutto questo? E la scuola italiana, oggi, come si sta comportando?
E se non si stesse comportando bene, cosa si potrebbe fare? Fare
riferimento al modello opensource potrebbe essere una soluzione sia da
un punto di vista tecnico che di formazione di professionisti (e di
cittadini)? Oppure potrebbe essere un punto di partenza per iniziare un
processo di miglioramento?
Link
utili per chi vuole approfondire
Il
sito ufficiale della Free Software Foundation e del Progetto GNU:
www.fsf.org
Il
sito della OpenSource Initiative:
www.opensource.org
Il
sito ufficiale di Linux:
www.linux.org
Il
sito italiano di Linux (dove potete trovare molti documenti tradotti)::
www.linux.it
Un
quotidiano online di notizie sul mondo dell'informatica, con una sezione
dedicata al mondo opensource:
www.punto-informatico.it
Un
esempio di utilizzo di Linux nella didattica:
www.linuxdidattica.org
L'Osservatorio
Tecnologico per la Scuola del Ministero dell'Istruzione, dell'Università
e della Ricerca:
www.osservatoriotecnologico.it
Il
comunicato di istituzione della commissione al Ministero per
l'Innovazione e le Tecnologie:
http://www.mininnovazione.it/ita/comunicati/2002_11_08.shtml