Il Free and Open Source Software è comunemente associato al concetto di software gratuito. Alla base di questo vero e proprio movimento c’è invece il diritto alla libertà nell’uso e modifica del codice. Un concetto che trascende la proprietà intellettuale e getta le basi per una rivoluzione popolare silenziosa.
Il software open source è ormai parte integrante della maggior parte dei software commerciali e non, inclusi i sistemi operativi. Ogni giorno utilizziamo una vasta gamma di dispositivi (computer, telefoni e persino automobili) che vengono gestiti da software (o firmware) che potrebbero contenere parti di codice open source senza che però questo ci risulti evidente. Parliamo infatti di una rivoluzione silenziosa che ha letteralmente cambiato l’industria informatica negli ultimi quaranta anni. Il concetto di codice aperto è probabilmente vecchio quanto l’informatica stessa. Ai suoi albori infatti, parliamo degli anni ’50 del secolo scorso, gli addetti ai lavori scambiavano conoscenze, codice e interi pacchetti applicativi. Questo avveniva nelle università, nei laboratori di ricerca e persino nelle aziende e consentì un incredibile progresso e la sempre maggiore diffusione di software di qualità. Nella maggior parte dei casi l’industri informatica era in realtà più un’industria hardware, in cui i produttori di computer pubblicavano il proprio software a totale supporto delle costosissime macchine immesse nel mercato. L’informatica personale era ancora di là da venire e il business del software indipendente era ancora allo stato embrionale.
Il copyright act e il software per computer
Negli anni ’70 c’è un certo fermento intorno al concetto di software per computer. Sebbene non sia ancora mainstream si avverte la necessità di normare un ambito ancora nascente, in una sorta di atto profetico teso a proteggere quella che un giorno sarebbe stato uno dei business più rilevanti su questo pianeta.
Dicevamo che all’epoca la maggior parte del software era scritto e offerto in bundle insieme al costosissimo hardware. Nel 1969, il governo degli Stati Uniti d’America, pronunciandosi in merito alla causa United States vs. IBM, dichiarò che il software offerto in bundle fosse anti concorrenziale.
Questo evento aprì la strada al software prodotto da terze parti e in meno di un decennio, nel 1980 il governo americano si vide costretto ad approvare un emendamento al Copyright Act risalente a quattro anni prima. Questo includeva a chiare lettere il concetto di software per computer ed estendeva ad esso tutte le tutele in materia di copyright.
Richard Stallman e la Free Software Foundation
Richard Matthew Stallman, rms per gli amici, all’epoca era un ricercatore al laboratorio di intelligenza artificiale al MIT e… un hacker. No, non uno di quelli che si intrufola nei sistemi delle aziende o degli utenti per diffondere virus o rubare dati. Qui parliamo di un hacker vero, di uno di quelli che dell’ideologia di libertà hanno fatto la propria bandiera. Uno di quelli che potremmo definire un attivista per i diritti dell’uso del software. Richard era particolarmente preoccupato per come stavano andando le cose a seguito del Copyright Act del ’76 e del suo emendamento del 1980. Il software proprietario era in ascesa e rischiava di chiudere le porte a tutti quelli che avevano la necessità di modificare, distribuire e condividere il software con amici e colleghi allo scopo di migliorarlo e incrementarne la diffusione.
Stallman era estremamente preoccupato per la sempre più crescente riduzione della libertà degli utenti di utilizzare il software e decise di avviare il progetto GNU. Acronimo ricorsivo tanto caro ai seguaci dell’open source, vuol dire GNU’s not Unix ed è un tentativo di creare una valida alternativa al sistema operativo proprietario Unix. Nel 1983, Stallman decise di dedicarsi completamente al progetto GNU e due anni dopo , nel 1985 fondò la Free Software Foundation. Quest’ultima aveva lo scopo di promuovere e tutelare il diritto degli utenti di:
- eseguire;
- studiare;
- condividere;
- distribuire le copie così modificate del software.
Questi diritti sono noti come le Quattro libertà fondamentali del software libero, in particolare la 1 e la 3 richiedono l’accesso al codice sorgente.
What The F…ree!!
Il termine free vuole dire sia libero che gratuito. Sebbene nella quasi totalità dei paesi non anglofoni, esistano termini distinti, in inglese il concetto di gratuità e di libertà possono spesso essere confusi. Stallman non ha mai inteso il software free come gratuito tuttavia è stato oggetto di pesanti critiche da parte delle aziende che nel frattempo si erano lanciate a capofitto nel business del software per computer. Sebbene epoca e contesto fossero diversi, ricordiamo tutti la lettera aperta di Bill Gates indirizzata ai membri dello Homebrew Computer Club in Palo Alto. Il movimento del software libero si contrapponeva al concetto di software proprietario. Una dicotomia impossibile da sanare, almeno fino a un certo punto… Si comincia infatti a mutuare dalla lingua spagnola o francese il termine _libre per eliminare qualunque ambiguità sul concetto di gratuità. Il termine FOSS diventa quindi FLOSS, Free/Libre and Open Source Software.
La coperta di Linux
Nel 1991, Linus Torvalds, uno studente dell’università di Helsinki assurse agli onori della cronaca per aver polemizzato con Andrew Tanenbaum, un mostro sacro in ambito accademico, professore di informatica alla Libera Università di Amsterdam, autore di testi universitari, ricercatore e creatore tra gli altri di MINIX (un sistema operativo Unix-like basato su microkernel).
A proposito di MINIX, Tanenbaum aveva reso MINIX open source ma veniva distribuito come parte del proprio libro Operating Systems: Design and Implementation, con una licenza che impediva agli utenti di apportare modifiche e distribuirle.
Il giovane Linus, non solo non era soddisfatto della licenza di MINIX ma anche dell’architettura utilizzata. Per questi motivi decise di avviare un progettino amatoriale per creare un sistema operativo open source basato su di un kernel monolitico invece che un microkernel come MINIX. Famosa è la diatriba tra Tanenbaum e Torvalds in merito all’architettura del sistema operativo. Tanenbaum scrisse in una mail:
“Io continuo a ritenere che progettare un kernel monolitico nel 1991 sia un errore fondamentale. Ringrazi che non è mio studente. Non avrebbe preso un voto alto per tale progetto. :-)”
Per la serie la tocco piano…
Open vs Free
Nel frattempo Stallman, che aveva creato l’intero ecosistema GNU stava avendo enormi difficoltà con il sistema operativo. Hurd era lungi dall’essere pronto e ciò che mancava davvero al progetto GNU semplicemente… non c’era. O meglio non c’era prima di Linux! Il destino era già segnato quindi, Linux divenne ufficialmente il sistema operativo mancante al progetto GNU che venne quindi ribattezzato GNU/Linux.
Perché GNU/Linux e non semplicemente GNU? Lo spiega Stallman qui. Linux è solo il kernel, una parte sebbene importante di un più ampio sistema operativo che è GNU. Stallman nel frattempo creò anche una licenza per supportare tutti il codice che orbita intorno all’ecosistema GNU, la famosa (o famigerata) GNU Public License (GPL).
Il sole splende alto, Richard ha completato il progetto GNU e vissero tutti felici e contenti. Beh, non proprio. Molti ritenevano le convinzioni di Stallman, non esclusa la GPL, un po’ troppo estreme e soprattutto troppo legate ad all’ideologia che a elementi pratici. La diatriba tra free (gratuito) vs free (libero) ha spinto alcuni a concentrarsi maggiormente sulla disponibilità del codice sorgente, rispetto agli aspetti meramente ideologici. Nel 1997, Eric Raymond pubblicava The Cathedral and the Bazaar, una riflessione sulla comunità hacker e i principi del software libero. Poco dopo Netscape rilasciò la sua popolare suite Internet Netscape Communicator come software gratuito e questo spinse Eric Raymond e altri membri della FSF a rivedere la loro posizione in merito agli obiettivi della FSF per renderla più attraente per le società di software commerciali affinché potessero vedere i vantaggi del software libero.
Nel 1998 formarono la Open Source Initiative (OSI) per promuovere la creazione e l’utilizzo di software open source, senza l’approccio estremo spesso adottato dalla FSF.
Una questione di fiducia
Sviluppare software open source oggi ha molteplici vantaggi ma alla base di tutti c’è sempre quel diritto alla libertà caro a Stallman. Non solo, c’è anche un tema di fiducia ovvero consentire, non senza un certo livello di controllo, ad altri sviluppatore di “mettere le mani” nel proprio software. Di contro c’è la fiducia che gli utilizzatori ripongono su chi contribuisce a manutenere o far evolvere tale software. Ma cosa accade quando uno dei contributori di software libero e open source tradisce questa fiducia? Tutto l’impianto su cui si basa il riuso e la distribuzione e di codice libero , crolla come un castello di carte. E ciò che succede a node-ipc, un software open source manutenuto da Brandon Nozaki Miller. Miller, per protestare contro l’invasione dell’Ucraina da parte della Russia, pensò bene di inserire del codice malevolo che cancelli dati importanti dal computer dell’utilizzatore se questi si trova in Russia o Bielorussia. Salvo poi pentirsene a fare un nuovo commit per rimuovere il codice responsabile della cancellazione dei file e sostituirlo con più innocuo messaggio di protesta posto all’interno di un file.Ma la frittata ormai era fatta, mio caro Nozaki Miller. Non solo perché nel frattempo node-ipc è stato scaricato e incorporato in chissà quanti software ma anche perché si è creato un pericoloso precedente. La fiducia riposta nel software libero e open source è venuta meno.
Uno, nessuno e centomila
Da questo episodio nasce una riflessione importante circa la diffusione del software open source. A seconda della licenza con cui viene distribuito, il codice può essere utilizzato a piacimento e incorporato persino in prodotti commerciali come applicazioni e sistemi operativi. Ci sono licenze estremamente restrittive, come la già citata GNU Public License e tutte le sue varianti o derivati (LGPL, AGPL, ecc.), e licenze più permissive come BSD, MIT o Apache. La prima costringe l’utilizzatore a distribuire l’opera derivata sotto la stessa licenza. Ed è qui mio caro Stallman, che hai perso l’occasione di rendere il concetto di software libero appetibile per una certa fetta di mercato!
Le seconde invece consentono di incorporare e riutilizzare porzioni di codice open e free Enza apportare modifiche alla licenza finale.La quantità di codice open e free utilizzata in progetti di natura commerciale è spaventosa. Basti pensare che Android, uno dei sistemi operativi per dispositivi mobile per smartphone usa il kernel Linux.
Il software libero e open source ha radicalmente cambiato l’industria del software consentendo anche al software proprietario di trarne beneficio.