I primi 25 anni di Linux
Oltre ad essere una delle arti distintive della modernità, la musica jazz è spesso citata come modello organizzativo ed espressivo ideale per la sua capacità di stabilire il giusto interplay fra l’idiosincraticità dell’individuo e l’armonia del gruppo – caratteristicamente, e a turno, i musicisti hanno la massima libertà di esprimersi creando, rispetto al tema e alle armonie centrali, variazioni musicali che diventano veri temi alternativi in schemi che, quando riusciti, si sposano con le sensibilità e il lavoro degli altri componenti del gruppo.
Tale produzione di innovazione collettivamente controllata mi fa pensare alla storia e ai risultati raggiunti dai prodotti e dai progetti che si richiamano allo sviluppo di software open source, ovvero del software applicativo che si giova dei contributi di qualunque soggetto sia in grado di comprenderne le funzionalità leggendone il codice sorgente – la condizione esplicita per partecipare è quella di mantenere il codice aperto e documentato cosicché qualunque persona possa migliorarlo e/o aggiungere nuove funzionalità.
Consentire il libero utilizzo del software e lasciare il codice aperto vuol dire mettere a disposizione di tutti il file originario contenente le istruzioni date al computer – istruzioni scritte in un linguaggio leggibile da un essere umano – cosicché gli altri programmatori possano vedere “in chiaro” i comandi che guidano le logiche degli algoritmi e anche utilizzare il lavoro già fatto inserendolo nei propri sviluppi.
Al pari del jazz viene allora spontaneo pensare come uno degli elementi cardine del successo dell’open source sia il piacere della persona di poter esprimere propri punti di vista per elaborare soluzioni che si incontrano e combinano con il lavoro e le prospettive degli altri partner in sfide giocate su cannovacci comuni.
Essendo nell’anno in cui si celebrano i 25 anni della nascita di uno dei progetti cardine del software open source, ovvero il sistema operativo Linux, il software capace di gestire quasi ogni tipo di dispositivo computerizzato, viene facile dilungarsi in qualche riflessione su questo importante fenomeno per il peso che le componenti software, a iniziare dai processi produttivi, hanno assunto nell’attuale società tele-mediata. In effetti, anche in questo settore, da sempre territorio privilegiato dei software professionali proprietari, si intravedono cambiamenti significativi.
La pervasione del mondo del business
Nei contesti generali del business i software di gestione e strumentali sono da tempo tra gli asset più importanti. La cosa è ancor più vera negli attuali scenari in cui è possibile (e auspicabile) declinare quasi tutte le relazioni e i processi lavorativi in termini digitali per le possibilità che si aprono a livello operativo e di sviluppo esterno in ambienti tecnologicamente iperconnessi.
Le realtà operative efficienti e desiderose di rimanere in corsa si curano allora di tenere allineati, se non altamente avanzati, i propri applicativi software in ogni fase della loro vita aziendale per i riverberi che essi hanno sulla efficienza e qualità del proprio lavoro e dei propri prodotti/servizi. Una problematica correlata alla evoluzione delle piattaforme informatiche aziendali è così la scelta delle soluzioni da adottare, che sempre più spesso, però, oggi propone un bivio tra software proprietari e software open source.
Ciò che fino a qualche anno indietro poteva essere annoverata come una decisione avventuristica e ideologica – provare a sganciarsi da aziende private proponenti software proprietari per utilizzare applicazioni “aperte” ai contributi di tutti gli sviluppatori interessati a quel tipo di progetto – è divenuta ora, sull’onda di internet e delle nuove realtà aziendali con essa create, una soluzione non solo possibile ma, in molti casi, anche consigliabile e saggia.
Il successo dei software open è ormai cosa acclarata. Le infrastrutture e le piattaforme di internet, con tutte le loro articolazioni ed estensioni che includono il boom dei software di virtualizzazione del computing e dello storage (applicazioni cloud), sono basate per la parte preponderante su tale progetti, e neppure i software “proprietari” riescono ormai a immunizzarsi da questo genere di sviluppi.
Così, può capitare che sia necessario commissionare un’indagine per controllare i rischi a cui ci si espone – in termini di eventuali proprietà intellettuale violate e di sicurezza – nell’utilizzare delle strumentazioni software commerciali per scoprire altre verità sulla natura di questi prodotti esiziali. Tali indagini sono abbastanza consuete nei casi di acquisizione di asset provenienti da operazioni aziendali di Merger and Acquisition (M&A).
Nello specifico l’analisi commissionata alla società Black Duck Software, che ha esaminato oltre 200 applicazioni commerciali, ha infine certificato che componenti software di natura open source sono presenti nel 95% delle applicazioni analizzate (2016). La ragione principale di questo risultato è che gli sviluppatori trovano semplice ed efficiente riutilizzare, sia per una questione di costo che di funzionalità, componenti open source che vengono continuamente alimentate dalla creatività e dalle best practice collettive per risolvere determinate esigenze, che incardineranno poi all’interno dei propri progetti.
Potrebbe sembrare un risultato clamoroso ripensando alle lunghe battaglie ideologiche e commerciali di chi difendeva i diritti di sviluppare e vendere software proteggendone distribuzione e brevetti, accusando i modelli diversi di sviluppo di inefficienza e scarsa professionalità, finanche di freno alla innovazione perché non economicamente incentivanti. La storia, soprattutto l’attuale, sta dimostrando l’esatto contrario tanto che anche l’hardware, sempre più “softwarizzato”, sta prendendo la stessa via.
La testa di ponte
Nello specifico, approfondiremo qui il discorso su Linux, divenuto ormai più che un sistema operativo una testa di ponte per la creazione di un vero e proprio ecosistema coinvolgente progetti e dispositivi tecnologici diversissimi. Linux oggi lo ritroviamo praticamente ovunque, attivo su miliardi di dispositivi: dai frigoriferi alle televisioni, dai termostati alla Stazione Spaziale Internazionale, dai modem casalinghi agli apparati di rete degli operatori telefonici, dai droni e autoveicoli ai più comuni smartphone (Android), per non menzionare i milioni di server su cui risiedono le applicazioni dei vari social network o cloud provider come Amazon, Google, Facebook, IBM e, ultima arrivata ma già entusiastamente convertita, la stessa “monopolistica” Microsoft (Azure) (The register, 2014).
Una premessa va qui fatta. La storia del software FOSS (Free Open Source Software) è lunga (anni ‘80) e molto articolata. La sua vita e gli sviluppi interessano argomenti di politica economica, etica, estetica, pratiche scientifiche e filosofia del cyber world (Chopra, Dexter, 2008). Essa scorre dunque sui delicati crinali di una opera di governance progettuale che deve saper gestire e mantenere delle community distribuite nel mondo, altamente variegate e diversamente motivate (per approfondire un fenomeno così densamente pregnante per i suoi innumerevoli risvolti rimandiamo al bellissimo libro di Pekka Himanen “L’etica hacker e lo spirito dell’età dell’informazione”).
Ad ogni modo, Linux è solo una parte di questa storia. Essa si anima però nel 1991, lo stesso anno in cui, insieme alla messa a disposizione in rete del primo kernel del sistema operativo omonimo da parte del giovane finlandese Linus Torvalds e alla sua richiesta di aiuto per farlo evolvere cooperativamente, Tim Berners-Lee lancia, attraverso il primo sito web installato presso i laboratori del CERN di Ginevra, il paradigma dell’hyperlink come sistema di condivisione delle informazioni in internet.
È evidente che i due eventi innescano una spirale sinergica che li accomuna e ne accelera le rispettive dinamiche popolarizzandone, ma anche smussandone, in senso certamente meno elitario, i fini. Ad esempio, rispetto ad un approccio “controculturalistico” che si ribella alle logiche economiche e culturali del copyright e delle grandi corporation, i puristi dell’open source hanno avuto e hanno molto da recriminare nel confronti delle aperture che l’ecosistema degli sviluppi rifacentesi al mondo Linux hanno riservato alle industrie dell’ICT nel momento in cui queste hanno deciso di investire contribuendo direttamente, tramite sponsorizzazioni e soprattutto il proprio personale, ai relativi sviluppi, che diventano spesso la base per i loro prodotti.
Al positivo ampliamento della base partecipativa, non tollerante politiche discriminatorie, si contrappone così il sempre vivo sospetto che avere come compagni di strada delle grandi aziende comporti il rischio di dover stare attenti a non piegare i progetti ai soli interessi “forti” e commerciali visto lo sbilanciamento di potere che si potrebbe creare tra la forza progettuale ed esecutiva fornita a fronte di un impegno amatoriale e la spinta puntuale, mirata e costante, derivante da obiettivi professionali remunerati economicamente.
Dicevamo che Linux è solo una parte del mondo open source, il quale nella sua estensione include sia sviluppi riguardanti le piattaforme puramente software con le quali in rete navighiamo, pubblichiamo, comunichiamo, lavoriamo e ci divertiamo, sia sviluppi ibridi che legano intimamente hardware e software, di cui le tecnologie virtualizzate (cloud) delle funzionalità di computing, storage e networking sono i più freschi esempi.
Tuttavia, Linux è stato in un certo senso il big bang di tali sviluppi perché si è offerto originariamente ai più – persone comuni e aziende indipendenti dai grandi gruppi del settore high-tech – come l’anello mancante per liberare le energie progettuali in applicativi software che hanno a disposizione un sistema operativo completamente alternativo, flessibile e free capace di gestire lo stesso hardware (in primis i processori) offerti commercialmente dall’industria di base del computing.
Gli architetti di futuro
L’insieme di questi progetti assume un’utilità di funzione primaria nell’offrire una valida palestra in cui le persone possono liberamente apprendere ed esercitare, con potere di intervento nel mondo reale, questa nuova forma di alfabetizzazione e di costruzione digitale così vitale per le nostre società.
Come recentemente affermato in una disanima critica sullo stato del nostro vivere alla luce delle opportunità e dei vincoli offerti dalle piattaforme digitali, la regista e scrittrice canadese Astra Taylor nota che
nel senso più vero, i programmatori sono i nuovi pianificatori urbani che modellano la frontiera virtuale nello spazio che occupiamo, costruiscono le casette in cui adattiamo le nostre vite e ritagliano le rotte che percorriamo – sono questi i motivi per cui abbiamo bisogno di imparare a scrivere i programmi software (2014, p. 109).
Una doverosa puntualizzazione va introdotta prima di avanzare sul tema e riguarda l’architettura stessa del sistema operativo Linux che possiamo descrivere come composta da un kernel, la componente fondamentale, e, eventualmente, un insieme correlato di applicativi software a supporto delle necessità di interfacciamento e dell’esperienza utente.
Il kernel è la parte di software che intermedia/controlla il sottostante hardware mettendone a disposizione le risorse (memoria, processore, periferiche, sensori, ecc.) ai programmi operativi installati sullo stesso computer.
Nei termini computeristici Linux si riferisce alla sola parte kernel. Questo kernel, come dicevamo, è disponibile per gli usi più svariati e, nel caso lo si utilizzi per la gestione di un personal computer, viene di solito corredato di applicativi software di generale utilità collezionati variabilmente in appositi packaging miranti a soddisfare le necessità funzionali ed estetiche di diverse classi di utenti, sia professionali che amatoriali – nel tempo si sono affermati diversi distributori quali Debian, Fedora, Ubuntu, Red Hat, Suse, ecc.
La flessibilità di tale architettura, benchè criticata per la frammentazione che genera, ne spiega altresi la forza diffusiva potendola adattare a differenti ambienti progettuali. In effetti, come afferma il responsabile della Linux Foundation, Jim Zemlin, nel tempo la comunità di sviluppo è riuscita a ottenere risultati incredibili.
Il kernel di Linux è prodotto da 53.000 file sorgenti contenenti 21 milioni di linee di codice. I programmatori distribuiti in tutto il mondo sono 3.900: ogni singolo giorno nel kernel di Linux sono aggiunte 10.800 linee di codice, 5.300 sono rimosse e 1.800 sono modificate. In media, esso cambia 7-8 volte ogni ora, in ogni giorno e per 365 giorni all’anno. Nella storia dello sviluppo del software non vi è paragone di un lavoro in scala così prolifico ed eccezionale (Infoworld, 2016).
Questi numeri sono riferiti solo allo sviluppo del kernel e dunque non tengono conto di tutti gli altri sviluppi, ad esempio quelli riguardanti gli applicativi di supporto alla user experience. Dal punto di vista della governance, la Linux Foundation è la responsabile degli sviluppi e della documentazione del kernel, che vengono coordinati tramite sistemi di repository e versioning (Github) basati su Git, un tool messo a disposizione nel 2005 da Linus Torvalds – il rilascio delle nuove versioni del kernel, offerte sotto le licenze open GPL v2, fluiscono poi verso la moltitudine di distributori Linux.
Per avere una visione più esatta sullo stato dell’arte dell’ultima versione del kernel Linux e della complessa governance che questa enorme opera di ingegneria tecnica e sociale comporta rimandiamo al documento rilasciato dalla Linux Foundation proprio in occasione del suo venticinquesimo anniversario.
Sulla varietà, quantita e partecipanti dei progetti in corso su uno dei più grandi repository di software open source è invece disponibile l’ultimo report “navigabile” di Github.
Riferimenti
Black Duck Software, 2016, The State of Open Source Security in Commercial Applications.
Chopra, S., Dexter, S., 2014, Decoding Liberation: The Promise of Free and Open Source Software, London, Routledge.
Himanen, P., 2001, L’etica hacker e lo spirito dell’età dell’informazione, Milano, Feltrinelli.
“Linux at 25: An ecosystem, not only an OS“, www.infoworld.com, 22/8/2016.
“Redmond top man Satya Nadella: ‘Microsoft LOVES Linux’“, www.theregister.co.uk, 20/10/2014.
Taylor, A., 2014, The People’s Platform: Taking Back Power and Culture in the Digital Age, New York, Metropolitan Books.