**** La libertà di Linux **** La licenza GPL, le altre licenze ed i diritti degli utenti di Ivan Fabris Dopo aver letto il Game Over di Stefano Zanero nel numero di Novembre, non vi è venuto da pensare, almeno per qualche secondo, che c'è qualcosa di sbagliato in quello che succede nel mondo informatico? Ma non una cosa piccola, bensì moltissime cose ed enormi. Per una volta questo non sarà un articolo tecnico ma filosofico e storico: come recita il titolo della rivista che state leggendo, noi parliamo della civiltà del Personal Computer, e non solo dei giochi o programmi o sistemi operativi ad esso dedicati. Senza voler ricordare l'empia ( non trovo parole più giuste ) licenza d'uso del software descritta da Stefano, vorrei descrivervi il tipo di licenza sotto cui viene rilasciata la maggioranza di software per Linux, la GNU General Public License ( GPL ). Ma andiamo con ordine, e cominciamo con ****Un po' di storia Nel 1965 ai Bell Laboratories, una divisione della AT&T, venne avviato il progetto Multics, un sistema operativo multiutente, in collaborazione con General Electric ed il Massachusetts Institute of Technology. Problemi di fondi ne decretarono ben presto la morte, ma due ricercatori, Dennis Ritchie e Ken Thompson, continuarono a lavorare per conto proprio ad un progetto simile e nel 1970 nacque UNIX, chiamato così da Brian Kernighan con un gioco di parole tra Multics, pensato multiutente, e il nuovo OS, monoutente. UNIX era scritto in Assembler e per renderlo portabile su altre macchine Thompson inventò il linguaggio B, parzialmente derivato dal BCPL, facendolo poi evolvere in quello che sarebbe di li a poco diventato il C; il kernel di UNIX fu quindi riscritto in C e, quando una descrizione del sistema fu presentata Symposium for Operating System Principles, ricevette subito un enorme interesse. Come la Microsoft oggi, anche la AT&T era a quei tempi indagata dall'antitrust, e perciò decise di lasciare alle università la possibilità di usare liberamente SO, senza però che fornisse alcuna assistenza tecnica o di revisione del codice in caso di bug, né che ricavasse profitto. Questo obbligò gli utenti ad assistersi a vicenda, scambiandosi esperienze e algoritmi, gettando i semi di una collaborazione libera tra tutti i programmatori delle università. Nonostante tutto questo nel 1975 UNIX si divise in due: Thompson tornò alla Università di Berkeley in California portando con sé UNIX , e da qui si originò la Berkeley System Distribution, mentre dai laboratory AT&T uscì quella che oggi è la System V. Ormai Unix ( notate ora le lettere minuscole, si intende così l'intera famiglia di sistemi *x, tra cui Linux ) si stava diffondendo rapidamente su molti tipi di elaboratori ma, nei primi anni 80, un nuovo tipo di macchine a basso prezzo e dalle discrete prestazioni fece la sua apparizione sul mercato. Le capacità di queste macchine crebbero rapidamente col tempo, ed ancora più rapidamente lo stanno facendo ora, fino a raggiungere i livelli delle workstation Unix. Già avete indovinato, si trattava dei primi PC, che usavano un sistema operativo chiamato DOS e, in seguito, una GUI grafica chiamata Windows. In tempi brevi Unix fu relegato sui server e Windows conquistò il mercato consumer. ****La Free Software Foundation ( FSF ) e GNU La storia appena delineata sembra che descriva una sconfitta senza speranza, ma nel 1983 R. M. Stallman fondò la FSF ed il progetto GNU. GNU significa "GNU is Not Unix", è un acronimo di tipo ricorsivo caro all'ambiente hacker da cui Stallman proveniva. Hacker, ricordo per inciso, è un termine che identifica colui che è abile a programmare e a cui piace farlo, e non il pirata informatico tratteggiato della "informazione" moderna. Ai tempi pionieristici del 1970 la condivisione del codice sorgente era un fatto naturale e quasi obbligatorio per conseguire miglioramenti del software. Ma nei primi anni 80 i nuovi elaboratori erano accompagnati da un proprio sistema operativo ( nel 1984 inizia anche il cammino della Apple col suo rivoluzionario sistema operativo user-friendly ), e per ottenerne la licenza d'uso ci si doveva impegnare, tra le altre cose, a non modificarlo e a non distribuirlo. Questo significava che se ad un utente occorreva qualche caratteristica personalizzata doveva supplicare il produttore affinché la implementasse, e che se avesse condiviso questo software con qualcun altro sarebbe stato un pirata.. Cito liberamente da un discorso dello stesso Stallman : l'idea che il software possa essere liberamente modificato e condiviso può sembrare contraria all'etica ed al diritto d'autore, ma è corretto un sistema che si basa sul dividere gli utenti e li lascia senza aiuto e senza la possibilità di fare ciò di cui potrebbero aver bisogno? Fine della citazione. Potete trovare i discorsi completi, in lingua inglese, a http://www.gnu.org/philosophy/ . Ma che diritti ottiene un utente sul software che acquista, o del quale viene in qualche modo in possesso? E quali sono i modi legali, al giorno d'oggi, per ottenere software senza pagarlo? ****Le varie licenze ed un po' di terminologia Analizziamo allora i vari tipi di licenza che sono stati studiati per proteggere il software, secondo le intenzioni di di chi lo ha sviluppato e intende distribuirlo. Non ho studiato legge e potrei dire qualche sciocchezza, nel qual caso siete pregati di farmelo notare, la mia casella email ivan.fabris@xenia.it è sempre aperta! **Free Software Il termine "Free Software" è un po' equivoco. Il termine "free" non e' usato nel suo significato di "gratuito" ma in quello di "libero". Il software prodotto e distribuito sotto la GPL può essere venduto, certo, i programmatori non vivono d'aria, ne tantomeno coloro i quali mantengono ed aggiornano le varie distribuzioni di Linux. Si tratta non di soldi ma di libertà . Un programma è libero per un utente se: -l'utente può usare il programma per qualsiasi scopo -l'utente è libero di modificare il programma secondo i propri bisogni, ed affinché questa libertà sia possibile è necessario avere il codice sorgente del programma -l'utente può distribuire copie del programma cosicché possa aiutare il suo prossimo -l'utente è liberto di distribuire versioni originali o modificate del programma, cosicché tutti possano beneficare dei miglioramenti apportati, ed affinché questa libertà sia possibile è necessario avere il codice sorgente del programma. Se un programma lascia all'utente questi diritti, allora è un programma libero, e non è necessario ( ma neanche vietato ) pagare per ottenerlo. Ma non è un controsenso? Distribuire a pagamento ciò che si è ottenuto gratis? In realtà nessuno obbliga a comprare del free software, visto che per ogni fonte a pagamento ce ne sono decine gratuite. In questi tempi, e sempre di più in quelli a venire, Internet consente scambi di informazioni quasi gratuiti, a prescindere da TUT o TAT o qualsiasi altro acronimo scioglilingua che inventeranno. Tuttavia, la possibilità di vendere copie di programmi è necessaria: i programmatori non vivono d'aria, le copie di software su CD hanno un costo e, restando nell'ambito Linux, le distribuzioni del sistema complete comprendono una quantità di software enorme, che difficilmente un privato riuscirebbe a mettere insieme scaricandolo da Internet col suo modem, ma soprattutto la casa che le assembla mantiene queste distribuzioni organizzate e curate, e soprattutto fornisce anche aiuto ai privati o alle aziende che scelgono il loro prodotto. Tutto ciò deve per forza di cose essere a pagamento, anche i dipendenti di RedHat o Suse devono mangiare. Provate tuttavia a confrontare il costo di una distribuzione Linux completa di manuali e supporto online, con una licenza di Windows + Office. Dovrebbero tutti fare un pensierino sul software libero, visto che è supportato ormai con la stessa efficienza di quello commerciale, soprattutto le aziende, ed a maggior ragione quelle pubbliche, che spendono invece miliardi, dei soldi dei contribuenti, per prodotti commerciali che potrebbero invidiare quelli liberi in quanto ad efficienza. Il software libero è spesso scritto da persone che hanno una necessità: chi scrive software per se stesso di solito lo scrive il meglio possibile, non siete d'accordo? E tante volte la necessità principale è quella della libertà nei confronti di chi vuole imporre regole e restrizioni. Molti dei programmi GNU sono stati scritti per evitare attacchi a questa libertà: gzip fa la stessa cosa di pkzip, le librerie LessTif fanno la stessa cosa delle Motif, GNOME è un WM come KDE, solo che si basa sulle libere gtk anziché sulle qt, che fino a poco tempo fa non erano libere ( non lo sono neanche adesso, a rigore, ma la TrollTech sta facendo molto in questo senso ).Al punto a cui è arrivata la qualità e la quantità del software libero, non ci sono veramente ragioni per preferire quello proprietario. **Open Source software Questo termine indica la stessa cosa di "Free Software" ma è preferita dalle aziende che trattano questo tipo di programmi, a causa dell'equivoco di cui dicevo. I puristi considerano questa definizione un po' traditrice degli ideali che hanno generato la Free Software Foundation, ma in fondo si tratta di parole, una volta capito bene il concetto, potete indicarlo col nome che meglio vi aggrada. **GPL-covered software La GNU GPL (General Public License) è uno specifico insieme di regole per dotare un programma dei diritti di copyleft . Il software coperto da licenza GPL è il Free Software **Copylefted software Il Copylefted software è free software i cui termini di licenza non consentono ai ridistributori di modificare il termine stesso di licenza, limitando i diritti degli utenti, nemmeno se hanno modificato e migliorato il software in questione. Questa è la licenza che accompagna quasi tutto il software GNU ( ne restano fuori alcune librerie, poi vedremo perché ). Il termine nasce da un rovesciamento di Copyright, il "diritto d'autore", in cui copy significa "copia", e right significa "diritto", ma anche "destra", opposto a left, che significa "sinistra" ma anche "lasciato". Il termine, insomma, significa "permesso d'autore", ed identifica tutti i diritti sopra descritti che l'autore del programma lascia agli utenti, riservandosi il solo diritto della proprietà intellettuale dell'opera ed imponendo che tutti gli utenti godano alla stessa maniera di tali diritti. Si tratta della licenza GPL. Le sole restrizioni che pone la GPL sono quelle di impedire che un utente disonesto possa togliere agli altri le libertà garantite dalla GPL stessa, come accade invece per il software Public Domain. Per esempio, a differenza dei tipi di licenza di software proprietario, nessuno richiede all'utente l'accettazione della licenza GPL, poiché non vi si chiede di firmare alcunché ne di cliccare pulsanti di accettazione per procedere con l'installazione; l'utente la accetta implicitamente ed in toto nel momento in cui decide di ridistribuire copie originali o modificate del programma.. La licenza ovviamente non permette nemmeno che il software da lei protetto,intero o in parte, venga incorporato in programmi o distribuzioni non libere. Sul cd trovate il testo integrale dell'ultima versione della GPL. **GNU Software Il software GNU è quello che viene rilasciato dal Progetto GNU. Non tutto questo software è copyleft, ma deve essere comunque libero! Per questo possono essere inclusi programmi come X e TeX che non sono GNU ma sono liberi ( quando lo sono, ovviamente, vedete il caso di X ). Per il manifesto completo del progetto GNU vedete il sito già segnalato **LGPL Esiste anche una forma di GPL un po' ristretta, che permette al software di essere impiegato ed incluso in altro software commerciale. La GPL non consente questo, ovviamente, ma certe librerie, come la Libreria C, se rilasciate con questa possibilità guadagnano in diffusione. Il compilatore C di GNU usa la Libreria C, e permette così di compilare programmi proprietari : non consentire questo sembra scoraggiare l'uso del compilatore piuttosto che incoraggiare la scrittura di software libero, quindi in questo caso una simile scelta strategica pare azzeccata. **Non-copylefted free software Infine il Non-copylefted free software si differenzia dal precedente per alcune restrizioni sulla distribuzione. Se un programma è gratuito ma non-copylefted, allora alcune versioni o copie possono non essere libere. Per esempio, una software house può compilare un programma e distribuirne l'eseguibile come software proprietario. Il caso più lampante è X Window System. X Consortium rilascia X11 con una licenza di tipo non-copylefted free software. Chi vuole può procurarsi una copia gratuita e libera, oppure una versione i cui sorgenti non sono disponibili: esistono server X dalle prestazioni fantastiche, ma sono a pagamento e prive dei sorgenti. Inoltre, per certe architetture hardware, esistono solo server X non-copylefted. **Public domain software Questo è software senza copyright. Può essere considerato un caso speciale di non-copylefted free software, che significa che alcune versioni possono non essere libere. A volte questo termine viene usato a sproposito per indicare del software gratuito, ma in realtà Public Domain legalmente significa "senza copyright". Anche se può sembrare una licenza molto liberale, in realtà permette ad un qualsiasi utente di fare la minima modifica e, in virtù di questo, di ridistribuire il software in forma proprietaria **Semi-free software Questo è software che non è libero, ma può essere distribuito e modificato a scopi non commerciali: PGP ne è un esempio . Sempre meglio del software proprietario, ma non può comunque essere usato in un SO libero, perché i termini di distribuzione di un aggregato di software corrispondono a quelli del software meno libero... insomma la forza di una catena equivale a quella del suo anello più debole. Il sistema GNU non può aprirsi alla più piccola contaminazione, perché una distribuzione su CD, includendo un qualsiasi software semi-free non potrebbe essere commercializzata. **Proprietary software Infine, il software proprietario è quello che non è ne libero ne semi-libero. La ridistribuzione e la modificazione sono vietati o comunque richiedono il permesso dell'autore, che ne detiene tutti i diritti La Free Software Foundation installa software proprietario al solo scopo di scriverne una versione libera e solo per il tempo strettamente necessario. Nessuno software proprietario è altrimenti ammesso. **Commercial Software Potrebbe sembrare sinonimo di "Proprietary software ", in quanto è software sviluppato per poterne trarre profitto, ma se tutto il software proprietario è commerciale, non tutto quello commerciale è proprietario: il compilatore ADA , rilasciato sotto licenza GNU, ne è un esempio. Questo accade perché molte aziende si sentono più al sicuro se dietro ad un prodotto c'è un'altra azienda che garantisce il supporto. Chiaramente è un ragionamento giusto. **Freeware Questo termine si riferisce a software gratuito, di cui e permessa la ridistribuzione ma non la modifica, e di cui non sono disponibili i sorgenti: non è software libero. **Shareware Indica software che permette la ridistribuzione di copie, ma l'autore richiede un pagamento per l'uso continuato del programma, e la modifica non è permessa, anche perché i sorgenti non sono distribuiti. ****La proprietà Quanto detto finora può sembrare ispirato da un' idealismo marxista... Allora precisiamo subito che il software rilasciato sotto la licenza GNU non è di proprietà pubblica, ma la paternità dell'opera rimane dell'autore, il cui nome non può essere scisso dal suo lavoro. Inoltre ricordo che l'autore ha sempre il potere di rilasciare versioni proprietarie del suo lavoro e di trarre da esse benefici economici. Rileggete un'altra volta una qualsiasi licenza di uso del software e ditemi poi chi è il padrone dei byte codificati sul vostro hard disk. Già il nome, licenza d'uso, vi suggerisce che voi non possedete il programma, ma potete solo usarlo. La licenza GPL vi da qualcosa in più, ma il merito e la proprietà di un programma restano a chi lo ha scritto, e questi diritti gli vengono garantiti. ****Finale Potrei fare un'invettiva contro le licenze proprietarie, che costringono a pagare prodotti di cui non viene data alcuna garanzie, che restano di proprietà di chi li ha fatti, che non possono essere modificati. Potrei anche inveire contro chi ha imposto uno standard ed ora fornisce programmi carini da vedere, ma proni a migliaia di virus, a volte instabili e costosissimi, e che, peggio, vengono imposti all'acquisto del computer, come se un computer non potesse assolutamente funzionare farne a meno. Ma sarebbe uno spreco d'inchiostro e non è nel mio stile. Inoltre questo articolo è puramente esplicativo, e non voglio fare paragoni del tipo "questo è bene ed il resto è male". Volevo solo rendervi più coscienti di come il software viene distribuito, e dei diritti che avete e di quelli che non avete, mettendoci così in grado di scegliere ciò che vi sembra meglio. Voglio sottolineare inoltre che come tutte le altre licenze, ed anzi con maggiori ragioni di quelle, nemmeno la GPL garantisce il funzionamento del prodotto che accompagna, ma per un prodotto per avere il quale non avete pagato nulla, ci mancherebbe! Ma mentre i programmi proprietari costano fior di quattrini e non vi garantiscono in nulla, il software libero costa poco o niente , vi concede molta libertà di movimento ed ha una qualità spesso superiore. Provate inoltre a pensare ai vantaggi che porta la disponibilità dei sorgenti di un programma; un utente qualunque probabilmente non ci darà mai neppure un'occhiata fuggevole, ma tantissimi programmatori in tutto il mondo controlleranno il codice, scopriranno rapidamente i bug ( tutti, e ripeto tutti, i programmi ne hanno, per quanto semplici ) e troveranno un rimedio, rendendolo disponibile, liberamente, al mondo intero. Alcuni mesi fa ho letto, su http://www.slashdot.com, il rapporto di un utente, che certo non era un newbie, lo ammetto, su un bug del supporto ppp nel kernel di Linux. Tra il rapporto e l'arrivo della relativa correzione erano passate 4 ore e 10 minuti. Quanto bisogna aspettare in media per avere correzioni di un software proprietario, di cui nessuno ha mai visto i sorgenti? Mesi, o settimane nei casi migliori. Emblematico di questi tempi il caso dei produttori di videogiochi: ansiosi di un ritorno degli investimenti effettuati per sviluppo e pubblicità, tendono a pubblicare anzitempo i loro prodotti, senza averli sufficientemente provati e debuggati, forti del fatto che tanto i poveri utenti troveranno poi le patch su internet o sulle riviste. Questo equivale a prendere in giro l'acquirente. Nel momento in cui scrivo il caso più eclatante riguarda Ultima IX, rilasciato in uno stato assolutamente pietoso: tantissime persone, in cambio dei loro soldi, hanno ricevuto un prodotto non completo e saranno costretti a spese supplementari, o di telefono o in riviste di giochi, per poter ottenere le varie patch . La maggior parte delle software house si comportano in maniera onesta, fornendo prodotti finiti e elevata qualità, basta vedere i punteggi assegnati dai nostri recensori ai programmi ed ai videogiochi. Non voglio essere ulteriormente polemico, ma in cambio dei nostri soldi, noi utenti ci meritiamo o qualche garanzia o qualche diritto in più. Ora sapete che esiste anche il software libero. Coraggio dunque, provare non vi costa nulla! **** DIDA FOTO 1: a-gnu.jpg Il nostro punto di partenza! La home page di www.gnu.org FOTO 2: a-debian.jpg Debian è la distribuzione che aderisce completamente ai canoni GNU/Linux FOTO 3: a-gimp.jpg Gimp, l'equivalente di Photoshop nel mondo OpenSource FOTO 4: a-opens.jpg Il sito ufficiale dell' OpenSource, www.opensource.org, contenente tutte le informazioni su questo modo di vivere l'informatica FOTO 5: a-gnome.jpg Il WindowManager GNOME, che certo tutti conoscete FOTO 6: a-pluto.jpg E per finire, la controparte italiana del progetto GNU, il Pluto , www.pluto.linux.it, è d'obbligo consultarlo a fondo!