L'Université Carnegie Mellon sauve les anciens programmes de l'oubli

Le prototype du système d'archives Olive vous permet d'exécuter du code vintage sur des ordinateurs modernes




Début 2010, les économistes de Harvard Carmen Reinhart et Kenneth Rogov ont publié une analyse des données économiques de différents pays et ont conclu que si la dette dépasse 90% du PIB, cela menacerait la croissance économique du pays. Avec autant de dettes, à leur avis, la croissance devrait devenir négative.

Leur analyse a été effectuée peu de temps après la récession de 2008, elle était donc directement liée au travail des législateurs, dont beaucoup étaient convaincus de la nécessité d'augmenter la dette afin de stimuler les économies nationales. Dans le même temps, des politiciens conservateurs tels que Olli Rehn, alors commissaire européen , et le membre du Congrès américain Paul Ryan, ont utilisé les découvertes de Reinhart et Rogov pour faire campagne en faveur de l'abstinence financière.

Trois ans plus tard, Thomas Herndon, diplômé de l'Université du Massachusetts, a trouvé une erreur dans la feuille de calcul Excel que Reinhart et Rogov ont utilisée pour leurs calculs. Son importance était énorme: avec une analyse appropriée, Herndon a montré que le niveau d'endettement de 90% du PIB était corrélé à une croissance positive de l'économie de 2,2%, et non à une croissance négative de -0,1%, comme l'écrivaient Reinhart et Rogov.

Herndon pouvait facilement vérifier les conclusions des économistes de Harvard, car il avait accès au logiciel avec lequel ils travaillaient - Microsoft Excel. Qu'en est-il des découvertes plus anciennes qui utilisaient d'anciens logiciels difficiles à trouver aujourd'hui?

Nous pouvons décider que la solution à ce problème - maintenir un logiciel important pour les futurs chercheurs - ne devrait pas être compliquée. Après tout, le logiciel n'est qu'une collection de fichiers, et ces fichiers sont faciles à stocker sur votre disque dur ou sur bande sous forme numérique. Le code programme de certains programmes peut même être reproduit sur papier, afin d'éviter les problèmes d'obsolescence des supports numériques pour lesquels il a été écrit.

Les programmes sont stockés de cette manière sur une base continue, même pour les programmes qui ont plusieurs décennies. En ligne, vous pouvez, par exemple, trouver le code source de l'ordinateur de guidage Apollo, qui a aidé à envoyer des astronautes sur la lune dans les années 1960. Il a été réécrit à partir du papier et téléchargé sur GitHub en 2016.

Et bien qu'un programmeur inconditionnel puisse aimer une étude minutieuse de ce code vintage, la plupart des gens ne sont pas intéressés. Ils sont intéressés à utiliser des logiciels. Mais garder le logiciel prêt à fonctionner pendant de longues périodes est extrêmement difficile, car pour exécuter la plupart des anciens programmes, vous avez besoin de vieux ordinateurs et d'anciens systèmes d'exploitation.

Vous avez peut-être rencontré de tels problèmes vous-même en essayant de jouer aux jeux informatiques de votre jeunesse. Mais dans le domaine de la recherche scientifique et technique, l'impossibilité de démarrer un ancien programme peut entraîner des conséquences beaucoup plus graves.

Outre les économistes, de nombreux autres chercheurs, par exemple des physiciens, des chimistes, des biologistes et des ingénieurs, utilisent constamment des programmes de traitement des données et de visualisation des résultats d'analyse. Ils sont engagés dans la simulation de phénomènes à l'aide de modèles informatiques écrits dans divers langages de programmation, et en utilisant un grand nombre de bibliothèques logicielles supportant leur travail et des liens vers des ensembles de données. Ces enquêtes et les logiciels sur lesquels ils s'appuient jouent un rôle majeur dans les rapports de découvertes et de résultats de recherche.

