La rivincita dell’Open Source.
Quando Linus Torvald nel 1991 ideò un proprio sistema operativo per testare il suo nuovo computer a 32 bit non pensava certo che avrebbe creato una rivoluzione nel mondo dell’informatica e di rimanere, nel contempo, sconosciuto alla maggior parte delle persone comuni.
La prima volta che sentii parlare di linux avevo poco più di vent’anni ed era al corso di informatica di ingegneria dell’università di Padova; fino ad allora la mia conoscenza dei computer era quella che avevo maturato durante gli anni sui computer a 8 e 16 bit (Comodore, MSX, ecc) e sul mio PC 8088 con sistema operativo DOS che, con grande disappunto, scoprii di dover cambiare per poter installare ed utilizzare quel sistema operativo da casa anziché i computer dell’università.
Per chi volesse approfondire la genesi di questo sistema operativo consiglio il bellissimo libro di L. Torvald e D. Diamond “Rivoluzionario per caso. Come ho creato Linux (solo per divertirmi)”, mentre chi vuole sapere quale importanza ha avuto questo progetto nel mondo dell’informatica e come mai grandi nomi dell’informatica si stiano sempre più avvicinando al mondo dell’Open Source consiglio di proseguire con la lettura di questo articolo.
Visto che il nome completo di linux è GNU/Linux, per capire di cosa parleremo, bisogna prima di tutto chiarire il concetto di software libero e di cosa significa quell’ acronimo ricorsivo che precede il nome del sistema operativo.
Nel 1985 l’informatico Richard Stallman fondò un’ organizzazione senza fini di lucro per lo sviluppo e la distribuzione di software libero, in netto contrasto con il mercato dei software protetti che si stava sviluppando. L’idea di base era che un codice sorgente deve essere pubblico per poter essere modificato in base alle necessità di chi lo utilizza. In realtà l’idea di Stallman era già nata l’anno prima con il progetto GNU ("GNU's Not Unix") per creare un sistema operativo Unix like libero nell’utilizzo e libero di essere modificato a piacimento. Purtroppo l’idea di Stallman non riuscì per molti anni a realizzarsi in quando non era ancora stato sviluppato un Kernel1.
Nel 1991 un giovane studente di informatica dell’università di Helsinki passò l’estate chiuso in camera sua a creare un proprio sistema operativo per testare il suo nuovo computer basato su processore i368 e, una volta finito di elaborare il progetto, lo mise in rete (all’epoca la maggior parte degli utilizzatori di internet erano nerd, studenti, professori universitari, organizzazioni governative) per condividerlo chiedendo solamente che gli venisse mandata una cartolina da coloro che provavano e apprezzavano il suo lavoro; questo studente era Linus Torvald che in breve tempo si ritrovò la camera piena di cartoline da tutto il mondo!
Torvald decise di distribuire il suo sistema operativo sotto la licenza Open Source che è caratterizzata da quattro principali caratteristiche: libertà di eseguire il programma per qualsiasi scopo, libertà di studiare il programma e modificarlo, libertà di ridistribuire copie del programma, libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti. Da allora Linux si è sviluppato tramite molti collaboratori che vedendone il codice lo migliorano, lo implementano e lo ridistribuiscono, mentre il suo creatore mantiene solo il ruolo di coordinare e decidere quali migliorie possono essere implementate e ridistribuite.
La nascita di Linux coincide anche con due grandi momenti della storia dell’informatica: la grande distribuzione e disponibilità di computer presso gli utenti finali e la diffusione di Internet.
Molte aziende di software iniziarono a distribuire versioni personalizzate di Linux (per questo quando si parla di questo sistema operativo si parla di distribuzione mentre quando si parla di versione ci si riferisce alla sola versione del Kernel) facendo pagare solo il costo del supporto (nel caso venga distribuito su CD) e dell’assistenza.
Visto che linux è un sistema operativo Unix-Like ci si accorse subito di quanto era indicato allo sviluppo dei server e, avendo un prezzo pressoché nullo, ottenne un grande successo nei primi internet provider che offrivano accesso alla rete e che ospitavano i primi siti web che stavano nascendo, permettendo di abbattere i prezzi ai fruitori di tali servizi. Per fare un esempio consideriamo che senza Linux, oggi, non avremmo Facebook, Twitter e moltissimi social network che sono nati inizialmente su hosting linux visto il budget limitato dei loro creatori; allo stesso modo il sistema operativo Android (che equipaggia la maggior parte degli smartphone in circolazione) è stato sviluppato da Google sul kernel Linux 2.6 e 3.x ed è per la maggior parte (a parte alcuni firmware2 proprietari) un progetto open source coordinato da Google che prende il nome di “progetto Open Source Android”.
Negli ultimi vent’anni sono state sempre di più le aziende che hanno abbracciato più o meno completamente, il mondo dell’Open Source. Un esempio eclatante è quello della storica azienda americana IBM che ha iniziato ad avvicinarsi all’Open Source fin dal 2004 quando al Linux World Conference & Expo a San Francisco, Nick Donofrio, senior vice president of technology and manufacturing di IBM, ha fatto sapere che Big Blue “non ha nessuna intenzione di usare i brevetti in possesso per attaccare Linux”.
In quel tempo, infatti, IBM deteneva circa 60 brevetti che si supponeva Linux potesse infrangere. La speranza di Donofrio, all’epoca, era anche che altre aziende seguissero l’esempio di IBM, poiché prevedeva una notevole diffusione del movimento open source nella decade successiva. Nel 2013 Big Blue sancisce la nascita della OpenPOWER Foundation, una comunità tecnica aperta, basata sull’architettura Power di IBM, il cui obiettivo è creare un ecosistema open, disposto a condividere competenze, investimenti e proprietà intellettuale di classe server, per facilitare l’innovazione a livello hardware e software e semplificare la progettazione dei sistemi.
L’open source è stato anche alla base di uno dei progetti informatici sociali più rivoluzionari a livello mondiale: “One Laptop Per Child” (http://one.laptop.org/) ideato da Nicolas Negroponte.
OLPC è un'organizzazione no-profit che si prefigge come scopo aiutare i bambini più poveri del mondo attraverso l'istruzione e, per raggiungere questo l'obiettivo, l’intenzione è di fornire ad ogni bambino un laptop robusto, a basso consumo, connesso ad internet ad un prezzo di solo 100$ (in realtà la prima fornitura di computer nel 2007 ebbe un costo di 130$ al pezzo). È chiaro che senza un sistema che sta alla base open source non sarebbe mai stato possibile riuscire in questo intento e molti altri progetti open source (come wikipedia) hanno offerto la loro collaborazione al progetto. Malgrado l’idea però il progetto non riuscì mai ad emergere completamente in quanto l’avvento degli smartphone economici (che utilizzano sempre sistemi operativi open source) fa sembrare inutile la creazione di un computer con quelle caratteristiche.
L’ultimo annuncio importante nel mondo dell’open source viene dall’azienda cinese Huawei che, dopo le dichiarazioni del presidente USA Trump su eventuali embarghi americani, ha iniziato la prima distribuzione di personal computer laptop con sistema operativo Linux anziché windows (con un risparmio notevole per l’utente finale che non deve pagare la licenza) e che, nel contempo, sta sviluppando un suo sistema operativo per i suoi smartphone, sempre basato sul kernel di Linux e sempre Open Source.
Visto che sempre più app e servizi si stanno spostando all'interno del mondo delle web app questa potrebbe essere una buona occasione per favorire la diffusione di sistemi operativi alternativi a Windows?
D’altronde sono sempre più le aziende, pubbliche o private, che stanno passando al software libero: nel giugno del 2019 il CERN (lì dove è nato il World Wide Web!) ha avviato un ambizioso piano di trasformazione del suo reparto IT per sganciarsi dalle insostenibili richieste economiche del software a codice chiuso fornito da Microsoft (che non fornirà più le licenze accademiche al centro ricerche) e passare a software Open Source, così come ha già fatto il governo sud coreano e così come stanno facendo molte pubbliche amministrazioni che sono, inoltre, obbligate a rilasciare in formato open source il software che loro stesse sviluppano.
La stessa Microsoft, che per anni si è battuta per le licenze software chiuse, d’altronde, ha iniziato un lento avvicinamento al mondo dell’open source entrando nella Linux Foundation con un esborso annuo di 500 mila dollari che le permette di sedere nel consiglio d’amministrazione della fondazione.
Alla fine degli anni ’90 del secolo scorso Microsoft e Linux erano visti come due mondi opposti ed erano considerate dai loro utilizzatori scelte di vita piuttosto che semplici opzioni informatiche, tanto che nel 2001 l’allora CEO di Microsoft Steve Ballmer definì Linux come un “cancro”, mentre oggi, con l’entrata di Microsoft nella Linux Foundation, Scott Guthrie (Vice President di Microsoft Cloud ed Enterprise Executive) commenta: “Linux Foundation è la casa non solo di Linux, ma anche dei progetti più innovativi della comunità open-source. Siamo entusiasti di aderire alla Linux Foundation”.
Così anche Microsoft, insieme a grandi aziende come Cisco, Fujitsu, HPE, Huawei, IBM, Intel, NEC, Oracle, Qualcomm, Samsung, Google e Facebook entra a far parte del mondo Open Source anche se questo non vuol dire che Windows e Office saranno distribuite gratuitamente.
L’avvicinamento di Microsoft al mondo Open è stato graduale e continuo, seppur lento. Per fare un esempio il 40% delle macchine virtuali su Azure (il cloud Microsoft per lo sviluppo) sono basate su Linux, mentre Windows 10 versione per sviluppatori contiene strumenti software open source che provengono sempre dal mondo Linux: dalla Bash (la classica shell o prompt dei comandi), agli strumenti di sviluppo che possono essere integrati dentro Windows 10 accanto ai classici di Microsoft come PowerShell, Chakra Core e Visual Studio Code. Da qualche tempo, inoltre, Microsoft ha stretto una partnership con Canonical per portare Ubuntu (una delle più famose distribuzioni Linux) su Windows 10.
Nel giugno del 2018 Microsoft ha acquistato il principale social network per gli sviluppatori, github.com, ad un prezzo di 7,5 miliardi di dollari quando nel 2016 il servizio ha incassato solamente 98 milioni di dollari in nove mesi, a fronte di una valutazione del 2015 che vedeva GitHub quotato due miliardi di dollari. Perché allora Microsoft ha pagato così tanto questa piattaforma che sviluppa essenzialmente progetti Open Source?
Su questa piattaforma sono attualmente ospitati 80milioni di progetti software ed è utilizzata da 27 milioni di utenti, per la maggior parte sviluppatori. Se si considera che negli ultimi dieci anni non è emersa nessuna infrastruttura software a livello di piattaforma dominante in forma chiusa o proprietaria, ma tutte sono nate da idee e progetti open source (come ad esempio MongoDB) e che moltissime app si basano su piattaforme open source, è facile immaginare che la scelta di Microsoft sia soprattutto quella di invogliare gli sviluppatori ad utilizzare le sue piattaforme (come Azzure) piuttosto che voler vendere più software. Ecco quindi che alcuni programmi per lo sviluppo, come Visual Studio, sono messi a disposizione da Microsoft nella versione base libera di essere scaricata ed installata, mentre per le versioni superiori si continua a dover pagare la licenza; Visual Studio Code viene distribuito con licenza permissiva e alcuni dei componenti core di .NET vengono rilasciati addirittura con licenza open source.
È facile supporre che, dopo aver perso la sfida nel mondo degli smartphone, Microsoft non intenda ripetere la stessa esperienza nel mondo dello sviluppo dei software ed abbia intenzione di avviare quel processo che IBM ed altre aziende hanno già iniziato: dal 2016, infatti, il software open source è alla base dei quattro pilastri – mobility, cloud, social business e big data3 – della trasformazione digitale in atto.
1 Il kernel è il componente centrale di ogni sistema operativo che ha il compito di fare da ponte tra le componenti hardware di un computer – come processore, RAM, hard disk, ecc. – e i programmi in esecuzione sulla macchina.
2 Il firmware non è altro che un particolare tipo di programma, normalmente memorizzato su una piccola memoria non volatile (quindi una rom) , posto all’interno di un computer, di uno smartphone, di un tablet, di un masterizzatore, di una smart TV e in quasi tutti i dispositivi elettronici, con il compito di far correttamente avviare il dispositivo e di far dialogare l’hardware con il software.
3 Con il termine Big Data si intende la capacità di usare la grande quantità di dati che vengono acquisiti (solitamente online attraverso i social network, la navigazione, lo scarico di file, ecc.) per elaborare, analizzare e trovare riscontri oggettivi su diverse tematiche.