拯救被遗忘的软件

点击

上方“IEEE电气电子工程师学会”即可订阅公众号。网罗全球科技前沿动态,为科研创业打开脑洞。

━━━━

2010年初,哈佛经济学家莱因•哈特(Carmen Reinhart)和肯尼斯•罗格夫(Kenneth Rogoff)发表了一篇涵盖多个国家经济数据的分析文章,并得出结论:当一个国家的债务水平超过该国国民生产总值的90%时,这个国家的经济增长即受到威胁。他们认为,在如此之高的债务水平下,预计增长将为负增长。

这篇分析文章是在2008年经济危机爆发后不久发表的,因此与当时的政策制定者有很大的关系。当时很多政策制定者都为了刺激国民经济而鼓励高额债务支出。与此同时,保守派政客,比如时任欧盟委员的奥利•雷恩(Olli Rehn)以及美国国会议员保罗•瑞安(Paul Ryan),根据哈特和罗格夫的研究结果呼吁采取财政紧缩政策。

3年后,一位来自马萨诸塞大学的研究生托马斯•赫恩登(Thomas Herndon)发现,当年哈特和罗格夫计算时所用的Excel电子数据表有错误。这个错误的影响是巨大的:赫恩登使用正确的电子数据表重新做的分析表明,债务水平超过国民生产总值90%时,平均经济增长为2.2%,而不是哈特和罗格夫当年所发现的-0.1%。

赫恩登可以轻而易举地测试当年哈佛经济学家得出的结论,因为他们当初所使用的软件——微软 Excel——现如今依然使用方便。但是早期那些可以使用但目前难以继续使用的软件所得出的分析结论怎么办呢?

或许你觉得解决办法没什么难度:把相关软件保存下来供未来的研究人员使用即可。毕竟软件只是一堆文件,而这些文件又能以数字格式保存在硬盘或磁带上。对于某些软件来说,非常重要的源代码甚至被打印在纸上,以防其存储的数字媒介失效。

这是保存旧程序的常规方式,即使是对几十年前的旧软件也是如此。比如,你可以上网搜索到20世纪60年代将宇航员送上月球的阿波罗导航计算机的完整程序代码列表。这是2016年从纸上复制转录后上传到GitHub的。

尽管少数核心程序员喜欢研读老式源代码,但是大多数人对此并不感兴趣,他们只是想使用软件。但是让历史久远的软件得以运行十分困难,因为大多数旧代码都需要老式计算机以及老式操作系统才能运行。

如果你想再玩一次年轻时玩过的计算机游戏,可能也会面临类似的困境。而旧程序无法运行会带来更加严重的影响,尤其是对科学技术研究领域。

与经济学家一样,在日常工作中,物理学家、化学家、生物学家以及工程师等其他很多研究人员都使用软件来分析切割数据和显示分析结果。研究人员通过计算机模型来模拟现象,而计算机模型是通过一系列编程语言写成的,同时使用了多种软件数据库和参考数据集。这些研究及其依赖的软件对于新研究成果的发现和发表都至关重要。

想象你自己是一名研究者,此时你想检查另一名研究者25年前进行的运算。你能否获取并使用相关软件?也许相关软件的开发公司都已经不在了。即便该软件现在仍有新的版本,它能接受原始数据格式吗?计算过程与上一代计算机是否完全等同?例如舍入误差?可能不是。

研究者对计算机日益依赖,运行老式软件的困难削弱了研究者对已发表研究结果的检测能力。因此,旧软件的问题腐蚀掉了科学的基石——再现性——的前提。

这还会影响到法律诉讼。假设,工程师根据计算得出某建筑物设计得十分坚固,但该建筑物的屋顶还是塌了。这是工程师出了错,还是使用的计算软件出了错?如果多年后相关软件不能再使用,就很难说清楚了。

因此我和卡耐基•梅隆大学(位于匹兹堡)的同事们一直在研究一种无论现在还是将来都能方便运行的程序存档方式。大部分的编码工作由我的同事——计算机科学家本杰明•吉尔伯特(Benjiamin Gilbert)和简•哈克斯(Jan Harkes)完成。参与合作的还有软件档案管理员丹尼尔•瑞安(Daniel Ryan)、图书管理员格洛里安娜•圣•克莱尔(Gloriana St. Clair)、 埃里克•林克(Erike Linke)以及基思•韦伯斯特(Keith Webster),他们都对如何妥善保存这份现代文化有浓厚的兴趣。

