卡内基梅隆大学挽救遗忘的旧程序

Olive存档系统原型使您可以在现代计算机上运行老式代码




2010年初,哈佛大学的经济学家卡门·莱因哈特(Carmen Reinhart)和肯尼斯·罗戈夫(Kenneth Rogov)发表了来自不同国家的经济数据分析,得出的结论是,如果债务超过GDP的90%,这将威胁到该国的经济增长。 他们认为,债务如此之多,增长应该会变成负数。

他们的分析是在2008年经济衰退后不久进行的,因此它与立法者的工作直接相关,其中许多议员对增加债务以刺激国民经济的信心充满信心。 同时,保守派政客,例如当时的欧洲专员奥利·雷恩(Olli Rehn)和美国国会议员保罗·瑞安(Paul Ryan),利用赖因哈特(Reinhart)和罗戈夫(Rogov)的发现进行竞选,以支持金融节制。

三年后,麻省大学毕业生托马斯·赫恩登(Thomas Herndon)在Excel电子表格中发现了赖因哈特(Reinhart)和罗戈夫(Rogov)用于计算的错误。 它的意义是巨大的:通过适当的分析,赫恩登表示,债务水平占GDP的90%与经济的正增长2.2%相关,而不与Reinhart和Rogov的负增长-0.1%相关。

赫恩登可以轻松访问哈佛大学经济学家的结论,因为他可以使用与他们合作的软件-Microsoft Excel。 那些使用今天很难找到的旧软件的旧发现又如何呢?

我们可以决定解决该问题的方法-为将来的研究人员维护重要的软件-不应很复杂。 毕竟,软件只是文件的集合,这些文件很容易以数字形式存储在硬盘或磁带上。 甚至可以在纸上复制某些程序的程序代码,以避免编写该程序的数字媒体过时的问题。

程序以这种方式持续存储,即使对于几十年前的程序也是如此。 例如,在网上可以找到阿波罗制导计算机的源代码,该计算机帮助1960年代将宇航员送上月球。 它是从纸上重写的,并于2016年上传到GitHub。

而且,尽管铁杆程序员可能希望仔细研究此类老式代码,但大多数人对此并不感兴趣。 他们对使用软件感兴趣。 但是要使该软件长时间准备运行非常困难,因为要运行大多数旧程序,您需要旧计算机和旧操作系统。

您可能在尝试玩青少年的计算机游戏时遇到了此类问题。 但是在科学和技术研究领域,无法启动旧程序可能导致更严重的后果。

除经济学家外,许多其他研究人员,例如物理学家,化学家,生物学家和工程师,也在不断使用程序进行数据处理和分析结果的可视化。 他们致力于使用各种编程语言编写的计算机模型来模拟现象,并使用大量支持其工作并链接至数据集的软件库。 此类调查及其所依赖的软件在发现和搜索结果报告中起着重要作用。

假设您是一位研究人员,想检查另一位科学家在25年前进行的计算。 您仍然可以使用该旧软件吗? 发布它的公司可能已经关闭。 即使有现代版本,它也可以接受原始格式的数据吗? 所有计算(例如,舍入误差)是否与上一代计算机上进行的计算相同? 可能不是。

研究人员对计算机的依赖性正在增加,尝试运行旧软件的困难也在增加,这使他们无法检查以前发布的结果。 过时的软件问题否定了作为科学基础的可重复性概念。

此问题可能会影响法医检查的进行。 假设工程师的计算结果表明建筑物必须直立,然后建筑物的屋顶掉下来。 工程师犯了一个错误,还是软件出现故障? 如果多年之后该软件无法启动,将很难进行验证。

因此,我和卡内基梅隆大学的同事们开发了一种方法来归档程序,以便可以在今天和将来轻松启动它们。 我的同事,计算机科学家Benjamin Gilbert和Ian Harks编写了大部分代码。 软件档案管理员Daniel Ryan和图书馆员Gloriana Saint-Claire,Erica Linke和Kif Webster(出于显而易见的原因,对保存现代文化的这一部分非常感兴趣)也参加了合作。


