Accueil / Chroniques / Pourquoi Software Heritage crée un patrimoine mondial du logiciel
37,6
π Économie π Numérique

Pourquoi Software Heritage crée un patrimoine mondial du logiciel

Stefano Zacchiroli
Stefano Zacchiroli
professeur en informatique à Télécom Paris (IP Paris)
En bref
  • Software Heritage a été lancé en 2015 en tant qu’initiative de préservation numérique.
  • Son ambition : collecter, préserver et partager tous les logiciels disponibles publiquement sous forme de code source.
  • La préservation du code source des logiciels est également importante pour la recherche et l’industrie, car ils sont de plus en plus utilisés dans ces domaines.
  • Les logiciels libres sont également omniprésents dans les produits informatiques de nos jours – par exemple, dans les appareils IoT, les téléphones, les voitures et les caméras.
  • L’objectif de ces bibliothèques était d’accumuler le maximum de connaissances en un seul endroit. Software Heritage est la Bibliothèque d’Alexandrie pour ce bien moderne précieux qu’est le code source des logiciels.

Soft­ware Heri­tage a été lan­cé en 2015 en tant qu’i­ni­tia­tive de pré­ser­va­tion numé­rique. Son ambi­tion : col­lec­ter, pré­ser­ver et par­ta­ger tous les logi­ciels dis­po­nibles publi­que­ment sous forme de code source. Une telle archive logi­cielle uni­ver­selle garan­ti­ra la fia­bi­li­té ou l’o­ri­gi­na­li­té du code source, de sorte que la ver­sion « offi­cielle » non modi­fiée du code est ain­si pré­ser­vée à jamais, quelles que soient les modi­fi­ca­tions ulté­rieures qui peuvent y être apportées.

Une telle pré­ser­va­tion est impor­tante parce que la créa­tion d’un logi­ciel demande beau­coup d’éner­gie intel­lec­tuelle et contient des connais­sances tech­niques avan­cées, sous forme d’al­go­rithmes, qui ne sont com­pré­hen­sibles qu’en lisant le code source du logi­ciel. « Ces connais­sances peuvent conte­nir des inno­va­tions, de sorte que le code source de cer­tains logi­ciels peut être aus­si inno­vant qu’un article scien­ti­fique ou qu’un bre­vet », explique Ste­fa­no Zac­chi­ro­li de Télé­com Paris, l’un des fon­da­teurs de Soft­ware Heri­tage. L’UNESCO a recon­nu la néces­si­té d’é­vi­ter la perte de ces connais­sances tech­niques impor­tantes dans « Le code source des logi­ciels : un patri­moine – L’Ap­pel de Paris »1.

Soft­ware Heri­tage a ras­sem­blé la plus grande archive publique de logi­ciels sous forme de code source, com­pre­nant plus de 10 mil­liards de fichiers de code source uniques et plus de deux mil­liards de com­mits – les révi­sions internes des logi­ciels uti­li­sées par les déve­lop­peurs – issus de plus de 160 mil­lions de pro­jets de déve­lop­pe­ment. Par­mi les plus célèbres : le code source du sys­tème de navi­ga­tion d’Apol­lo 11, qui per­mit le pre­mier pas sur la Lune, ou celui du navi­ga­teur NCSA Mosaic, qui popu­la­ri­sa l’utilisation du web. La taille de l’ar­chive est actuel­le­ment d’en­vi­ron un péta­oc­tet, ce qui est signi­fi­ca­tif mais pas aus­si grand que les archives de vidéos, par exemple. Le pro­jet a été fon­dé en 2016 par Rober­to Di Cos­mo (Inria et Uni­ver­si­té de Paris) et Ste­fa­no Zac­chi­ro­li (Télé­com Paris) en col­la­bo­ra­tion avec Inria et l’U­NES­CO. Il compte désor­mais un cer­tain nombre de spon­sors issus des sec­teurs pri­vé et public, y com­pris le CNRS.

La pré­ser­va­tion du code source et des logi­ciels est éga­le­ment impor­tante pour la recherche et l’in­dus­trie, car ils sont de plus en plus uti­li­sés dans ces domaines. En effet, une grande par­tie des connais­sances tech­niques et scien­ti­fiques déve­lop­pées aujourd’hui réside dans les logi­ciels, qui doivent donc être conser­vés pour garan­tir la repro­duc­ti­bi­li­té des expé­riences et des résul­tats, base de la démarche scientifique.

Cette approche se retrouve déjà dans des mou­ve­ments comme l’Open Access, par exemple, qui garan­tit que les articles scien­ti­fiques sont dis­po­nibles sur le long terme et acces­sibles à tous. Elle s’in­carne éga­le­ment dans le mou­ve­ment de l’Open Data, qui vise à garan­tir que les don­nées scien­ti­fiques sont ouvertes et par­ta­gées uni­ver­sel­le­ment. Soft­ware Heri­tage contri­bue à ces efforts en assu­rant l’ar­chi­vage à long terme des logi­ciels sous forme de code source. Par­fois, le logi­ciel lui-même consti­tue une avan­cée scien­ti­fique majeure, et le code source ren­ferme une connais­sance pré­cieuse qui doit être pré­ser­vée pour des réuti­li­sa­tions ultérieures.