Imaginez que vous êtes un chercheur qui veut vérifier les calculs d'un autre scientifique, effectués il y a 25 ans. Cet ancien logiciel sera-t-il toujours disponible pour vous? La société qui l'a publié pourrait déjà fermer. Même s'il en existe une version moderne, acceptera-t-il les données dans leur format d'origine? Tous les calculs - par exemple, fonctionnent avec des erreurs d'arrondi - seront-ils identiques à ceux effectués sur l'ordinateur il y a une génération? Probablement pas.

La dépendance des chercheurs à l'égard des ordinateurs augmente, et les difficultés à essayer d'exécuter de vieux logiciels augmentent, ce qui les empêche de vérifier les résultats publiés précédemment. Le problème des logiciels obsolètes nie le concept de reproductibilité qui sous-tend la science.

Ce problème peut affecter la conduite des examens médico-légaux. Supposons que les calculs de l'ingénieur montrent que le bâtiment doit rester debout et que le toit du bâtiment tombe. L'ingénieur a-t-il fait une erreur ou le logiciel a-t-il mal fonctionné? Si plusieurs années plus tard, le logiciel ne peut pas être lancé, il sera très difficile à vérifier.

Par conséquent, mes collègues de l'Université Carnegie Mellon et moi-même avons développé un moyen d'archiver les programmes de manière à ce qu'ils puissent être facilement lancés aujourd'hui et à l'avenir. Mes collègues, les informaticiens Benjamin Gilbert et Ian Harks, ont écrit la majeure partie du code. L'archiviste des logiciels Daniel Ryan et les bibliothécaires Gloriana Saint-Claire, Erica Linke et Kif Webster, qui, pour des raisons évidentes, ont tout intérêt à préserver cette partie de la culture moderne, ont également participé à la collaboration.


NCSA Mosaic 1.0, l'un des premiers navigateurs avec Macintosh, 1993


Chaste (Cancer, Heart and Soft Tissue Environment) 3.1 pour Linux, 2013


The Oregon Trail 1.1, jeu pour Macintosh, 1990


Wanderer, un jeu pour MS-DOS, 1988


Mystery House, jeu pour Apple II, 1982


The Great American History Machine, un atlas pédagogique interactif pour Windows 3.1, 1991


Microsoft Office 4.3 pour Windows 3.1, 1994


ChemCollective, logiciel de chimie pédagogique pour Linux, 2013

Étant donné que ce projet est lié à la préservation des logiciels et non à l'informatique populaire, nous n'avons pas collecté de fonds pour cela auprès des agences d'État ordinaires, mais de la Fondation Alfred Sloan et de l'Institut des services de musée et de bibliothèque. Avec leur aide, nous avons démontré la restauration de systèmes informatiques oubliés depuis longtemps et les avons mis à la disposition de tout le monde en ligne, afin que tout utilisateur d'ordinateur puisse remonter le temps en un seul clic.

Nous avons créé le système Olive , acronyme de Open Library of Images for Virtualized Execution. Olive vous permet d'obtenir sur Internet la même impression que vous obtiendriez en lançant une application, un système d'exploitation ou un ordinateur du passé. En installant Olive, vous pouvez travailler avec des logiciels très anciens comme s'ils étaient modernes. Ceci est un peu de l'archive Internet Wayback Machine pour les programmes exécutables.

Pour comprendre comment Olive peut faire revivre un ancien environnement informatique, vous devez passer par plusieurs couches d'abstractions logicielles. À la base se trouve la base commune de la plupart des technologies informatiques modernes: un ordinateur de bureau ou un ordinateur portable standard avec un ou plusieurs microprocesseurs x86. Sur celui-ci, nous exécutons le système d'exploitation Linux, qui forme la deuxième couche de la pile.

Au-dessus de l'OS se trouve un logiciel VMNetX, écrit dans mon laboratoire, exécutant une machine virtuelle sur un réseau [Virtual Machine Network Execution]. Une machine virtuelle est un environnement informatique qui imite l'environnement sur un ordinateur qui existait sur un autre type d'ordinateur. VMNetX vous permet de stocker des machines virtuelles sur un serveur central et de les exécuter à distance à la demande. L'avantage est que votre ordinateur n'a pas besoin de télécharger l'intégralité de l'état du disque et de la mémoire depuis le serveur pour démarrer la machine virtuelle. Les informations stockées sur disque et en mémoire sont téléchargées en parties, si nécessaire, pour organiser la couche suivante - le moniteur de machine virtuelle (hyperviseur), qui peut prendre en charge le fonctionnement de plusieurs machines simultanément.

