IL SOFTWARE LIBERO e la sua filosofia A cura di: Francesco Murer 26 Giugno 2004 Autore: Francesco Murer Ultima modifica: 24/06/2004 La copia letterale ed integrale e la distribuzione sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta. Questo documento è scaricabile presso http://www.webalice.it/francesco.murer
Assaggiando un piatto saporito preparato da un amico, chi è pratico di cucina, ma anche chi non lo è, può chiedere all'amico la ricetta e generalmente l'amico non rifiuta di fornirgliene una copia. In alcuni casi, però, la ricetta viene tenuta segreta per restare gli unici in grado di preparare correttamente quella pietanza. Nel caso della Coca-Cola si possono conoscere gli ingredienti (solo perché la legge lo impone), non il metodo di preparazione, che è segreto ed appartiene alla Coca- Cola Company. Software libero e software proprietario sono paragonabili rispettivamente alla ricetta diffondibile ed a quella segreta. Il software può essere diviso in alcune categorie: il software libero è caratterizzato dalla libertà di usarlo, copiarlo e distribuirlo e dalla possibilità di averne il codice sorgente. Più avanti si darà una più precisa definizione di questa categoria. il software open source offre la possibilità di avere il codice sorgente, ma può imporre restrizioni sull'uso, la copia e la distribuzione. il software proprietario è protetto da vincoli legali che ne limitano le condizioni di uso e di solito ne vietano la copia o la distribuzione. Il codice sorgente è proprietà esclusiva del produttore. Quante volte ci è capitato di copiare software? Quante di quelle copie erano legali? Il software proprietario non consente la libera copia e distribuzione. Così, quando nasce l'interrogativo: aiutare chi ha bisogno del programma oppure rispettare i vincoli con cui è stato distribuito il software tenendolo esclusivamente per sé? Il software, bene virtuale, si presta facilmente alla copiatura, grazie allo sviluppo ed alla diffusione di strumenti come i masterizzatori e la rete internet. Ecco perché si ritiene che il software deve essere libero. Il software libero può definirsi tale se rispetta le quattro libertà: 0) Libertà di eseguire il programma, per qualsiasi scopo. 1) Libertà di studiare come funziona il programma ed adattarlo alle proprie necessità. L'accesso al codice sorgente ne è un prerequisito. 2) Libertà di redistribuire copie in modo da aiutare il prossimo. 3) Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice sorgente ne è un prerequisito. Il software può essere distribuito in due forme: il codice sorgente ed il codice binario. Il primo è una forma leggibile per un essere umano, poiché è composto dalle istruzioni scritte dal programmatore. Il secondo, invece, è il programma compilato, cioè trasformato in un linguaggio comprensibile alla macchina, ma non ad un essere umano. Il software proprietario viene distribuito solo nella forma di codice binario. Godere di queste libertà significa anche non dover chiedere o pagare alcun permesso per esse. Confrontando questo modello con quello del software prodotto dalle più grandi aziende del settore, si nota l'incompatibilità: esse, infatti, sviluppano software a scopo di lucro e quindi ritengono doveroso proteggere il loro lavoro ed i loro profitti.come si può biasimarle? Chi sviluppa software può giustificare la proprietà per due motivi: il legame affettivo e l'interesse economico. Spesso, però, il primo magicamente scompare davanti ad un pingue contratto, riconducendo al secondo motivo. L'interesse economico viene giustificato con il fatto che nessuno svilupperebbe software se non fosse pagato abbastanza per farlo. Ciò è falso perché presuppone che senza il software proprietario non esisterebbe alcun software. La realtà dei fatti, invece, dimostra proprio il contrario! Si può ribattere che solo a pagamento si possono sviluppare programmi di qualità. Ma vale di più la
coesione sociale ed il progresso collettivo oppure la qualità del software? Senza dubbio le prime, comunque anche il software libero offre prodotti di alta qualità. Cosa accadrebbe se esistesse solo il software proprietario? Probabilmente meno persone userebbero i programmi, nessuno potrebbe adattarli alle proprie esigenze e gli altri sviluppatori dovrebbero ripartire da zero per crearne analoghi (con grande spreco di risorse e di tempo). Il prezzo finale di un prodotto è teorizzato essere pari, in un mercato concorrenziale ideale, al prezzo marginale dello stesso, intendendosi per questo il costo di produzione a regime, tolti gli investimenti iniziali. La copia di un programma ha un costo marginale quasi nullo (e questo piccolo costo può essere pagato dall'utente facendo la copia con i propri mezzi). Quindi, in un mercato libero, esso avrebbe praticamente prezzo zero. Il costo della licenza costituisce un notevole disincentivo all'uso del programma. Se l'acquisto della licenza costituisce un trasferimento di beni tra le due parti e quindi complessivamente la somma è zero, il non-acquisto costituisce una perdita senza beneficio e quindi il bilancio è passivo. Unendo questi due bilanci si vede come il risultato sia negativo. Si può obiettare che il software libero uccida la produttività: dipende da cosa si intende per produttività. Se con tale termine si intende lo sviluppo del software nel suo complesso, allora con il software libero si può avere un incremento. I programmatori, infatti, non devono partire da zero ogni volta, ma possono studiare i programmi esistenti e poi creare il software conoscendo pregi e difetti dei prodotti precedenti. Inoltre più persone potranno usare il programma e quindi il lavoro di sviluppo soddisferà più utenti. A questo punto è da domandarsi di cosa vivrà il programmatore. Si potrà mantiene lavorando come insegnante oppure collaborando ad altri progetti. Ci sono aziende che guadagnano distribuendo raccolte di software libero via posta. Altre forniscono servizi di personalizzazione, assistenza e manutenzione per il software libero. Guadagnare grazie al software libero è possibile e molte aziende esistenti lo dimostrano. Se si prova riconoscenza per chi sviluppa software libero, sarebbe giusto inoltre fare libere donazioni alle società che lo sostengono. Bisogna sfatare un malinteso riguardo il software libero: il software libero è una questione di libertà, non di prezzo. In inglese free software si presta ad una doppia interpretazione: free significa libero ma anche gratuito. Questo crea il malinteso che il software libero debba essere gratuito, ma ciò non è necessariamente vero. Vero è che bisogna offrire le quattro libertà, ma nessuno vieta di chiedere un compenso per la distribuzione del software. Si può chiedere il rimborso del costo del supporto (cd-rom, nastri magnetici, etc.) ed anche di più, se chi vuole il software libero è disposto a pagare. Per chiarire cosa si intende con free software, Stallman distingue tra free beer e free speech, intendendo con quest'ultimo il significato da dare al free software. All'inizio della storia dell'informatica esistiva solo il software libero, anche se nessuno lo chiamava così poiché quello era l'unico modo di esistere del software. Ciò era dovuto ai luoghi in cui veniva creato e sviluppato, cioè l'ambiente accademico, improntato alla ricerca in cooperazione e in condivisione dei risultati. In questo ambiente crebbe e si formò Richard M. Stallman: il lavoro presso l'artificial Intelligence Laboratory al MIT lo portò in contatto con la cultura hacker. Del termine hacker è diffusa una sbagliata concezione: secondo la corretta definizione riportata nel Jargon File, con esso bisogna intendere una persona a cui piace esplorare un programma fino nei minimi dettagli per comprenderne tutti meccanismi. Con cracker, invece, si indica chi scardina la sicurezza di un sistema. Stallman aderì completamente all'etica hacker, fino a diventarne più di un rappresentante: un leader. Suoi, infatti, sono il progetto GNU (acronimo ricorsivo di GNU's Not Unix ) e la creazione della Free Software Foundation. Alcuni episodi spiegano perché Stallman si confermò nell'etica hacker. Uno dei più famosi riguarda la stampante Xerox che fu regalata al laboratorio dove Stallman lavorava. Questa macchina era
afflitta da problemi di inceppamento della carta e, poiché si trovava in una stanza ad essa dedicata, talvolta chi si recava a recuperare le stampe trovava solo pochi fogli pronti. Con il precedente modello la questione era stata risolta creando un programma che notificasse agli utenti il problema ogniqualvolta esso si presentasse. Intenzionato a ripetere la cosa, Stallman si stupì dell'assenza del codice sorgente. Pensando ad un errore, si rivolse a Xerox per averlo, ma la risposta che ricevette fu un secco no. Nonostante egli si offrisse di correggere il difetto gratuitamente, non gli fu possibile far nulla, poiché Xerox temeva che la concorrenza potesse copiare il suo prodotto. Il software proprietario iniziò a diffondersi durante la seconda metà degli anni '70 e molti hacker abbandonarono il lavoro presso le università per essere assunti come programmatori a tempo pieno dalle società che commerciavano software. Il modello sostenuto da Stallman sembrava dissolversi, quando egli decise che avrebbe creato un sistema operativo completamente libero. Questo progetto, noto come GNU, ebbe inizio nel 1984 e si proponeva di creare una versione di Unix, sistema già esistente, addirittura migliorata con il contributo di tutti coloro che avrebbero voluto partecipare. Lo sviluppo richiese molto tempo a causa delle difficoltà incontrate. Tuttavia all'inizio degli anni '90 il lavoro era stato quasi completato. L'unica parte non ancora conclusa era il kernel, il cuore del sistema operativo. Fu a questo punto che un avvenimento cambiò la situazione: Linus Torvalds, studente all'università di Helsinki, aveva realizzato un sistema operativo per potersi collegare da casa al computer dell'università. Tale sistema fu chiamato Linux, per egocentrismo del suo creatore e perché tradizionalmente i nomi di sistemi di tipo Unix terminano in x. L'unione con il sistema GNU diede vita a al sistema GNU/Linux, che oggigiorno rappresenta la forma più diffusa di software libero in circolazione. Il diritto d'autore copre le opere dell'ingegno caratterizzate da creatività ed originalità. Anche il software è protetto da esso e, nel caso del software proprietario, viene usato per garantire la proprietà. Il software libero distribiuto sotto GNU GPL, invece, sfrutta il diritto d'autore per garantire le libertà ad utenti e sviluppatori. Per indicare questo rovesciamento di diritti, Stallman usa il termine Copyleft All right reversed, compiendo un gioco di parole. Uno degli strumenti più potenti usato dalle aziende del software proprietario per tutelarsi è la licenza. Avete mai letto la licenza prima di installare ed usare il relativo software? Io credo che pochissimi lo abbiano fatto. La licenza di solito compare durante l'installazione e chiede di accettare quanto affermato in essa per poter usare il prodotto. Per esperienza personale so che si è più attenti all'installazione che alla lettura di quel lungo testo, quindi si clicca su Si e si procede oltre, senza sapere quali condizioni sono appena state accettate. Questo atteggiamento, oltre che sbagliato, è dannoso per l'utente, poiché egli non conosce i vincoli a cui si è appena legato. Anche il software libero viene distribuito con una licenza, che deve accompagnarlo sempre quando viene redistribuito; la più usata è la GNU General Public License (GPL). Tale licenza non richiede di essere accettata dall'utente a meno che egli non intenda copiare, modificare o redistribuire il software. Confrontando questa licenza con una delle licenze più diffuse, cioè la Microsoft End User License Agreement (EULA) di Windows XP Professional, si possono osservare alcune differenze ed alcuni punti in comune. La prima differenza consiste nella proprietà del software: ciò che si paga per il prodotto Microsoft è la licenza d'uso, poiché la proprietà del software installato sul computer resta di Microsoft, la quale può bloccarne l'uso, qualora lo decidesse, in qualsiasi momento. La GPL, invece, non stabilisce nessuna proprietà e, riguardo al prezzo, impone che non si faccia pagare alcun prezzo per la licenza d'uso; come precedentemente detto, si può richiedere un prezzo per la copia e la distribuzione del software e la GPL non pone limiti all'entità di questo. La seconda differenza riguarda le libertà concesse all'utente: come si può immaginare in questo le
due licenze sono ad estremi opposti. La EULA Microsoft pone molti vincoli all'uso del software: ovviamente non offre le quattro libertà (vietando esplicitamente le libertà 1, 2 e 3) e poi pone una serie di altre restrizioni sulle condizioni d'uso, come il numero massimo di macchine su cui il software può essere installato (una sola), il numero massimo di CPU del computer su cui il software viene eseguito (non più di due) ed il numero massimo di computer a cui la macchina può essere collegata in una rete locale (10). Al contrario la GPL non pone alcuna restrizione, rispettando le quattro libertà. E' vero, però, che impone anche degli obblighi allo scopo di conservare le libertà: chi ridistribuisce il software, originale o modificato, è tenuto a farlo solo sotto licenza GPL e senza richiedere alcun prezzo per la licenza d'uso, con l'obbligo quindi di rendere i sorgenti liberamente disponibili. Il testo della licenza deve essere presente in ciascuna copia. La EULA Microsoft si caratterizza anche per questioni di dati personali: Microsoft si riserva il diritto di raccogliere tali dati, relativi all'utente, al suo sistema ed all'uso che ne fa, in forma che non consenta l'identificazione, per uso interno oppure per fornirli ad organizzazione esterne per scopi commerciali. Inoltre Microsoft ha il permesso di intervenire sul sistema per modificarlo, installando nuovo software oppure impedendo la visione, la copia o il salvataggio di prodotti coperti da copyright. La GPL non tocca questioni legate ai dati personali, anche se molti software distribuiti sotto di essa chiedono esplicitamente di poter inviare informazioni sul sistema qualora si verificasse un problema, per informare gli sviluppatori di un possibile errore di programmazione. Passando ai punti in comune tra Microsoft EULA e GNU GPL, si può osservare come nessuna delle due garantisca che il software fornito sia perfettamente funzionante, privo di errori e corrisponda alle aspettative (in realtà Microsoft garantisce che il software funzioni come descritto sulla confezione per i primi 90 giorni). Inoltre all'autore non possono essere imputati problemi relativi a perdita di dati, malfunzionamenti o rotture; Microsoft garantisce di risarcire al massimo il prezzo di acquisto del prodotto, a sua discrezione. Vi è infine da aggiungere che nella licenza Microsoft si afferma esplicitamente che tutti i diritti non menzionati nella licenza appartengono comunque a Microsoft.