NCSA Mosaic 1.0,第一批使用Macintosh的浏览器,1993年


Chaste(癌症,心脏和软组织环境)3.1 for Linux,2013年


Oregon Trail 1.1,适用于Macintosh的游戏,1990年


Wanderer,一款适用于MS-DOS的游戏,1988年


神秘屋,Apple II游戏,1982年


伟大的美国历史机器,1991年用于Windows 3.1的交互式教育地图集


适用于Windows 3.1、1994的Microsoft Office 4.3


ChemCollective,适用于Linux的教育化学软件,2013年

由于该项目与软件的保存有关,与流行的计算机科学无关,所以我们不是从普通的国家机构那里筹集资金,而是从阿尔弗雷德·斯隆基金会和博物馆与图书馆服务研究所筹集资金。 在他们的帮助下,我们演示了如何恢复被遗忘已久的计算机系统,并使每个联机的人都可以使用它们,以便任何计算机用户都可以单击一下以使时间回到过去。

我们创建了Olive系统,它是用于虚拟化执行的开放图像库的首字母缩写。 Olive使您可以通过Internet获得与过去启动应用程序,OS或计算机相同的印象。 通过安装Olive,您可以像使用现代软件一样使用非常老的软件。 这是Wayback Machine Internet可执行文件归档文件的一部分。

要了解Olive如何恢复旧的计算机环境,您需要经历几层软件抽象。 最基本的是大多数现代计算技术的通用基础:具有一个或多个x86微处理器的标准台式计算机或便携式计算机。 在它上面,我们运行Linux OS,它构成了堆栈的第二层。

操作系统上方是在我的实验室中编写的VMNetX软件,它通过网络运行虚拟机[Virtual Machine Network Execution]。 虚拟机是一种计算环境,它模仿存在于不同类型计算机上的计算机上的环境。 VMNetX允许您将虚拟机存储在中央服务器上,并根据需要远程运行它们。 优点是您的计算机不需要从服务器下载整个磁盘和内存状态即可启动虚拟机。 如有必要,可以分批下载存储在磁盘和内存中的信息,以组织下一层-虚拟机监视器(管理程序),该监视器可以同时支持多台计算机的操作。

硬件仿真器可在每个虚拟机上运行-这是Olive堆栈中的下一个级别。 该仿真器假装其上运行着一台过时的计算机-例如,带有90年代90年代Motorola 68040 CPU的旧Macintosh Quadra。 如果存档软件可以在基于x86的计算机上运行,​​则可以忽略此虚拟化层。

下一层是旧版OS,可以运行存档软件。 她可以访问模拟磁盘驱动器和文件系统的虚拟磁盘,这是程序抽象蛋糕下一层工作所需的。

在旧操作系统之上已经是程序本身。 它可以是堆的顶部,也可以具有由程序需要馈送的数据组成的另一层,以便从中获取所需的内容。

对于每个存档程序,Olive的顶层都不相同,并且存储在中央服务器上。 较低的层作为客户端部分安装在用户的计算机上。 启动存档程序时,Olive客户端根据需要从中央服务器下载上层的必要部分。



这就是系统的内幕。 但是,Olive可以做什么? 如今,它包含17个不同的虚拟机,可以运行各种操作系统和应用程序。 选择要包含在系统中的内容是基于好奇心,可访问性和个人兴趣的混合。 例如,我们团队的一名成员亲切地回忆起他在1990年代初期上学时在俄勒冈小径(Oregon Trail)的演奏。 结果,我们找到了适用于Mac的旧版游戏,并设法通过Olive启动了该游戏。 众所周知后,许多人开始向我们提出有关从过去恢复最喜欢的软件的可能性的问题。

我们恢复的最旧的应用程序是Mystery House,这是1980年代初期针对Apple II计算机的图形游戏。 另一个程序是NCSA Mosaic,正如一定年龄的人可以回忆起的那样,它使WWW产生了奇迹。

