Software Heritage è la Biblioteca d'Alessandria dei programmi informatici

Software Heritage è la Biblioteca d'Alessandria dei programmi informatici

Abbiamo intervistato i due italiani che collaborano all'archivio digitale per la salvaguardia di tutti i software pubblici.
12 maggio 2017, 9:32am

Questa intervista è stata realizzata a Milano in occasione di Codemotion 2016, la più grande conferenza italiana a tema tech. Non perdere le prossime edizioni di Codemotion.

Alla fine degli anni Ottanta, il mio professore di Informatica si laureava: erano gli anni in cui LaTeX si stava diffondendo in tutto il mondo. LaTeX è un software che permette di processare ed editare testi scientifici, categorizzarne il testo in classi e compilare il testo/sorgente che scriviamo — rendendolo a tutti gli effetti un vero e proprio linguaggio di programmazione.

A differenza di tanti suoi coetanei, il mio professore non si trovava particolarmente bene con LaTeX: preferiva un altro software simile a XY Write — un word processor con alte possibilità di personalizzazione in voga durante l'era DOS e i primi anni di Windows 3.1. Diversi anni e peripezie dopo, la versione cartacea della sua tesi si trova ad ammuffire in qualche scantinato ed è inaccessibile nella sua forma digitale perché priva di un software capace di convertirla in un formato leggibile. Insomma, la tesi del mio professore è una delle tante vittime dell'obsolescenza digitale.

Con il passare degli anni e il moltiplicarsi dei software vittime di questo tipo di dinamica, sono molti gli informatici e i ricercatori che si sono impegnati in progetti per la salvaguardia del codice sorgente di tutti quei servizi che saranno inevitabilmente destinati all'obsolescenza. Fra questi, uno dei progetti di maggior rilievo è Software Heritage, nato con l'obiettivo di salvaguardare i contenuti digitali dal rischio dell'obsolescenza conservandone il codice sorgente.

Questo progetto nasce in Francia ma tra i suoi fondatori ci sono anche degli italiani: Roberto di Cosmo e Stefano Zacchiroli. Il primo è uno degli eroi del software libero, autore di "Hijacking the world: the dark side of Microsoft " ed oggi uno degli scienziati informatici più apprezzati in Francia e direttore dell'IRILL (Initiative pour la Recherche et l'Innovation sur le Logiciel Libre). Stefano Zacchiroli, anch'egli scienziato informatico, è stato presidente del Debian Project (Debian è il sistema operativo a Software Libero per eccellenza) e dell'Open Source Initiative.

"Il software è la chiave per accedere alle informazioni e una parte fondamentale del patrimonio umano."

La dichiarazione d'intenti del Software Heritage, è questa: "Software is the key to access information and a fundamental part of human heritage". Il suo scopo principale di è paragonabile a quello di ogni biblioteca nata in epoca classica, quando ci si era resi conto che l'umanità non avrebbe potuto permettersi di perdere la sua cultura scritta. È proprio per questo motivo che Software Heritage è stata paragona ad una moderna — e ben più sicura — Biblioteca d'Alessandria.

L'ecosistema è piuttosto semplice: Software Heritage conserva codici provenienti dalle piattaforme di hosting come GitHub o BitBucket, miliardi di linee di codice riguardanti i campi più disparati, dai progetti universitari alle mod per Skyrim. Per controllare se un software è già presente in archivio, basta fare drag & drop di uno dei file che testerà l'esistenza di un codice di funzione crittografica irreversibile chiamato md5 — che possiamo immaginare come il dna di un file. Se due file risultano identici al 100% con md5, significa che sono uno la copia esatta dell'altro. Ad esempio ho testato la presenza di questa mod di Skyrim che è presente a tutti gli effetti sull'Heritage. L'esistenza del Software Heritage negli anni potrebbe facilitare un lavoro di ricerca sulle possibilità di conversione e rilettura di testi digitali che altrimenti farebbero la fine di quelli del mio professore.

"Siamo entrati nell'era del web semantico e, in futuro, serve uno strumento che garantisca la leggibilità dei software per lo sviluppo dei Linked Data."

Riproducibilità è una parola chiave dell'informatica, così come della scienza in generale. Assicurare la tracciabilità e l'affidabilità delle versioni di un software negli anni diverrà sempre più importante, sia nel caso di applicativi destinati a morte certa che per questioni che diverranno sempre più urgenti: siamo entrati nell'era del web semantico e in futuro sarà importante avere uno strumento che garantisca la leggibilità di tutti quei software professionali o meno che hanno accompagnato lo sviluppo dei Linked Data.

