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 Her­itage a été lancé en 2015 en tant qu’ini­tia­tive de préser­va­tion numérique. Son ambi­tion : col­lecter, préserv­er et partager tous les logi­ciels disponibles publique­ment sous forme de code source. Une telle archive logi­cielle uni­verselle garan­ti­ra la fia­bil­ité ou l’o­rig­i­nal­ité du code source, de sorte que la ver­sion « offi­cielle » non mod­i­fiée du code est ain­si préservée à jamais, quelles que soient les mod­i­fi­ca­tions ultérieures qui peu­vent 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’én­ergie intel­lectuelle et con­tient des con­nais­sances tech­niques avancées, sous forme d’al­go­rithmes, qui ne sont com­préhen­si­bles qu’en lisant le code source du logi­ciel. « Ces con­nais­sances peu­vent con­tenir des inno­va­tions, de sorte que le code source de cer­tains logi­ciels peut être aus­si inno­vant qu’un arti­cle sci­en­tifique ou qu’un brevet », explique Ste­fano Zac­chi­roli de Télé­com Paris, l’un des fon­da­teurs de Soft­ware Her­itage. L’UNESCO a recon­nu la néces­sité d’éviter la perte de ces con­nais­sances tech­niques impor­tantes dans « Le code source des logi­ciels : un pat­ri­moine – L’Ap­pel de Paris »1.

Soft­ware Her­itage a rassem­blé la plus grande archive publique de logi­ciels sous forme de code source, com­prenant 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 util­isées par les développeurs – issus de plus de 160 mil­lions de pro­jets de développe­ment. Par­mi les plus célèbres : le code source du sys­tème de nav­i­ga­tion d’Apol­lo 11, qui per­mit le pre­mier pas sur la Lune, ou celui du nav­i­ga­teur NCSA Mosa­ic, qui pop­u­lar­isa l’utilisation du web. La taille de l’archive est actuelle­ment d’en­v­i­ron un pétaoctet, ce qui est sig­ni­fi­catif mais pas aus­si grand que les archives de vidéos, par exem­ple. Le pro­jet a été fondé en 2016 par Rober­to Di Cos­mo (Inria et Uni­ver­sité de Paris) et Ste­fano Zac­chi­roli (Télé­com Paris) en col­lab­o­ra­tion avec Inria et l’UNESCO. Il compte désor­mais un cer­tain nom­bre de spon­sors issus des secteurs privé et pub­lic, y com­pris le CNRS.

La préser­va­tion du code source et des logi­ciels est égale­ment impor­tante pour la recherche et l’in­dus­trie, car ils sont de plus en plus util­isés dans ces domaines. En effet, une grande par­tie des con­nais­sances tech­niques et sci­en­tifiques dévelop­pées aujourd’hui réside dans les logi­ciels, qui doivent donc être con­servés pour garan­tir la repro­ductibil­ité des expéri­ences et des résul­tats, base de la démarche scientifique.

Cette approche se retrou­ve déjà dans des mou­ve­ments comme l’Open Access, par exem­ple, qui garan­tit que les arti­cles sci­en­tifiques sont disponibles sur le long terme et acces­si­bles à tous. Elle s’in­car­ne égale­ment dans le mou­ve­ment de l’Open Data, qui vise à garan­tir que les don­nées sci­en­tifiques sont ouvertes et partagées uni­verselle­ment. Soft­ware Her­itage con­tribue à ces efforts en assur­ant l’archivage à long terme des logi­ciels sous forme de code source. Par­fois, le logi­ciel lui-même con­stitue une avancée sci­en­tifique majeure, et le code source ren­ferme une con­nais­sance pré­cieuse qui doit être préservée pour des réu­til­i­sa­tions ultérieures.