Un émulateur matériel fonctionne sur chacune des machines virtuelles - c'est le niveau suivant dans la pile Olive. L'émulateur prétend qu'il possède un ordinateur obsolète depuis longtemps - par exemple, l'ancien Macintosh Quadra avec le processeur Motorola 68040 des années 90. Si le logiciel archivé peut s'exécuter sur un ordinateur x86, cette couche de virtualisation peut être omise.

La couche suivante est l'ancien système d'exploitation, qui peut exécuter un logiciel d'archivage. Elle a accès à un disque virtuel qui simule un lecteur de disque et un système de fichiers, nécessaires pour que les couches suivantes de ce gâteau d'abstraction de programme fonctionnent.

Au-dessus de l'ancien système d'exploitation se trouve déjà le programme lui-même. Il peut s'agir du haut du tas ou d'une autre couche constituée de données que le programme doit alimenter pour en obtenir ce que vous voulez.

Les couches supérieures d'Olive sont différentes pour chacun des programmes d'archivage et sont stockées sur un serveur central. Les couches inférieures sont installées sur l'ordinateur de l'utilisateur en tant que partie client. Lors du démarrage du programme d'archivage, le client Olive télécharge les parties nécessaires des couches supérieures à la demande depuis le serveur central.



C'est ce que le système a sous le capot. Mais que peut faire Olive? Aujourd'hui, il contient 17 machines virtuelles différentes qui peuvent exécuter une variété de systèmes d'exploitation et d'applications. Le choix des éléments à inclure dans le système reposait sur un mélange de curiosité, d'accessibilité et d'intérêts personnels. Par exemple, un membre de notre équipe s'est souvenu avec émotion de la façon dont il jouait à The Oregon Trail alors qu'il fréquentait l'école au début des années 1990. En conséquence, nous avons trouvé une ancienne version du jeu pour Mac et avons réussi à la lancer via Olive. Après que cela soit devenu connu, de nombreuses personnes ont commencé à nous poser des questions sur la possibilité de faire revivre leur logiciel préféré du passé.

La plus ancienne application que nous avons restaurée est Mystery House, un jeu graphique du début des années 80 pour un ordinateur Apple II. Un autre programme est le NCSA Mosaic, qui, comme les gens d'un certain âge peuvent s'en souvenir, leur a donné des merveilles sur le WWW.

Olive a une version de Mosaic écrite en 1993 pour le système Macintosh 7.5. Ce système d'exploitation s'exécute sur l'émulateur de processeur Motorola 68040, créé à l'aide d'un logiciel exécuté sur un ordinateur x86 exécutant Linux. Malgré toute cette virtualisation, les performances ne sont pas mauvaises, car les ordinateurs modernes fonctionnent beaucoup plus rapidement que le matériel Apple d'origine.

Il est assez intéressant de diriger la mosaïque restaurée d'Olive vers des sites modernes. Il est apparu plus tôt que les technologies Web modernes telles que JavaScript, HTTP 1.1, les feuilles de style en cascade et HTML 5, et n'est donc pas en mesure d'afficher la plupart des sites. Mais vous pourriez être intéressé par la recherche de sites si anciens qu'ils sont parfaitement visibles dans ce navigateur.

De quoi d'autre Olive est-elle capable? Vous vous demandez peut-être quels outils ont été utilisés en entreprise juste après l'apparition du processeur Intel Pentium. Olive peut vous aider. Démarrez Microsoft Office 4.3 depuis 1994 (qui, heureusement, est sorti avant que l'assistant de clip ennuyeux n'apparaisse).