这个项目更多地涉及档案保存,并不是主流计算机科学项目,我们获得的资金来源不是政府计算机科学基金部门,而是艾尔弗•P•斯隆基金会(Alfred P.Sloan Foundation)以及博物馆和图书服务协会(Institute for Museum and Library Services)。在资金支持下,我们展示了如何重建年代已久的运算环境并将其发布到网上,任何计算机用户只要一点鼠标,就可以即刻复原过去的运算环境。

我们创建的系统叫做Olive,该名字由开放虚拟执行图像库(Open Library of Images for Virtualized Execution)的英文首字母组成。Olive通过互联网提供一种与早期计算机、操作系统和应用运行完全相同的体验。安装Olive后,便可以像运行新软件一样运行旧软件。Olive就像一台针对软件内容的时光机。

━━━━

若要理解Olive如何还原早期运算环境,你必须了解几个软件抽象层。最底层与目前多数计算机技术所使用的基础相同:使用1个或多个x86微处理器的标准台式电脑或笔记本。我们在这台电脑上运行Linux操作系统,构成Olive的第二个抽象层。

操作系统的上层是我们实验室开发的软件VMNetX,意指虚拟机网络执行(Virtual Machine Network Execution)。虚拟机是在不同类型计算机上通过运行软件来模拟一类特定计算机的运算环境。VMNetX的特别之处在于它允许将虚拟机存储在中心服务器上,按照远程系统要求来运行虚拟机。这种设置的优势在于运行虚拟机之前,计算机不需要从服务器上下载虚拟机的全部磁盘和内存状态。再上一层的虚拟机监视程序(也称为管理层)会按照需要成批恢复虚拟机硬盘及内存中的信息,可保持几台虚拟机同时运行。

每个虚拟机分别运行一个硬件模拟器,亦即Olive的再上一抽象层。模拟器展现一台现已淘汰的老式计算机的虚拟环境,比如配备20世纪90年代摩托罗拉68040 CPU的老式麦金塔Quadra计算机。(如果你存档的软件是运行在x86计算机上,那么模拟器层可以省略。)

再往上一层是存档软件工作所需的旧操作系统。旧操作系统可以接入虚拟硬盘,由虚拟硬盘模拟真实硬盘存储,为更高的软件抽象层提供类似普通文件系统的环境。

旧操作系统再上一层为存档程序本身。存档程序可以是最高层,也可再多加一层,由你要存档程序运行所必须的数据等组成。

Olive的上面几层依据不同的存档应用而定,存储于中央服务器中。Olive系统的下面几层以Olive客户端软件包的形式安装于使用者的电脑中。启动一个存档应用时,Olive客户端将按需从中央服务器获取相关上层的部分内容。

━━━━

这就是Olive的组成结构。但是Olive都可以做什么呢?目前,Olive由17种不同的虚拟机组成,可以运行多种操作系统和应用。这些配置选择是出于好奇心、可行性以及个人喜好。比如,我们团队的一个成员依然记得自己在20世纪90年代初期在学校玩《俄勒冈小道》游戏的场景。于是我们拿到了这款游戏一个旧的Mac版本并通过Olive重新运行。我们成功运行这款游戏的消息不胫而走,很多人纷纷找到我们询问是否可以“复活”他们曾经最爱的软件。

我们复原年代最久的应用是《逃出神秘房间》,这款图形游戏于20世纪80年代初开始在苹果II计算机上运行。另一个年代久远的程序是NCSA Mosaic,上了年纪的人或许还记得就是这款浏览器引领他们进入万维网世界。

Olive提供运行苹果麦金塔7.5操作系统的1993年Mosaic版本。这套操作系统运行于摩托罗拉68040 CPU模拟器上,而这款处理器是由运行Linux系统的x86计算机中的软件创造的。尽管是虚拟的,但性能还是不错的,毕竟现代计算机要比原始的苹果硬件快得多。

把Olive重建的Mosaic浏览器套用在当代网络中很有启发性:Mosaic早于JavaScript、HTTP1.1、层叠样式表(CCS)和HTML5等网络技术,因此不可能呈现多数现代网站。但是追踪很早以前建立的网站很有乐趣,它们看起来还不错。

Olive还有什么功能呢?或许你会好奇英特尔引进奔腾处理器之后,商业上所使用的工具都有哪些。这一点Olive可以帮你,比如让你体验1994年开发的微软Office 4.3(幸好这个软件开发得比讨厌的自动办公助理软件Clippy早)。

或许你只是想在一个怀旧的夜晚,玩一下DOS版的《毁灭战士》游戏,或者了解一下为什么这款第一人称射击游戏在20世纪90年代初如此盛行。或许你想整理一下1997年的税务信息,却在阁楼里找不到存储当年特波税务软件(Turbo Tax)的硬盘。不用担心,Olive都有。