Les logi­ciels libres sont égale­ment omniprésents dans les pro­duits infor­ma­tiques de nos jours – par exem­ple, dans les appareils IoT, les télé­phones, les voitures et les caméras. La dif­fi­culté ici est que tout le monde peut mod­i­fi­er ces logi­ciels, de sorte que des vari­antes d’un logi­ciel devi­en­nent par­tie inté­grante des nou­veaux appareils. Soft­ware Her­itage four­nit un endroit où la ver­sion orig­inelle du logi­ciel peut être stock­ée avec des « iden­ti­fi­ants » per­me­t­tant de recon­naître la ver­sion spé­ci­fique du logi­ciel instal­lé dans un appareil don­né. Ces iden­ti­fi­ants per­me­t­tent le suivi des vul­néra­bil­ités du logi­ciel dans des pro­duits fab­riqués ultérieure­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 Her­itage archive prin­ci­pale­ment le code source en par­courant ou en « crawlant » les plate­formes publiques util­isées pour dévelop­per des logi­ciels libres de manière col­lab­o­ra­tive. Les plus con­nues sont GitHub et Git­Lab. Une autre méth­ode con­siste à faire appel à des chercheurs qui « poussent » active­ment des logi­ciels vers les archives. Par exem­ple, en France, HAL est une plate­forme pop­u­laire, financée par des fonds publics et en libre accès, util­isée par la com­mu­nauté sci­en­tifique pour dépos­er des arti­cles sous forme de preprints. Le point clé à not­er ici : les logi­ciels, et en par­ti­c­uli­er les logi­ciels libres, sont mas­sive­ment dupliqués de nos jours. Le même morceau de code source peut ain­si se trou­ver simul­tané­ment dans des mil­liers, voire des mil­lions, d’en­droits dif­férents sur Internet.

Pour faire face à ce prob­lème, Soft­ware Her­itage struc­ture l’archive comme un graphe géant (dans une struc­ture appelée DAG de Merkle), qui est entière­ment dé-dupliqué. Cela sig­ni­fie que si le même fichi­er de code source est stocké dans des mil­liers ou des mil­lions d’emplacements dif­férents, il ne sera archivé qu’une seule fois, tout en gar­dant la trace de tous les dif­férents emplace­ments. C’est le cas non seule­ment pour des fichiers indi­vidu­els, mais aus­si pour des réper­toires entiers de code source et des com­mits, qui peu­vent être très volu­mineux pour des logi­ciels importants.

Il est essen­tiel de procéder ain­si pour con­trôler la taille de l’archive et pour min­imiser la dupli­ca­tion des infor­ma­tions qui doivent être sauve­g­ardées. C’est égale­ment utile pour les cas d’u­til­i­sa­tion sci­en­tifique. En regar­dant ce graphique glob­al du code pub­lic, vous pou­vez iden­ti­fi­er qui a référencé un de vos logi­ciels et qui l’a peut-être util­isé pour en créer un autre. En un sens, ce graphique per­met de mesur­er l’im­pact des logi­ciels dévelop­pés par les chercheurs et les développeurs de logi­ciels libres.

« Soft­ware Her­itage est une ‘grande bib­lio­thèque de code source’, ana­logue aux grandes bib­lio­thèques du monde antique », explique Zac­chi­roli. « L’ob­jec­tif de ces bib­lio­thèques était d’ac­cu­muler le max­i­mum de con­nais­sances en un seul endroit. Soft­ware Her­itage est la Bib­lio­thèque d’Alexandrie pour ce bien mod­erne pré­cieux qu’est le code source des logi­ciels. » Nous pou­vons vis­iter cette bib­lio­thèque du pat­ri­moine logi­ciel pour trou­ver le code qui nous intéresse, peut-être parce qu’il a dis­paru de son lieu d’héberge­ment d’o­rig­ine, ou peut-être pour analyser toute l’é­ten­due des con­nais­sances qui y sont stockées.

Propos recueillis par Isabelle Dumé

Pour plus d’informations : https://​www​.soft​ware​heritage​.org/

1https://​en​.unesco​.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.

Le monde expliqué par la science. Une fois par semaine, dans votre boîte mail.

Recevoir la newsletter