Vous voudrez peut-être passer une soirée nostalgique à jouer à Doom pour DOS, ou voir pourquoi les tireurs à la première personne sont devenus si populaires au début des années 1990. Ou peut-être devez-vous refaire vos impôts à partir de 1997, et vous ne pouvez pas trouver un disque avec cette version de ImpôtRapide dans le grenier. Ne vous inquiétez pas, Olive prendra soin de vous.

Si parler de choses plus sérieuses, alors dans Olive Chaste 3.1 est stocké. C'est l'abréviation de Cancer, Heart and Soft Tissue Environment (cancer, coeur et tissus mous). Il s'agit d'une simulation développée à l'Université d'Oxford, qui permet de résoudre des problèmes de calcul en biologie et physiologie. La version 3.1 était liée à un document de recherche publié en mars 2013. Cependant, deux ans après la publication, le code source de Chaste 3.1 a cessé de se compiler dans les nouvelles versions de Linux. Ceci est un excellent exemple des problèmes de reproductibilité scientifique que le système oléicole devrait résoudre.



Pour que Chaste 3.1 fonctionne, Olive fournit un environnement Linux intemporel. Recréé dans Olive Chaste contient également des exemples de données publiées avec un travail de 2013. Le traitement de ces données permet de visualiser le travail des muscles. Les futurs chercheurs en physiologie qui souhaitent étudier ces visualisations ou apporter des corrections aux logiciels publiés pourront utiliser Olive pour éditer du code sur une machine virtuelle et l'exécuter.

Olive est actuellement disponible pour un nombre limité d'utilisateurs. En raison de restrictions de licence, la suite d'olive des anciens logiciels n'est disponible que pour les personnes qui ont aidé au développement du projet. Les sociétés liées aux logiciels doivent autoriser la présentation de programmes réactivés à un large public.

Nous ne sommes pas seuls dans notre recherche d'opportunités pour maintenir la vie dans les anciens logiciels. Internet Archive enregistre des milliers d'anciens programmes avec un émulateur MS-DOS basé sur un navigateur. À Yale, ils développent le projet EaaSI (Emulation as a Service Infrastructure), dans l'espoir de donner à chacun accès à des milliers d'émulations d'environnements logiciels du passé. Des scientifiques et des bibliothécaires du projet Network Preservation Network travaillent sur ce projet et sur d'autres. Ils travaillent également sur la résolution des problèmes de droits d'auteur qui apparaissent lors du démarrage d'un ancien logiciel de cette manière.

Olive est déjà bien développée, mais elle est encore loin d'un système entièrement fini. En plus du problème de licence, elle doit surmonter certains obstacles techniques.

L'un des obstacles est l'importation de nouvelles données pour le traitement par l'ancien programme. Jusqu'à présent, ces données doivent être saisies manuellement, et cette méthode est difficile et sujette aux erreurs. Cette méthode limite également la quantité de données pouvant être analysées. Même si nous ajoutions un mécanisme d'importation de données, la quantité de données stockées serait limitée par la taille du disque virtuel de la machine virtuelle. Cela peut sembler être un petit problème, mais vous devez vous rappeler que les systèmes de fichiers des anciens ordinateurs avaient parfois de telles limitations sur le volume qui sont maintenant perçues comme étranges.

Un autre obstacle est l'émulation GPU. Depuis un certain temps maintenant, les scientifiques utilisent le calcul parallèle pour accélérer divers calculs. Pour archiver un logiciel exécutable qui utilise un GPU, le système Olive devra recréer des versions virtuelles de ces puces - et c'est une tâche difficile. En effet, les interfaces GPU - ce qu'elles peuvent entrer et ce qu'elles sortent - ne sont pas standardisées.

De toute évidence, il reste encore beaucoup de travail à faire avant d'annoncer la solution des problèmes d'archivage des programmes exécutables. Mais Olive est un bon début pour créer les systèmes qui seront nécessaires pour garantir que les anciens programmes sont maintenus dans un état tel qu'ils peuvent être étudiés, testés et utilisés pendant longtemps.

Source: https://habr.com/ru/post/fr424169/


All Articles