0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

拯救被遗忘的软件,你知道吗?

IEEE电气电子工程师 来源:lq 2018-12-26 09:47 次阅读

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已经开了一个好头,要确保直到未来也能开发、测试和使用过去的软件,正需要我们创造的这类系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6246

    浏览量

    103077
  • 计算机科学
    +关注

    关注

    1

    文章

    140

    浏览量

    11232

原文标题:拯救被遗忘的软件

文章出处:【微信号:IEEE_China,微信公众号:IEEE电气电子工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    烘缸轴头磨损的原因大家知道吗

    电子发烧友网站提供《烘缸轴头磨损的原因大家知道吗.docx》资料免费下载
    发表于 01-23 09:53 0次下载

    SMT丝印技术的历史发展的四个阶段,你知道吗

    SMT丝印技术的历史发展的四个阶段,你知道吗
    的头像 发表于 12-27 10:15 214次阅读

    运算放大器的种类都有哪些?你知道吗

    运算放大器的种类都有哪些?你知道吗
    的头像 发表于 12-13 15:14 395次阅读
    运算放大器的种类都有哪些?你<b class='flag-5'>知道吗</b>?

    5大高精密多层pcb的特点你知道吗

    5大高精密多层pcb的特点你知道吗
    的头像 发表于 12-08 16:10 423次阅读

    肖特基二极管4大特性,你都知道吗

    肖特基二极管4大特性,你都知道吗
    的头像 发表于 12-07 16:29 358次阅读
    肖特基二极管4大特性,你都<b class='flag-5'>知道吗</b>?

    pcb菲林是什么?这5个作用你知道吗

    pcb菲林是什么?这5个作用你知道吗
    的头像 发表于 11-22 11:14 2964次阅读

    无源与有源器件的这些区别你都知道吗

    无源与有源器件的这些区别你都知道吗
    的头像 发表于 10-26 15:27 4199次阅读
    无源与有源器件的这些区别你都<b class='flag-5'>知道吗</b>?

    PCB元器件摆放的十条小技巧,你都知道吗

    PCB元器件摆放的十条小技巧,你都知道吗
    的头像 发表于 10-17 14:52 1793次阅读
    PCB元器件摆放的十条小技巧,你都<b class='flag-5'>知道吗</b>?

    充电桩线路板的三个特别之处,你知道吗?它们可能影响你的充电体验

    充电桩线路板的三个特别之处,你知道吗?它们可能影响你的充电体验
    的头像 发表于 10-12 10:38 714次阅读

    磁环电感线圈感值的影响因素你都知道吗

    磁环电感线圈感值的影响因素你都知道吗 gujing 编辑:谷景电子 磁环电感线圈也可以称为R棒电感,是一种比较常见的电感产品,在电源滤波、变压器、电动机等产品中应用广泛。磁环电感线圈
    的头像 发表于 10-08 12:00 556次阅读

    嵌入式学习路线知道吗

    嵌入式学习路线知道吗? 1打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。特别
    发表于 06-14 16:00

    磁悬浮玩具的控制原理有人知道吗

    磁悬浮控制原理有人知道不,分享分享 磁悬浮玩具的控制原理有人知道吗
    发表于 06-14 07:40

    液晶拼接屏的安装步骤是什么你知道吗

    液晶拼接屏在日常工作和生活中是十分常见的视频显示设备,不同于普通的电脑、电视机,液晶拼接屏由于是拼接而成,所以其安装难度也是很大的,一般都是需要专业的安装人员进行安装操作。那么,液晶拼接屏的安装步骤是什么你知道吗?我们一起来看看景信科技小编为大家做的介绍。
    的头像 发表于 05-22 16:30 1205次阅读

    液晶拼接屏的优势都有哪些你知道吗

    液晶拼接屏作为信息显示的载体,目前在各种应用场景随处可见,随着液晶产品越来越先进,拼接技术越来越成熟,液晶拼接屏的需求也是越来越多。那么,液晶拼接屏的优势都有哪些你知道吗?我们一起来看看景信科技小编为大家做的介绍。
    的头像 发表于 05-15 16:32 404次阅读

    ESD模型有哪几种你知道吗

    ESD模型有哪几种你知道吗
    的头像 发表于 05-09 10:00 1171次阅读
    ESD模型有哪几种你<b class='flag-5'>知道吗</b>?