Olive拥有1993年为Macintosh System 7.5编写的Mosaic版本。 该操作系统在Motorola 68040 CPU仿真器上运行,该仿真器是使用在运行Linux的基于x86的计算机上运行的软件创建的。 尽管进行了所有虚拟化,但性能并不差,因为现代计算机的工作速度比原始Apple硬件快得多。

将已修复的马赛克从橄榄色引导到现代场所非常有趣。 它的出现要早于现代网络技术,例如JavaScript,HTTP 1.1,级联样式表和HTML 5,因此无法显示大多数站点。 但是,您可能对寻找长期存在的站点感兴趣, 以使其在此浏览器中完全可见。

橄榄还能做什么? 您可能想知道英特尔奔腾处理器问世后立即在业务中使用了哪些工具。 橄榄可以帮助解决这个问题。 从1994年开始启动Microsoft Office 4.3(幸运的是,在烦人的剪辑助手出现之前就已发布)。

您可能想度过一个怀旧的夜晚,为DOS玩《毁灭战士》,或者看看为什么第一人称射击游戏在1990年代初期如此受欢迎。 或者,也许您需要重做1997年以来的税款,而在阁楼中找不到带有该版本TurboTax的磁盘。 不用担心,Olive会照顾您的。

如果要谈论更严肃的事情,那么在Olive Chaste 3.1中将被存储。 这是癌症,心脏和软组织环境(癌症,心脏和软组织)的缩写。 这是牛津大学开发的模拟,可以解决生物学和生理学中的计算问题。 3.1版与2013年3月发表的一篇研究论文有关。 但是,发布两年后,Chaste 3.1的源代码停止在新版本的Linux中编译。 这是Olive系统应解决的科学再现性问题的一个很好的例子。



为了保持Chaste 3.1的正常运行,Olive提供了永恒的Linux环境。 在Olive Chaste中重新创建的还包含与2013年的作品一起发布的数据示例。 处理这些数据可以直观地显示肌肉的功能。 希望研究这些可视化或对已发布软件进行更正的未来生理学研究人员将能够使用Olive在虚拟机上编辑代码并运行它。

目前,Olive仅对有限的用户可用。 由于许可限制,旧软件的Olive套件仅提供给协助项目开发的人员使用。 与软件相关的公司必须获得许可,才能将复兴的程序展示给更多的观众。

我们并不孤单地寻找机会维持旧软件的生命。 Internet存档使用基于浏览器的MS-DOS模拟器保存了数千个旧程序。 在耶鲁大学,他们正在开发EaaSI项目(将模拟作为服务基础架构),希望使每个人都能访问过去的数千个软件环境模拟。 来自软件保存网络项目的科学家和图书馆员正在从事此项目和其他项目。 他们还致力于解决以这种方式启动旧软件时出现的版权问题。

Olive已经很成熟,但距离完整的系统还差得很远。 除了许可问题,她还必须克服一些技术障碍。

障碍之一是导入新数据以供旧程序处理。 到目前为止,此类数据需要手动输入,并且此方法困难且容易出错。 此方法还限制了可以分析的数据量。 即使我们添加了数据导入机制,存储的数据量也将受到虚拟机虚拟磁盘大小的限制。 这似乎是一个小问题,但是您需要记住,旧计算机的文件系统有时在容量上有这样的限制,现在认为它们是奇怪的。

另一个障碍是GPU仿真。 相当长一段时间以来,科学家一直在使用并行计算来加快各种计算的速度。 为了存档使用GPU的可执行软件,Olive系统将不得不重新创建此类芯片的虚拟版本-这是一项艰巨的任务。 这是因为GPU接口-他们可以输入什么和输出什么-没有标准化。

显然,在我们宣布归档可执行程序的问题的解决方案之前,还有许多工作要做。 但是,Olive是创建所需系统的一个良好的开始,该系统将确保将旧程序保持在可以长期研究,测试和使用的状态。

Source: https://habr.com/ru/post/zh-CN424169/


All Articles