Fa impressione notare come alcune aziende si siano avvicinate al progetto, attratte dalla nobile causa: la stessa Microsoft ha aperto centinaia di propri repository, così come Huawei. Ma anche dal lato accademico ci sono partecipazioni notevoli: è entrata in gioco infatti anche l'ALMA Mater di Bologna: il primo membro accademico a fornire uno spazio di 65 terabyte come aree di memorizzazione temporanea per l'Heritage.

In Francia Di Cosmo e Zacchiroli hanno scoperto un ambiente fertile, una combinazione nel quale le idee di giovani dotati hanno combaciato con le opportunità di uno Stato attento all'amministrazione elettronica. Neanche a farlo apposta, mentre scrivo è stato eletto un Presidente, Emmanuel Macron, ex Ministro dell'Economia, dell'Industria e del Digitale. Nella seguente intervista a Zacchiroli abbiamo parlato di argomenti sia tipicamente informatici che politici e morali e sulla necessità di creare un patrimonio mondiale del codice.

Motherboard: Come funziona Software Heritage? Si tratta di un indicizzatore di codice oppure di un vero e proprio mirror — ovvero, una copia esatta di un insieme di dati — che mantiene delle copie carbone aggiornate del codice?

Software Heritage è un archivio di tutto il software pubblicamente accessibile in formato codice sorgente, in quanto bene comune dell'umanità che non possiamo correre il rischio di perdere. Software Heritage è quindi in primis un mirror di software disponibile altrove, che permette di recuperare copie carbone dello stesso, comprensive di tutta la storia del suo sviluppo (in gergo "commit" e altre informazioni simili), nel caso in cui dovesse sparire da dove era inizialmente ospitato. In seconda battuta Software Heritage è anche un 'indicizzatore' di codice, come necessità pratica che sorge rapidamente quando si vuole cercare qualcosa in un archivio di queste dimensioni.

Volendo fare una stima, quanto è imponente in termini di byte il lavoro che Software Heritage si prefigge di svolgere?

Sebbene ancora in beta, il nostro archivio contiene già un mirror completo e aggiornato di GitHub, più la quasi totalità della storia delle release dei progetti Debian e GNU. Il tutto corrisponde a circa 3 miliardi di file sorgenti unici e 700 milioni di commit, che occupano circa 200 TB. La stima del lavoro che resta da fare è ovviamente un esercizio molto difficile, ma in prima approssimazione pensiamo ci sia almeno altrettanto (ovvero un fattore 2x) da archiviare. Più ovviamente ciò che di nuovo viene costantemente pubblicato.

La riproducibilità digitale, in moltissimi casi, ha di fatto eliminato la necessità di razionalizzare le operazioni di archiviazione: io stesso conservo migliaia di file di fatto inutili. Voi come state trattando questo problema?

Esistono due grossi approcci all'archiviazione digitale. Uno di tipo museale, che prevede solitamente di identificare oggetti (software, nel nostro caso) "interessanti" e di archiviare per ognuno di essi tutto ciò che li riguarda, per potere poi ricostruire e raccontare la loro storia senza tralasciare nulla.

In Software Heritage, optiamo per un approccio nativamente esaustivo che prevede in primis l'archiviazione di tutte le grandi piattaforme di code-hosting (GitHub, Bitbucket, SourceForge, GitLab, etc.) e le distribuzioni di software esistenti (Ubuntu o Debian, ma anche i repository dei vari package manager, come npm, pip, etc.). Inoltre permettiamo agli utenti la segnalazione di altro software, disponibile online in maniera meno sistematica/organizzata, che ha bisogno di essere aggiunto al nostro archivio. Siamo convinti che l'approccio museale non sia incompatibile con il nostro, ma che possa essere implementato in seconda battuta, appoggiandosi al nostro archivio per tutto ciò che riguarda il codice sorgente.

In che modo l'ecosistema della programmazione si sta attrezzando per evitare incidenti come quello avvenuto nel 2016 a seguito della rimozione di un codice sorgente pubblicato su un database online e che ha quasi rotto internet?

Quel caso specifico fu dovuto a più fattori. Alcuni legati alla indisponibilità del codice sorgente (e quindi alla sua non archiviazione) ed altri più tecnici dovuti alla gestione dei pacchetti. Software Heritage può aiutare a risolvere la prima parte del problema, garantendo che il software pubblicato da qualche parte sul web resti disponibile anche nel nostro archivio. Questo permetterà di implementare meccanismi automatici di fallback che i package manager potrebbero utilizzare, usando Software Heritage come "piano B". Stiamo già lavorando in questo senso con le varie iniziative che si interessano ai cosiddetti reproducible builds, che sono tra i primi progetti a scontrarsi con la periodica sparizione di versioni specifiche di software pubblicati sul web.

