# Open source, software libero e altre libertà/Una breve storia personale del software libero

../Brevi cenni sull’universo (aperto) ../Le licenze di software libero (open source) IncludiIntestazione 13 maggio 2019 100% Da definire
Open source, software libero e altre libertà Carlo Piana 2018 CC BY-SA 3.0 GFDL Indice:Carlo Piana - Open source, software libero e altre libertà.pdf //it.wikisource.org/w/index.php?title=Open_source,_software_libero_e_altre_libert%C3%A0/Una_breve_storia_personale_del_software_libero&oldid=- 20190513173754 //it.wikisource.org/w/index.php?title=Open_source,_software_libero_e_altre_libert%C3%A0/Una_breve_storia_personale_del_software_libero&oldid=- 20190513173754
[p. 27
Abbiamo visto cosa significa “aperto”, in generale e quali possono essere le dinamiche che prevengono l’apertura. Abbiamo anche visto le dinamiche che rimuovono le chiusure e fanno di ciò che sarebbe “chiuso” qualcosa di “aperto”.
Ora è tempo di applicare le conoscenze appena conseguite. Iniziamo dal campo che ha dato per primo e con maggiore dovizia spunti e strumenti all’apertura dei prodotti intellettuali: il software. E cominciamo da come io sono giunto a conoscere il software libero. Genesi, capitolo primo.
Ricordo la prima volta che ne sentii parlare. In un trafiletto su qualche ormai dimenticata rivista si parlava di alcuni tizi, prevalentemente in ambito universitario (MIT) i quali sostenevano – anatema! – che il software dovesse essere libero. E menzionava il nome di questa accozzaglia di matti: la Free Software Foundation.
Per me, giovane praticante avvocato cresciuto in uno studio che faceva della tutela del software uno dei fiori all’occhiello, era cosa inaudita, che ovviamente non avrebbe mai avuto nessun seguito, se non tra questi che sicuramente erano hippy dalla dubbia igiene. [p. 28
Avevo, in poche parole, avuto un contatto non ravvicinato con il software libero, e se a voi piace, “software open source”. Siccome la poca conoscenza è ben più pericolosa di una completa ignoranza, avevo tratto conclusioni che più sbagliate non potevano essere su quale potesse essere il futuro di quell’abominio.
Il primo contatto vero con il software libero fu una distribuzione marchiata Red Hat di GNU/Linux, doveva essere il 1996 o giù di lì.
Flash forward: anno 2000, il Millennium Bug, sul quale il giovane me aveva costruito un poco di notorietà, si era dimostrato una bolla di sapone. Delle migliaia di cause che si prospettavano a seguito del malfunzionamento del software con il passaggio al nuovo millennio, neppure una. Nel frattempo però avevo avuto modo di valutare come il fatto di non avere a disposizione il codice sorgente avrebbe potuto trasformare un evento tutto sommato banale – il fatto di aver utilizzato per definire l’anno con due cifre anziché con quattro – in una catastrofe profetizzata, tanto da apparire in numerosi film (nessuno memorabile, per la verità).
Non avere il codice sorgente fa sì che, anche se tu hai pagato profumatamente lo sviluppo del software, il software non sia veramente “tuo”. Puoi utilizzarlo così com’è, ma non puoi modificarlo e non puoi nemmeno vedere di preciso com’è fatto. Per coloro che non sono addentro alla programmazione, il software, ancora adesso, è sviluppato in questo modo: un [p. 29 programmatore usa un linguaggio di programmazione, che grosso modo sembra inglese. Righe di codice, a-capo, commenti, parentesi di ogni tipo. Ma chi sa programmare, sa anche leggere e mettere le mani su quella roba lì. Che si chiama – appunto – “codice sorgente”, o in dizione inglese “source code”.
Il codice sorgente va molto bene per gli umani. Sembra un testo. Sembra tanto un testo, che quando ci si chiese quale forma di protezione il software dovesse avere venne naturale pensare al copyright come se fosse un’opera letteraria. E copyright fu. Prima protezione.
Ma il codice sorgente non va bene affatto per le macchine. I computer vogliono le istruzioni in maniera più compatta, serve un “traduttore” che si occupi di interpretare il codice sorgente, controlli che tutto quello che serve per dare le istruzioni ci sia, traduca il tutto in un linguaggio direttamente eseguibile sul computer, metta assieme tutti i pezzi. Questo procedimento si chiama “compilazione” e il risultato è chiamato “codice macchina” o “codice eseguibile” o “codice oggetto”. Risalire al codice sorgente dal codice oggetto è estremamente più difficile. In un certo senso, il codice oggetto è criptato, segreto.
E segreto fu. Il segreto viene tutelato da apposite norme che impediscono di cercare di risalire al codice sorgente. Dunque, questa è una seconda protezione sul software, in aggiunta al copyright.
Intanto, una particolare setta di avvocati chiamati “IP Lawyers”, i quali passano il giorno e la notte a inventarsi nuove protezioni, si dissero “ma perché se [p. 30 inventiamo un modo nuovo di far qualcosa con una macchina, possiamo ottenere un brevetto, mentre se inventiamo un modo nuovo di fare qualcosa con un computer, no? Otteniamo un brevetto!”. Se lo dissero tanto spesso e con tanta convinzione, e lo dissero con altrettanta convinzione ai giudici, che un giorno un giudice diede loro ragione. E brevetto fu. Ecco la terza protezione che insiste sul software.
Sui brevetti potremmo fare un lungo discorso, ma ci porterebbe troppo lontano, basti dire che i brevetti sul software, per quanto di dubbia legalità, soprattutto in Europa (dove una Convenzione dice chiaramente che non dovrebbero esistere), esistono e vengono attivamente tutelati in giudizio.
Nella distribuzione del software, una licenza scritta ed espressa non è necessaria. Se vengo in possesso legittimamente di una copia del software, ho alcuni diritti e doveri che discendono direttamente dalla legge. Di principio non posso effettuare copie o prestare il software senza permesso, non posso decompilare il software per ricostruirne il codice sorgente, non posso utilizzarlo se confligge con un brevetto.
Una licenza è necessaria se il titolare dei diritti di sfruttamento esclusivo vuole restringere ciò che l’utente può fare rispetto ai divieti e ai permessi che provengono direttamente dalla legge. Ciò è possibile, a condizione di non violare le norme imperative. Una licenza è necessaria anche per espandere questi diritti, e concedere usi e azioni che non sarebbero possibili in base direttamente alla legge, incluso concedere il codice come software libero. [p. 31
Le licenze di software libero non sono un fenomeno nuovo. In effetti, alcune tipologie di licenze, specie quelle di derivazione universitaria (MIT, BSD) risalgono a un periodo in cui non esisteva un’espressa tutela del software. In ambito accademico tali licenze concedono un uso piuttosto “liberale” del software. In pratica è possibile qualsiasi utilizzo del software, inclusa la copia e la modifica, a due condizioni fondamentali: far sapere chi è l’autore del software (perché l’uso del software da parte di altri è fattore di prestigio per l’autore, e di acquisizione di “credito” universitario) e di escludere ogni forma di responsabilità. Si trattava di software libero o open source ante litteram.
Richard M. Stallman, il fondatore del nuovo movimento di liberazione del software, si rese conto che in ambito “commerciale” non valeva la regola del tutti condividono tutto, salvo il dovere di attribuzione della paternità, cui era abituato in ambito universitario. Galeotta fu una stampante di rete, una fantastica stampante laser dipartimentale, che aveva però l’abitudine di incepparsi. Siccome la utilizzavano in tanti, per produrre stampe di tante pagine, a ogni inceppamento i lavori restavano in coda fino a che qualcuno non li andava a ritirare e si accorgeva dell’inghippo. A quel punto i lavori a seguire venivano ritardati anche di molto. Per ovviare a ciò Stallman aveva modificato il software in modo che, invece di semplicemente emettere un segnale luminoso sulla stampante, venisse inviato un messaggio in rete, così il proprietario del lavoro inceppato – informato – poteva alzarsi e risolvere subito l’inceppatura. [p. 32
Quando il dipartimento di Stallman ricevette una nuova stampante, Stallman cercò il modo di effettuare la stessa modifica, ma non trovò – con sua sorpresa – il codice sorgente. Pensando a un errore, contattò il produttore, ma gli venne spiegato che quella era la politica, il software era loro e non rilasciavano i sorgenti. Niente sorgenti, niente modifiche. Stallman non la prese bene, e trovò una soluzione piuttosto radicale al problema: avviò il progetto GNU per realizzare da zero un intero sistema operativo (un UNIX) interamente fatto di software libero, ovvero software che rispettasse quattro libertà fondamentali:
* Libertà di eseguire il programma come si desidera, per qualsiasi scopo (libertà 0).
* Libertà di studiare come funziona il programma e di modificarlo in modo da adattarlo alle proprie necessità (libertà 1). L’accesso al codice sorgente ne è un prerequisito.
* Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).
* Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti da voi apportati (e le vostre versioni modificate in genere), in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L’accesso al codice sorgente ne è un prerequisito.
Di UNIX “liberi” già ce n’erano stati. Anzi, UNIX era nato libero. Poi diversi operatori avevano preso quel codice e, grazie al fatto che era licenziato con condizioni permissive, ne avevano creato diverse versioni proprietarie, ognuna incompatibile con le altre. Stallman non voleva che la propria creatura subisse la stessa sorte. E la soluzione fu il copyleft. [p. 33
Copyleft, ne abbiamo parlato nel capitolo scorso, è un insieme di condizioni tese a forzare il fatto che se un’opera è stata licenziata sotto una particolare licenza, tutte successive opere derivate conservino la stessa licenza. Non è però solo una questione di licenza. Occorre anche effettivamente avere la possibilità materiale di modificare il software. Averne semplicemente il diritto non è sufficiente. Ecco perché nel software è particolarmente importante avere accesso al codice sorgente. Ecco perché una delle condizioni più importanti per il copyleft nel software è quella che impone a chiunque distribuisca il codice oggetto di un’applicazione di mettere a disposizione il codice sorgente completo corrispondente alla versione modificata di tale applicazione, così che anche lo sviluppatore iniziale possa giovarsi delle modifiche, potendovi mettere mano.
Nel software, per questa ragione, “copyleft” viene sovente tradotto con “accesso al codice sorgente”. Questa identificazione della parte con il tutto è alla base anche dell’espressione di “open source”(“sorgente aperto”) rispetto al più corretto “software libero”, in cui “copyleft” è un attributo di alcune licenze (ma ovviamente non di tutte). Non tutto il software libero, anche quello nato in tempi più recenti, infatti, pretende l’accesso al codice sorgente come condizione di licenza. Nondimeno molto spesso anche software non soggetto a condizioni di copyleft vede, di fatto, un accesso anche integrale al codice sorgente, ma senza che vi sia una garanzia che ciò avvenga, come appunto per gli UNIX nati in ambito universitario, e come più tardi accadrà con il sistema operativo dei Macintosh di Apple, MacOSX. [p. 34
Per il proprio sistema operativo Stallman non vuole affidarsi alla buona volontà di chi lo modificherà, per ricevere gli sviluppi che altri faranno, come fecero i suoi predecessori. Vuole che ciò sia una precisa condizione, ovvero usa per primo il “copyleft”, e inventa la licenza GNU General Public License. Licenza capostipite del modello “open licensing” che avrà un successo enorme e sarà nota sotto il nome più colloquiale di “GPL”.
GNU diventerà un sistema operativo di estremo successo quando al kernel originale (la parte che nel sistema operativo si occupa delle funzioni più di base e dell’interazione tra il software e l’hardware) che Stallman aveva sviluppato (Hurd) verrà preferito quello sviluppato da un giovane (allora) studente universitario finlandese, Linus Torvalds, che lo chiamerà “Linux”. Il sistema GNU con Linux verrà poi conosciuto più generalmente con il nome del solo kernel, ovvero “Linux”. Il successo di questo sistema è tanto enorme quanto in parte misconosciuto. GNU/Linux sarà il sistema operativo che fornirà la spina dorsale di Internet come la conosciamo, su di esso è fondato quasi tutto quello che sostiene Internet come infrastruttura (server, router, apparati di ogni genere) e come servizi: tutti i social network e quasi tutti i servizi in cloud sono basati sotto qualche forma di GNU/Linux, e Linux in combinazione con una variante di Java chiamata Dalvik sarà meglio nota come “Android”.
È stata una rivoluzione nata da una combinazione tra un ricercatore, una stampante e una licenza, che ha cambiato l’informatica per sempre. E lo ha fatto non solo con Linux, ma con una serie ormai quasi infinita che ne ha raccolto il testimone in quasi tutti i campi. Nel prossimo capitolo esamineremo il mondo delle licenze di software libero e le loro varie tipologie.