在较为严肃的软件方面,Olive涵盖了Chaste 3.1。这款软件的名称是癌症(Cancer)、心脏(Heart)和软组织环境(Soft Tissue Environment)的英文首字母组合。这是一款由牛津大学开发的仿真程序包,用于解决生物学和生理学领域需要计算的问题。Chaste 3.1版本出现在2013年3月发表的一篇研究论文中。论文发表后不到两年,当时新版Linux便不再编译Chaste 3.1的源代码了。这是Olive旨在克服科学再现性的标志性挑战。

为确保Chaste 3.1正常运行,Olive提供了当年的Linux环境。Olive复活的Chaste还包括2013年发表论文中的实例数据。利用这些数据再次运行Chaste,可以生成某些肌肉功能的可视化结果。对于未来想要研究这些可视化结果或改进已发表软件的生理学家来说,他们可以利用Olive在虚拟机上编辑并运行代码。

由于软件许可限制,现在Olive仅供少部分用户使用。Olive收集的早期软件目前只能限于参与这个项目的人员使用。相关公司需要授权许可,才能让Olive面向范围更广的用户。

不只我们一个团队在寻求还原旧软件的方法。比如,互联网档案馆(Internet Archive)就通过运行在用户浏览器中的MS-DOS仿真模拟器来保存成千上万个旧程序。耶鲁大学正在进行的项目EaaSI(Emulation as a Service Infrastructure,指“模拟器即服务基础设施”)就致力于模拟过去成千上万的软件环境。参加“软件保护网络”的学者和图书管理员们一直在协调这项工作以及类似研究。他们还在努力解决以这种方法恢复旧软件运行所带来的版权问题。

━━━━

Olive系统已取得很大进展,但远未达到完善的程度。除了软件许可限制问题以外,还存在各种各样的技术障碍。

其中一大难题就是如何导入新数据以供旧应用进行处理。目前,新数据依靠人工导入,不仅任务繁重而且容易出错,也限制了可供分析的数据量。即便增加新的数据导入机制,导入的数据量还是受虚拟机的虚拟硬盘容量限制。这可能看起来问题不大,但是你要知道,有些旧式计算机文件系统的数据存储容量出奇地小。

另外一个难题是图形处理器(GPU)仿真。长久以来,科学界借助图形处理器的并行处理能力来提高各种运算的速度。为了把利用图形处理器的可执行软件存档,Olive需要再造这些芯片的虚拟版本。这是个十分棘手的任务。因为图形处理器的接口(输入和输出内容)并无标准。

很显然,在宣布可执行内容的存档问题已经解决之前,还有很多工作要做。但Olive已经开了一个好头,要确保直到未来也能开发、测试和使用过去的软件,正需要我们创造的这类系统。


文章来源:悦智网。发表在IEEE Spectrum上的英文原文可点击“阅读原文”查看。


点击

阅读原文

了解更多详情

    收藏此文 赞一个 ( ) 打赏本站

    如果本文对你有所帮助请打赏本站

    • 打赏方法如下:
    • 支付宝打赏
      支付宝扫描打赏
      微信打赏
      微信扫描打赏

    去看啥本文地址 » /keji/45234.html

    评论

    留言与评论(共有 0 条评论)
       
    验证码:

    更多阅读

    任正非回应一切

    还顺便破除了两个谣言。 文 | 《中国企业家》记者 马钺 编辑 | 林文龙头图来源 | 被访者供图 一桩新鲜出炉的谣言被任正非在国内媒体前的露面适时击破——网上流传一张任正

    不可想象的未来,机器狗将成为快递员

    科技创新推动了社会的飞跃发展,如今,机器人已经从科幻电影走进现实,从工业生产线走到日常生活场景。随着机械技术的进步,为人类研发出各种机器人产品提供了可能,而人工智能、传

    电子电路打印!Aerosol Jet气雾喷射3D打印技术

    △粉末冶金、陶瓷制造融合3D打印的展会 美国Optomec的气雾喷射打印技术能够有效地制作3D打印的电子产品。它属于一种增材制造工艺技术(也称为3D打印或直接写印), 可将各种商

    AI视觉时代 生物识别技术赋能智慧金融

    近日,在大型科技综艺节目《智造将来》中,支付宝研发的刷脸神器首次亮相,在500位蒙面观众中成功找出目标任务。据悉,该神器在人脸识别的基础上,结合多模态识别,可以分辨同卵双胞胎

    Facebook成立AR业务部门,巨头加速AR竞争

    hi188| 撰文1月18日消息,昨天我们刚刚了解到Facebook挖角了谷歌AR/VR团队的负责人Ryan Cairns,负责Portal部门,今天来看此消息后背还有更猛的料。根据Business Insider报道,Faceb