Il lavoro di archiviazione di codice sorgente è eminentemente politico, nel senso che risponde a un bisogno reale ed urgente, sebbene ancora poco percepito, della nostra società."

È possibile definire il lavoro di Software Heritage anche politico? La tendenza alla centralizzazione del mondo digitale osservata negli ultimi anni rischia di snaturare la vostra missione a causa di una violenta istituzionalizzazione?

Il lavoro di archiviazione di codice sorgente è eminentemente politico, nel senso che risponde a un bisogno reale ed urgente, sebbene ancora poco percepito, della nostra società. Il software "media" l'accesso all'informazione digitale: senza software non possiamo vedere le foto delle nostre vacanze, ascoltare musica, o leggere estratti conto e cartelle cliniche. In particolare, è il codice sorgente (e non i programmi eseguibili) che contiene la 'conoscenza' necessaria ad interpretare tutte le informazioni digitali che fanno parte della nostra vita quotidiana. Non archiviarlo significa prendere rischi enormi in termini di perennità di tutte le altre forme di conoscenza che sono oggi salvate in formati digitali. La centralizzazione di questa missione però non sarebbe un bene: il vantaggio dell'informazione digitale è che si può copiare a costo irrisorio, ed ogni singola copia di qualcosa che rischia di andare persa è utile solo se accessibile a tutti.

"Serve un modello di business non-profit sostenibile per l'archiviazione software."

Al netto della vostra collaborazione con le istituzioni francesi, quanto è essenziale il ruolo dei governi nazionali per questo tipo di operazione? Fino ad oggi una buona parte del patrimonio culturale dell'umanità è stato normato attraverso le istituzioni nazionali —Tutto ciò che appartiene al mondo digitale, però, trascende la spazialità dei confini e dunque spesso sfugge dalla governabilità delle istituzioni tradizionali. Come si declina questo discorso nel caso di Software Heritage?

L'archiviazione del codice sorgente a lungo termine deve essere sostenibile non solo dal punto di vista tecnico, ma anche da quello finanziario. La nostra visione è che tale sostenibilità non possa essere delegata a modelli di business for-profit perché il loro orizzonte di vita o di strategia non è abbastanza lungo; per non parlare delle sempre rischiose commistioni tra interesse pubblico e interessi privati.

Serve quindi un modello di business non-profit sostenibile per l'archiviazione software. Per questo motivo Software Heritage è stato lanciato da Inria (centro di ricerca nazionale francese), ma ha vocazione a diventare una non-profit internazionale indipendente nel medio termine. Inria ha esperienza in questo tipo di roadmap istituzionale, essendo stato uno dei 3 fondatori del W3C, oggi organismo indipendente.

Il giusto equilibrio però è dato da un mix di fonti di finanziamento: una "long tail" di finanziatori che garantisca che nessun singolo attore detenga una percentuale troppo importante delle entrate dell'organizzazione, e finanziamenti pubblici, proveniente da più paesi o anche organizzazioni sovranazionali. Per questo motivo il nostro attuale programma di sponsoring non discrimina sul tipo di entità finanziatrice, anche se finora abbiamo riscontrato maggiore interesse da parte di aziende, per ovvi motivi di ritorno di immagine.

Cosa succede se l'archivio di Software Heritage si rompe?

Diciamo che non si deve rompere! Scherzi a parte, sebbene il rischio zero non esista mai, stiamo mettendo in atto tutti gli approcci previsti dallo stato dell'arte per minimizzare tale rischio, partendo ovviamente dal mantenere più copie di tutto l'archivio. Attualmente ne abbiamo due, in data center diversi qua in Francia, più una terza in corso d'opera ospitata da un public cloud provider che è tra i nostri primi partner. L'obiettivo finale è avere decine di copie complete (mirror) dell'archivio distribuite geograficamente su tutto il pianeta, sia online che offline.

Inoltre, tutto il software che noi scriviamo per realizzare e mantenere il nostro archivio è, esso stesso, software libero (solitamente sotto licenze di tipo copyleft). Questo permette a chiunque di verificare come operiamo, identificare e segnalarci eventuali bug e, perché no, darci una mano in questa importante missione!