拯救被遗忘的软件

日期:2020-05-02 14:10:53 来源:互联网 编辑:小薇 阅读人数:534

拯救被遗忘的软件(图1)

━━━━

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)他们都对如何妥善保存这份现代文化有浓厚的兴趣。

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

━━━━

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

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

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

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

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

拯救被遗忘的软件(图2)

━━━━

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

拯救被遗忘的软件(图3)

我们复原年代最久的应用是《逃出神秘房间》这款图形游戏于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仿真模拟器来保存成千上万个旧程序。耶鲁大学正在进行的项目EaaSIEmulation as a Service Infrastructure,指“模拟器即服务基础设施”就致力于模拟过去成千上万的软件环境。参加“软件保护网络”的学者和图书员们一直在协调这项工作以及类似研究。他们还在努力解决以这种方法恢复旧软件运行所带来的版权问题。

拯救被遗忘的软件(图4)

━━━━

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

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

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

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

本文相关词条概念解析:

软件

软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。

网友评论
相关文章
2002届的NBA新秀早已被遗忘,认识3个以上的老球迷,大家都认识

2002届的NBA新秀早已被遗忘,认识3个以上的老球迷,大家都认识

2002届的NBA新秀早已被遗忘,认识3个以上的老球迷,大家都认识[详情]

情趣娃娃产品,越来越庞大的单身汉群体

情趣娃娃产品,越来越庞大的单身汉群体

情趣娃娃产品,越来越庞大的单身汉群体[详情]

砸再多的资源,还是更多未被记住已被遗忘的星二代

砸再多的资源,还是更多未被记住已被遗忘的星二代

砸再多的资源,还是更多未被记住已被遗忘的星二代[详情]

网站地图    Copyright     2016-2018  资讯网   All rights reserved.