Les logi­ciels libres sont éga­le­ment omni­pré­sents dans les pro­duits infor­ma­tiques de nos jours – par exemple, dans les appa­reils IoT, les télé­phones, les voi­tures et les camé­ras. La dif­fi­cul­té ici est que tout le monde peut modi­fier ces logi­ciels, de sorte que des variantes d’un logi­ciel deviennent par­tie inté­grante des nou­veaux appa­reils. Soft­ware Heri­tage four­nit un endroit où la ver­sion ori­gi­nelle du logi­ciel peut être sto­ckée avec des « iden­ti­fiants » per­met­tant de recon­naître la ver­sion spé­ci­fique du logi­ciel ins­tal­lé dans un appa­reil don­né. Ces iden­ti­fiants per­mettent le sui­vi des vul­né­ra­bi­li­tés du logi­ciel dans des pro­duits fabri­qués ulté­rieu­re­ment et de recon­naître des pro­duits infor­ma­tiques qui doivent être « réparés ».

La base de données, comment est-elle construite ?

Soft­ware Heri­tage archive prin­ci­pa­le­ment le code source en par­cou­rant ou en « craw­lant » les pla­te­formes publiques uti­li­sées pour déve­lop­per des logi­ciels libres de manière col­la­bo­ra­tive. Les plus connues sont GitHub et Git­Lab. Une autre méthode consiste à faire appel à des cher­cheurs qui « poussent » acti­ve­ment des logi­ciels vers les archives. Par exemple, en France, HAL est une pla­te­forme popu­laire, finan­cée par des fonds publics et en libre accès, uti­li­sée par la com­mu­nau­té scien­ti­fique pour dépo­ser des articles sous forme de pre­prints. Le point clé à noter ici : les logi­ciels, et en par­ti­cu­lier les logi­ciels libres, sont mas­si­ve­ment dupli­qués de nos jours. Le même mor­ceau de code source peut ain­si se trou­ver simul­ta­né­ment dans des mil­liers, voire des mil­lions, d’en­droits dif­fé­rents sur Internet.

Pour faire face à ce pro­blème, Soft­ware Heri­tage struc­ture l’ar­chive comme un graphe géant (dans une struc­ture appe­lée DAG de Merkle), qui est entiè­re­ment dé-dupli­qué. Cela signi­fie que si le même fichier de code source est sto­cké dans des mil­liers ou des mil­lions d’emplacements dif­fé­rents, il ne sera archi­vé qu’une seule fois, tout en gar­dant la trace de tous les dif­fé­rents empla­ce­ments. C’est le cas non seule­ment pour des fichiers indi­vi­duels, mais aus­si pour des réper­toires entiers de code source et des com­mits, qui peuvent être très volu­mi­neux pour des logi­ciels importants.

Il est essen­tiel de pro­cé­der ain­si pour contrô­ler la taille de l’ar­chive et pour mini­mi­ser la dupli­ca­tion des infor­ma­tions qui doivent être sau­ve­gar­dées. C’est éga­le­ment utile pour les cas d’u­ti­li­sa­tion scien­ti­fique. En regar­dant ce gra­phique glo­bal du code public, vous pou­vez iden­ti­fier qui a réfé­ren­cé un de vos logi­ciels et qui l’a peut-être uti­li­sé pour en créer un autre. En un sens, ce gra­phique per­met de mesu­rer l’im­pact des logi­ciels déve­lop­pés par les cher­cheurs et les déve­lop­peurs de logi­ciels libres.

« Soft­ware Heri­tage est une ‘grande biblio­thèque de code source’, ana­logue aux grandes biblio­thèques du monde antique », explique Zac­chi­ro­li. « L’ob­jec­tif de ces biblio­thèques était d’ac­cu­mu­ler le maxi­mum de connais­sances en un seul endroit. Soft­ware Heri­tage est la Biblio­thèque d’Alexandrie pour ce bien moderne pré­cieux qu’est le code source des logi­ciels. » Nous pou­vons visi­ter cette biblio­thèque du patri­moine logi­ciel pour trou­ver le code qui nous inté­resse, peut-être parce qu’il a dis­pa­ru de son lieu d’hé­ber­ge­ment d’o­ri­gine, ou peut-être pour ana­ly­ser toute l’é­ten­due des connais­sances qui y sont stockées.

Propos recueillis par Isabelle Dumé

Pour plus d’informations : https://​www​.soft​wa​re​he​ri​tage​.org/

1https://​en​.unes​co​.org/​f​o​s​s​/​p​a​r​i​s​-​c​a​l​l​-​s​o​f​t​w​a​r​e​-​s​o​u​r​c​e​-code

Auteurs

Stefano Zacchiroli

Stefano Zacchiroli

professeur en informatique à Télécom Paris (IP Paris)

Les recherches de Stefano Zacchiroli portent sur les biens communs numériques, l'ingénierie logicielle à code source ouvert, la sécurité informatique et la chaîne d'approvisionnement des logiciels. Il est cofondateur et directeur technique de Software Heritage, la plus grande archive publique de code source de logiciels. Il est développeur Debian depuis 2001 et a été chef du projet Debian de 2010 à 2013. Il est un ancien directeur du conseil d'administration de l'Open Source Initiative (OSI) et lauréat du prix O'Reilly Open Source 2015.

Soutenez une information fiable basée sur la méthode scientifique.

Faire un don