CAPITOLO 1
QUADRO TEORICO
L’OPEN – SOURCE
1.1 INTRODUZIONE
In questo capitolo verranno approfonditi e analizzati i temi legati alla tecnologia e verranno
passate in rassegna la tecnologia Open – Source, il software libero ed il software
proprietario accennando anche alla loro evoluzione storica; verranno delineate le loro
caratteristiche e peculiarità oltre che caratteristiche tecniche e funzionali. L'attenzione
verrà posta anche alla sfera della proprietà intellettuale, al copyright ed al copyleft
descrivendo le modalità di accesso alla tecnologia. Intenzione di questo capitolo
introduttivo, è quella di fornire informazioni riguardo la dimensione teorica della tecnologia
che verrà posta sotto indagine in questo saggio, oltre che chiarire le questioni tecniche
riguardanti la sfera software.
5
1.2 IL SOFTWARE LIBERO E LA TECNOLOGIA OPEN
SOURCE
I termini Open Source e Software Libero e vengono usati per indicare quella che è
sostanzialmente la stessa cosa, ma da punti di vista nettamente diversi.
Il primo, nato agli inizi degli anni ottanta, indica software la cui licenza soddisfa una
definizione in quattro punti prevalentemente basata su concetti etici, quali la possibilità
di studiare, di aiutare il prossimo, di favorire la comunità; il secondo, nato alla fine
degli anni novanta si riferisce alla Open - Source Definition, ovvero una serie di 10 punti
pratici che definiscono quali criteri legali debba soddisfare una licenza per essere
considerata effettivamente libera, ovvero, con il nuovo termine, Open Source( Differenza
tra software libero e Open - Source, 2010 ). Open Source non significa semplicemente
libero accesso al codice sorgente di un programma” ( Perchè software libero è meglio di
Open - Source, 2010 ).
Open - Source (termine inglese che significa sorgente aperto), indica
un software i cui autori (più precisamente i detentori dei diritti) ne
permettono, anzi ne favoriscono il libero studio e l’apporto di
modifiche da parte di altri programmatori indipendenti. Questo è
realizzato mediante l’applicazione di apposite licenze d’uso ( Balestri,
2010 ).
“La collaborazione di più parti (in genere libera e spontanea) permette al prodotto finale di
raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di
6
lavoro. L’Open Source ha tratto grande beneficio da Internet, perché essa permette a
programmatori geograficamente distanti di coordinarsi e lavorare allo stesso progetto
( Open Source, 2010 ).
I software Open - Source attualmente più diffusi sono Firefox , OpenOffice, VLC, Gimp,7-
Zip , oltre ad un gran numero di progetti rivolti non all’utente finale ma ad altri
programmatori.
“Alla filosofia del movimento Open - Source si ispira il movimento open content (contenuti
aperti): in questo caso ad essere liberamente disponibile non è il codice sorgente di un
software ma contenuti editoriali quali testi, immagini, video e musica” (Open – Source,
2010 ).
L’Open Source è, quindi, una tipologia di software con caratteristiche ben specifiche che
possono essere schematizzate nel modo che segue:
Libera distribuzione:
La licenza non può limitare nessuna delle parti in vendita o nella fornitura di
software come componente di una distribuzione di software aggregati,
contenente provenienti da fonti diverse. La licenza non può richiedere il
pagamento di una royality o di diritti per tale rivendita.
Codice sorgente:
Il programma deve includere il codice sorgente e deve consentire la
distribuzione, sia sotto forma di codice sorgente, sia in forma compilata. Nei
casi in cui un prodotto non venga distribuito con il codice sorgente, deve
esserci la possibilità di scaricarlo via internet senza costi aggiuntivi. Il
codice sorgente deve essere la forma privilegiata in cui un programmatore
modificherà il programma
Integrità del codice sorgente dell’autore:
La licenza può imporre limitazioni sulla distribuzione del codice sorgente in
forma modificata solamente se la licenza consente la distribuzione di file
7
“patch”
( Patch, Informatica, 2010 ) insieme al codice sorgente con lo scopo
di modificare il programma durante l’esecuzione del build. La licenza deve
consentire esplicitamente la distribuzione di software realizzato a partire dal
codice sorgente modificato. La licenza può richiedere che i prodotti derivati
portino un nome o un numero di versione diverso dall’originale
Nessuna discriminazione verso singoli o gruppi:
La licenza non deve porre discriminazioni verso qualsiasi persona o gruppo
di persone
Nessuna discriminazione verso campi di applicazione:
La licenza non deve porre limitazioni sull’uso del programma in un
particolare campo di applicazione, cioè non può impedire l’uso del
programma in una azienda o per la ricerca genetica
Distribuzione della licenza:
I diritti allegati al programma devono applicarsi a tutti coloro a cui viene
ridistribuito il programma, senza necessità di applicare una licenza
supplementare per queste parti
La licenza non deve essere specifica per un prodotto:
I diritti allegati al programma non devono dipendere dal fatto che il
programma faccia parte di una distribuzione particolare. Se il programma
viene estratto da tale distribuzione e usato o distribuito nei termini della
licenza del programma, tutte le parti a cui il programma viene ridistribuito
devono avere gli stessi diritti garantiti in occasione della distribuzione
originale del software
La licenza non deve contaminare gli altri programmi:
La licenza non deve porre limitazioni su altro software che venga distribuito
insieme con il software in licenza. La licenza non deve asserire che tutti gli
altri programmi distribuiti sullo stesso supporto devono essere Open -
Source.
Conformità della licenza e della certificazione:
Qualsiasi programma che faccia uso di licenze certificate come conformi
alla Open - Source Definition può utilizzare il marchio registrato Open -
8
Source, e il codice sorgente può essere dichiarato esplicitamente di
pubblico dominio ( La definizione di Open Source, 2010 ).
Questi appena elencati rappresentano i punti cruciali individuati nel 1997 da Bruce Perens
che consentono di definire chiaramente le caratteristiche che deve avere un software per
essere definito Open Source, che tra l’altro, consente agli utenti anche molto altro come ad
esempio “la libertà di fare modifiche e usarle privatamente nel proprio lavoro o
divertimento senza doverlo dire a nessuno” ( Cavallini, Piccardi, 2007 ). Se si pubblicano
le proprie modifiche, pertanto, non si deve essere tenuti a comunicarlo a qualcuno in
particolare o in qualche modo particolare
.
La libertà di usare un programma significa libertà per qualsiasi tipo di persona od
organizzazione di utilizzarlo su qualsiasi tipo di sistema informatico, per qualsiasi tipo di
attività e senza dover successivamente comunicare con lo sviluppatore o con qualche altra
entità specifica. “Quello che conta per questa libertà è lo scopo dell'utente, non dello
sviluppatore”
( Definizione di software libero, 2010 ); in qualità di utenti è possibile eseguire
il programma per i propri scopi; se viene ridistribuito a qualcun altro, costui è libero di
eseguirlo per i propri scopi, ma non è possibile, da parte di terzi, imporre a quell’utente
altri fini.
La libertà di ridistribuire copie deve includere le forme binarie o eseguibili
del programma e anche il codice sorgente, sia per le versioni modificate
che non modificate (distribuire programmi in formato eseguibile è comodo
per avere sistemi operativi liberi facili da installare) ( Definizione di
software libero, 2010 ).
9
È legittimo anche se non c'è alcun modo di produrre una forma binaria o eseguibile (dal
momento che alcuni linguaggi non supportano questa caratteristica), ma si deve avere la
libertà di ridistribuire tali forme nel caso si trovi o si sviluppi un modo per farlo. “Affinché le
libertà di fare modifiche e di pubblicare versioni migliorate abbiano senso, si deve avere
accesso al codice sorgente del programma”
( La definizione di software libero, 2010 ).
Perciò, l'accessibilità al codice sorgente è una condizione necessaria per il software libero.
“Vi è la libertà di utilizzare una versione modificata dall’utente anziché l'originale”
( Schmitz, 2007 ). Se il programma è distribuito in un prodotto che, per scelta progettuale,
esegue le versioni modificate da una specifica persona o azienda ma si rifiuta di eseguire
quelle modificate dall’utente (tecnica nota come "tivoization" o come "secure boot" con
lista nera), allora la libertà diventa solo teorica. Ciò non è sufficiente. In altre parole, la
versione eseguibile di questi programmi non è software libero anche se il codice sorgente
da cui sono stati ottenuti è libero.
Un importante modo di modificare un programma è quello di includervi funzioni e moduli
liberi già esistenti.
Queste libertà per essere reali devono essere permanenti e irrevocabili fin
tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software
ha il potere di revocare la licenza o di sostituirla retroattivamente con una
diversa anche senza che l'utente sia causa di tale revoca, il software non
è libero ( Definizione di software libero, 2010 ).
10
Tuttavia, certi tipi di regole sul come distribuire il software libero sono
accettabili quando non entrano in conflitto con le libertà principali. Per
esempio, il copyleft, noto anche impropriamente come "permesso
d'autore", è - detto brevemente - la regola per cui, quando il programma è
ridistribuito, non è possibile aggiungere restrizioni per negare ad altre
persone le libertà principali. Questa regola non entra in conflitto con le
libertà principali, anzi le protegge ( Bianchi, 2010 ).
Inoltre, software libero non vuol dire non commerciale; un programma
libero deve essere disponibile per uso commerciale, sviluppo commerciale
e distribuzione commerciale. Lo sviluppo commerciale di software libero
non è più inusuale: questo software commerciale libero è molto
importante. Si può ottenere softwae libero pagandoloononpagandolo, ma,
a prescindere da come lo si è ottenuto, rimane sempre la libertà di copiare
e modificare il software, persino di venderne copie ( La definizione di
software libero, 2010 ).
Se una modifica costituisca o meno un miglioramento è una questione soggettiva. Se le
modifiche dell’utente fossero limitate, in sostanza, a variazioni che qualcun altro considera
miglioramenti, quelle allora non possono essere considerate appieno espressione di
libertà.
Regole su come fare un pacchetto di una versione modificata sono
accettabili, a meno che esse in pratica non blocchino la libertà di
distribuire, o usare in privato, versioni modificate. Regole del tipo se si
rende disponibile il programma in un dato modo, è necessario renderlo
disponibile anche in un altro modo possono essere pur esse accettabili,
11
con le stesse condizioni (Si noti che tale regola lascia ancora aperta la
possibilità di distribuire o meno il programma.)
( Definizione di software
libero, 2010 ).
È anche accettabile che la licenza richieda che, se viene distribuita una versione
modificata e un precedente sviluppatore ne richiede una copia, si debba inviargliene una;
oppure che richieda che gli autori delle modifiche si identifichino esplicitamente.
“Nel progetto GNU, si usa il copyleft per proteggere queste libertà legalmente per tutti. Ma
esiste anche software libero senza copyleft. Tuttavia esistono importanti ragioni per cui sia
meglio usare il copyleft, ma se un programma è software libero senza copyleft, è possibile
comunque utilizzarlo” ( Bianchi, 2010 ).
Qualche volta le leggi sul controllo delle esportazioni e le sanzioni sul
commercio possono limitare la libertà di distribuire copie di programmi
verso paesi esteri. I programmatori non hanno il potere di eliminare o di
aggirare queste restrizioni, ma quello che possono e devono fare è
rifiutare di imporle come condizioni d'uso del programma ( Cavallini,
Piccardi, 2007 )
.
In tal modo, le restrizioni non influiranno sulle attività e sulle persone al di fuori della
giurisdizione degli stati che applicano tali restrizioni. Insomma, le licenze di software libero
non possono richiedere il rispetto di qualsiasi controllo sulle esportazioni come condizione
su una qualsiasi delle libertà essenziali.
Molte licenze di software libero sono anche basate sul copyright, e ci sono
limiti a quello che si può imporre con il copyright. Se una licenza basata
sul copyright rispetta la libertà nei modi descritti sopra, è improbabile,
12
anche se non impossibile, che abbia qualche tipo di problema che non è
stato fin qui previsto ( Definizione di software libero, 2010 ).
Quando si parla di software libero, è meglio evitare di usare espressioni come regalato o
gratuito, perché esse pongono l'attenzione sul prezzo, e non sulla libertà. Infine, si noti che
criteri come quelli indicati in questa definizione di software libero richiedono un'attenta
interpretazione.
Per decidere se una determinata licenza software si qualifichi come licenza per il software
libero, deve essere basata sui criteri descritti precedentemente al fine di determinare se
corrisponde al loro spirito così come alle precise parole.“Se una licenza include restrizioni
irragionevoli, è da rifiutare”
( Bianchi, 2010 ).
1.3 I PERCHÈ DEL SOFTWARE LIBERO
Il forte sviluppo del software Open - Source in qualsiasi realtà, oltre ai benefici di libertà e
dei costi assolutamente contenuti, giustificati dal fatto che gli utenti non sono vincolati al
pagamento di licenze d'uso, è dovuto anche dal fatto che successivamente le vicende
giudiziarie che hanno coinvolto “Microsoft stessa contro la UE” ( Unione europea contro
Microsoft, 2000 ), il software libero ha visto il suo avvento anche nelle Pubbliche
Amministrazioni (P.A.) riducendo sensibilmente la distanza tra cittadini e istituzioni.
Infatti, l’uso del software libero è considerato dalla maggior parte degli addetti ai
lavori come una valida opportunità che può aiutare nell'ottimizzazione dei servizi
erogati dalla P.A. ed è considerato come un "buon esempio" da seguire per rendere
l’apparato pubblico sempre più efficiente e parsimonioso.
13