4
Quando si deve affrontare un argomento come questo, ci si trova di fronte al problema
che tali tematiche risultano essere fortemente impregnate di ideologia, tant'è vero che
non di rado alcuni nomi di spicco della comunità Open Source manifestano tendenze
addirittura apologetiche. Si ha, quindi, qualche difficoltà a mantenersi obiettivi e a
condurre l'analisi in maniera critica. Si cercherà, per questo, di attenersi il più possibile
ai fatti e, soprattutto, non verrà affatto affermato che il software Open Source è, a
prescindere, meglio di quello proprietario. Asserire una cosa del genere è quanto di più
nocivo si possa fare, anche volendo sostenere tale fenomeno.
L'Open Source ha provocato, in campo software, una vera e propria rivoluzione, che
può determinare, in campo IT (Information Technology), vantaggi quali la riduzione dei
costi delle licenze, la flessibilità delle soluzioni, l'indipendenza dai fornitori, una
migliore interoperabilità tra i sistemi, etc. Ogni cambiamento porta naturalmente con sé
resistenze e scetticismi, può essere fonte di minacce, ma anche di opportunità, e
certamente il primo passo che occorre compiere per affrontarlo è quello di fare uno
sforzo rivolto alla comprensione del fenomeno, alla sua analisi il più possibile accurata,
in maniera tale da poterne valutare obiettivamente sia i pregi che i difetti.
In questo lavoro si cercherà di introdurre il fenomeno dell'Open Source, quali aspetti
lo distinguono dal resto del software (quello “proprietario”) e quali siano i vantaggi e
gli svantaggi connessi al suo uso. L'argomento sarà trattato, quindi, nel primo capitolo,
in maniera generale, al fine di mettere in luce come è nato e si è sviluppato, quali sono
le differenze tra Open Source e Free Software e quali, invece, tra questi e il software
“proprietario”.
Il secondo capitolo permetterà di “entrare” all'interno della comunità Open Source per
vedere come viene svolto il lavoro di programmazione, di controllo e correzione degli
errori; la finalità di questa osservazione “tecnica” risiede nella comprensione dei
meccanismi che regolano la produzione del software, sia in relazione al modello
tradizionale che, naturalmente, a quello Open Source. Capire questi processi produttivi
consente di farsi un'idea dell'affidabilità della struttura, sia essa reale o virtuale, e quindi
di verificarne la solidità ai fini di un eventuale rapporto.
5
Se si riflette sul fatto che, soprattutto quando si parla di piccole e medie imprese, le
attività connesse all'IT sono affidate ad un'azienda specializzata, l'outsourcer, è naturale
che il partner con cui intraprendere un rapporto di outsourcing debba essere
assolutamente affidabile, e questo sotto tutti i punti di vista, per il semplice motivo che,
nel caso del software proprietario, si tratta generalmente di una scelta senza ritorno, in
quanto una volta adeguati i propri software e formato i dipendenti per il loro utilizzo, la
loro dismissione determinerà costi notevoli dal punto di vista, soprattutto,
dell'adeguamento degli utenti.
Il terzo capitolo, quello che chiuderà, almeno idealmente, questo approccio al mondo
(perché di vero e proprio mondo si tratta) del software Open Source, è relativo
all'opportunità della sua introduzione in una, non meglio identificata, impresa,
soprattutto per fornire funzionalità comuni a costi, almeno in termini di licenze, tendenti
a zero. In realtà il discorso prenderà in considerazione non soltanto i costi relativi alle
licenze, ma anche quelli da sostenere per l'implementazione del software, l'assistenza e,
infine, quelli indiretti (e difficilmente valutabili), connessi all'elemento che più di ogni
altro condiziona il successo di una applicazione: gli utenti che la utilizzano. Si cercherà
di illustrare, quindi, gli strumenti che dovrebbero essere utilizzati per valutare
opportunamente il costo effettivo del software, primo tra tutti il Total Cost of
Ownership (TCO), che in realtà è un metodo di calcolo, più che uno strumento,
introdotto originariamente dal Gartner Group per valutare l'effettivo costo degli
investimenti effettuati dalle aziende per i loro computer desktop; tutto finalizzato, come
si diceva, ad un avvicinamento maturo e responsabile alla realtà informatica specifica
per ogni impresa.
Al termine saranno inserite due appendici, la prima delle quali introdurrà alcuni dei
software Open Source più noti, in maniera tale da avere un riscontro effettivo a livello
di applicativi e da poter constatare che la maggior parte delle esigenze d'ufficio possono
essere adempiute, spesso in maniera più efficiente, mediante programmi a codice
sorgente aperto.
6
Nella seconda appendice si illustreranno, in breve, le principali caratteristiche delle
licenze maggiormente utilizzate per la distribuzione di programmi Open Source; si deve
tenere presente che, comunque, ogni licenza Open Source deve rispettare la OSD e che,
quindi, deve garantire sempre e comunque queste quattro libertà fondamentali:
z libertà di eseguire il programma, a qualunque scopo;
z libertà di studiare come esso lavora e di adattarlo alle proprie necessità;
z libertà di ridistribuirne copie a chi ne ha bisogno;
z libertà di migliorare il programma e di distribuire tali miglioramenti al pubblico, in
maniera che tutti possano beneficiarne.
7
CAPITOLO PRIMO
SOFTWARE LIBERO E SOFTWARE OPEN SOURCE
1. CARATTERISTICHE FONDAMENTALI
Il software è, com'è noto, l'elemento immateriale che permette agli elaboratori di
funzionare e agli utilizzatori di ottenere, dal loro uso, un vantaggio costituito dalla
possibilità di utilizzare una grande capacità di calcolo per la soluzione di problemi di
vario tipo.
Si parla di software con riferimento ad una vastissima gamma di strumenti che
permettono all'utente di interagire con la macchina, dal sistema operativo, costituito
fondamentalmente dai comandi basilari che governano l'elaboratore, al software
applicativo, che basandosi sulle istruzioni che gli sono fornite dal sistema operativo
permette all'utente di sfruttare il computer.
Ai giorni nostri non risulta sconosciuto, ai più, il fatto che quando si acquista un
software non si acquista un programma ma, in maniera più ristretta, la licenza d'uso di
quel programma, licenza che permette l'installazione del software in una o più
postazioni informatiche, anche se raramente si verifica questa seconda alternativa. In
genere, salvo casi particolari, la licenza del software limita la possibilità di copia dello
stesso e, soprattutto, non permette alcuna modifica sul codice sorgente del programma
1
.
Si parla per questo di software closed source.
Il free software è invece un software caratterizzato dalla possibilità di usufruire del
codice sorgente, ovvero dalla possibilità di studiarlo, modificarlo e distribuirlo; tutto ciò
1 Il codice sorgente del programma è l'insieme delle istruzioni di cui il programma stesso è composto.
Viene scritto utilizzando uno o più linguaggi di programmazione e viene compilato perché lo si possa
utilizzare su una particolare architettura informatica.
8
per il semplice motivo che software libero (perché free sta per libero e non per gratuito)
significa essenzialmente libertà per l'utilizzatore, condivisione delle informazioni,
collaborazione sia per la sua produzione che per il suo mantenimento.
Significa, infine, consapevolezza che lo sforzo di tanti per la produzione di software
differenti (e distribuiti con licenza “chiusa”), ma finalizzati a risolvere uno stesso
problema, risulta essere controproducente, determinando la dispersione di energie e di
capacità e non permettendo, a chi possieda volontà e intuizione, di intervenire per il
loro miglioramento.
Il principio “più teste lavorano meglio di una soltanto” è alla base del modo di
produzione di software libero, processo produttivo descritto da Eric Raymond, membro
stimato della comunità hacker
2
e primo studioso del fenomeno Linux, come “a Bazaar”
in contrapposizione a quello tipico del software closed source, indicato come “a
Cattedrale” [1].
Nell'ambito del free software si delineano due correnti, una è quella del Free
Software, appunto, rappresentato dalla Free Software Foundation (FSF), e l'altra è
quella del software Open Source, rappresentato dalla Open Source Initiative (OSI).
2 Secondo Steven Levy, noto giornalista statunitense, l'hacker pratica “l'esplorazione intellettuale a ruota
libera delle più alte e profonde potenzialità dei sistemi di computer, o la decisione di rendere l'accesso
alle informazioni quanto più libera e aperta possibile. Ciò implica la più sentita convinzione che nei
computer si possa ritrovare la bellezza, che la forma estetica di un programma perfetto possa liberare
mente e spirito” [2]. Il significato letterale del verbo to hack è “tagliare, fare a pezzi” mentre hack è lo
scribacchino: in sintesi l'hacker ritaglia e trascrive. E' evidente che la traduzione italiana di “pirata
informatico” non solo è peggiorativa ma distorce il significato originale.
9
2. STORIA
dal free software...
Il concetto di free software non è nuovo. Quando le università cominciarono ad
adottare i computer, essi erano strumenti per la ricerca. Il software veniva scambiato
liberamente e i programmatori venivano pagati per l'atto della programmazione e non
per il programma in sé. Solo più tardi, quando il mondo degli affari e del commercio
adottò i computer, i programmatori cominciarono a mantenersi limitando i diritti d'uso
del loro software e facendosi pagare per ogni copia. Il free software come idea politica
cominciò ad essere popolare dal 1984, grazie a Richard Stallman e alla FSF.
Stallman era un dipendente del dipartimento di Intelligenza Artificiale (Artificial
Intelligence, AI) del MIT (Massachusetts Institute of Technology) che si occupava di
migliorare il sistema operativo (chiamato ITS, Incompatible Timesharing System,
Sistema Incompatibile di Timesharing
3
) del laboratorio, sistema forgiato per il Digital
PDP-10, un grande elaboratore che uscì di produzione in quel periodo. Questo significò,
naturalmente, che la maggior parte dei programmi sviluppati per quel sistema non
avrebbero più potuto essere utilizzati, in quanto i moderni elaboratori di quell'epoca
avevano ognuno il proprio sistema operativo e per nessuno di questi era disponibile il
codice sorgente che avrebbe permesso, a chi ne avesse avuto l'esigenza e le capacità, di
compilare il proprio software per quello specifico sistema.
Vista la situazione che si andava delineando, due sole erano le alternative: Stallman
avrebbe potuto semplicemente unirsi al mondo del software proprietario, firmando
accordi di non-diffusione (ma aveva già sperimentato cosa questo significasse per chi lo
firmava, quando qualcuno rifiutò a lui e al laboratorio AI del MIT il codice sorgente del
programma di controllo di una stampante che mancava di alcune funzionalità), oppure
avrebbe potuto cercare di costruirsi personalmente il software necessario per utilizzare
il computer, partendo ovviamente dalla programmazione del sistema operativo.
3 Si parla di timesharing (condivisione di tempo) quando il processore dedica una parte del proprio
tempo ad ogni applicazione, in sequenza.
10
Così fece.
Il sistema operativo, nelle idee di Stallman, avrebbe dovuto essere compatibile con
UNIX
4
(UNiplexed Information and Computing System, Sistema Operativo Mono-
utente), in modo da renderlo portabile (ovvero adattabile alle varie architetture dei
processori) e che gli utenti UNIX potessero passare agevolmente ad esso. Va da sé che
programmare software richiede strumenti di programmazione, editor, compilatori e
tutta una serie di utility che avrebbero dovuto essere libere a loro volta per poter
costituire le fondamenta del titanico progetto di Stallman. Tale progetto venne chiamato
GNU, secondo la tradizione hacker che utilizza gli acronimi ricorsivi (in effetti GNU
significa GNU's Not UNIX) e venne varato nel 1984.
Uno dei primi software che vide la luce fu il compilatore Gcc (GNU C Compiler,
Compilatore di C GNU) poi venne GNU Emacs (Editor MACroS, Editor di Macro5), un
editor molto potente e versatile, e con esso cominciò la libera distribuzione del
software. Infatti, poiché alcuni cominciarono a volerlo usare, Stallman lo mise su un
server FTP (File Transfer Protocol, Protocollo di Trasferimento dei File) anonimo (il
che significa che non veniva richiesta alcuna autenticazione e quindi alcun dato
personale) ma, poiché a quei tempi molte persone non erano su Internet, egli iniziò a
spedire nastri col software a 150 $ l'uno e in questo modo creò la prima impresa di
distribuzione di software libero, che anticipava le compagnie che oggi distribuiscono
interi sistemi GNU basati su Linux.
La Free Software Foundation (un'organizzazione senza scopo di lucro per lo
sviluppo di software libero) fu fondata nel 1985, e il numero dei suoi membri e dei
sostenitori e utilizzatori del Free Software (come viene anche chiamato) crebbe senza
soluzione di continuità e continua a farlo a tutt'oggi.
4 UNIX è un sistema operativo creato e sviluppato a partire dal 1970 sulle ceneri di Multics (Multiplexed
Information and Computing Service, Servizio di Informazione e Calcolo Multi-utente), progetto dei
Bell Laboratory della AT&T, MIT e General Electric, prevalentemente da Ken Thompson e Dennis
Ritchie.
5 Con il termine macro, in informatica, si intende una sequenza di comandi che automatizzano alcune