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

    文章

    6719

    浏览量

    107354
  • 计算机科学
    +关注

    关注

    1

    文章

    144

    浏览量

    11776

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电流检测电路知道哪些?

    电流检测用来执行两个基本的电路功能。首先,是测量“多大”电流在电路中流动,这个信息可以用于DC/DC电源中的电源管理,来判定基本的外围负载,来实现节能。第二个功能是当电流“过大”或出现故障时,做出
    的头像 发表于 11-24 15:55 837次阅读
    电流检测电路<b class='flag-5'>你</b><b class='flag-5'>知道</b>哪些?

    觉得哪个软件写verilog体验最好?有什么优势?

    觉得哪个软件写verilog体验最好?有什么优势?请在评论区留言跟大家分享一下吧。
    发表于 11-10 07:47

    薄膜电容的关键词是什么知道吗

    薄膜电容是一种以金属箔作为电极,以聚乙酯、聚丙烯、聚苯乙烯等塑料薄膜作为电介质的电容器,在电子电路中具有重要作用。薄膜电容有哪些关键词知道吗
    的头像 发表于 10-13 15:30 278次阅读
    薄膜电容的关键词是什么<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>?

    知道板卡厂商参与芯片研发的α阶段意味着什么?

    大家都知道芯片很重要,但是否知道一颗芯片从设计构思到最终量产,需要经历怎样一个漫长的过程吗?
    的头像 发表于 09-24 17:08 7269次阅读
    <b class='flag-5'>你</b><b class='flag-5'>知道</b>板卡厂商参与芯片研发的α阶段意味着什么?

    LED亮度含义知道吗

    选购LED灯具或LED显示产品时,“亮度够不够”往往是人们考量的重要因素。
    的头像 发表于 09-23 17:42 1523次阅读

    工控机和电脑的区别有多大?知道吗

    工控机和电脑在我们的生活和工作中都扮演着重要角色,但它们之间存在着诸多区别。下面我们就来详细探讨一下。
    的头像 发表于 09-13 11:15 5684次阅读
    工控机和电脑的区别有多大?<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>

    知道光耦的特性参数包括哪些吗?

    知道光耦的特性参数包括哪些吗? 一、输入特性参数 正向工作电压(Forward Voltage):在给定的工作电流下,LED本身的压降。 反向电压(Reverse Voltage):LED所能承受
    的头像 发表于 07-31 09:44 988次阅读
    <b class='flag-5'>你</b><b class='flag-5'>知道</b>光耦的特性参数包括哪些吗?

    STM32U385下载软件连接不上怎么解决?

    这什么原因,有人知道吗 网上说得先复位在连接再松手的,也试过,还是一样是 有人遇到过吗,该怎么解决
    发表于 07-31 06:40

    想搞定控制器连接?耐达讯Modbus转Profinet这招知道吗

    点,还能提升整个系统的性能和效率。如果也在为协议连接问题发愁,不妨试试这个“破圈密码”。在项目中还有哪些协议连接难题呢?
    发表于 07-25 15:41

    嵌入式工控机vs普通工控机:区别在哪?谁才更适合的生产线?

    说到智能制造,大家第一时间可能会想到自动化生产线、机器人、MES系统这些高大上的名词。但知道吗?这些系统背后都有一个“幕后英雄”在默默运转,那就是——嵌入式工控机。
    的头像 发表于 05-15 10:09 1563次阅读
    嵌入式工控机vs普通工控机:区别在哪?谁才更适合<b class='flag-5'>你</b>的生产线?

    串口服务器品牌排名背后,隐藏着的行业潜规则知道吗

    在科技飞速发展的当下,串口服务器作为连接串口设备与网络的重要桥梁,在工业、金融、交通等众多领域都有着广泛应用。市场上的串口服务器品牌繁多,各种品牌排名也让人眼花缭乱。但是否想过,这些排名背后可能
    的头像 发表于 03-27 13:09 487次阅读

    拯救的树莓派!无法启动不用慌!

    当你的树莓派无法启动时,是不是很苦恼呢?别担心,今天我就来给大家分享一个超实用的解决方法。这篇文章提供了详细的解决方案,让的树莓派重新焕发生机。无论是硬件问题还是软件故障,都能在这里找到对应
    的头像 发表于 03-25 09:34 6374次阅读
    <b class='flag-5'>拯救</b><b class='flag-5'>你</b>的树莓派!无法启动不用慌!

    LED户外显示屏的五大优势,知道吗

    LED户外显示屏的五大优势,知道吗? LED户外显示屏在城市的夜晚中扮演着越来越重要的角色,其鲜艳的色彩、生动的画面为城市增添了一抹亮色。那么,LED户外显示屏的显示效果到底如何呢?让我们一起
    的头像 发表于 01-06 18:20 1321次阅读

    磷酸铁锂电池的 “三大克星”,知道吗

    了解磷酸铁锂电池害怕的这三个因素,并且在日常使用中加以注意,就能让我们的电池保持良好的性能,延长使用寿命,同时也保障了使用过程中的安全。无论是开电动汽车出行,还是使用各类锂电池储能设备,都能更加安心、高效。
    的头像 发表于 12-26 17:15 1.1w次阅读
    磷酸铁锂电池的 “三大克星”,<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>?

    TSW14J56EVM无法HSDC Pro软件识别是哪里出了问题?

    近期购买了一批TI公司的器件,其中包括4块TSW14J56EVM的板子,经测试发现,有一块板子无法HSDC Pro软件识别,即板子无法与PC无法通信,而其他三块都是好的。我还换了一台其他的电脑
    发表于 12-13 08:21