科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 22962 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2009-07-21
方兴东
方兴东
发短消息
相关词条
软件史上最严重的十个Bug
软件史上最严重的十个Bug
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

软件史上最严重的十个Bug 发表评论(0) 编辑词条

目录

软件历史上最严重的十个Bug编辑本段回目录

2005年10月在通报其汽车预警灯毫无理由的点亮和汽油发动机出现不可预见的延迟之后,丰田制造商宣布召回他的160,000辆Prius hybrid混合动力汽车。但和去年大规模的召回汽车不同,Prius hybrid的根本问题不是硬件问题——而是智能型汽车的软件出了故障。Prius hybrid汽车中的嵌入式软件中存在着bug。

伴随着这次召回,Prius hybrid也加入到Buggy Computer的行列中—这是一个在1947年成立的组织,这一年工程师在Harvard Mark 1系统中的F, Relay #70中发现了一个bug。当工程师发现故障时,该计算机正在运行它的乘法器和加法器。该错误被捕获,删除并且以下面的语句的方式录制到计算机的日志中:“first actual case of a bug being found.”

60过去了,计算机bug仍然存在着,同时并没有任何灭绝的迹象。随着软件和硬件的界限越来越难以区分,代码错误越来越对我们的日常生活造成不良影响。Bug并不仅仅是寄生在我们的操作系统和应用程序中—今天他们存在于我们的电话、起搏器、我们的电力设备和医疗设备中,还有我们的车上。

但是哪一个是最严重的呢?

我们很容易列出造成较大破坏的bug,然而我们却很难去评估他们的严重程度。哪一个破坏性更大?—是一个被计算机蠕虫所利用,连续几天关闭你的上网服务的安全漏洞,还是一个引发国家电话系统整个白天瘫痪的排字工?答案也许取决于你是需要打电话还是查收你的电子邮件。

很多人认为最严重的bug是能够致命的bug。固然,这类的bug不是很多,但是像Therac-25的案例被普遍认为是一种会在重要的安全应用程序的软件广泛传播的警告。尽管研究这些系统的专家警告该软件可能会对一些人造成伤害,阻止该技术引入到那些非常需要智能处理技术的领域,那些人需要承受可能会有的风险。然而,最终他们却认为该软件的缺乏可能会比那些不可避免的bug给更多的人造成伤害。

(图)Mariner I发射Mariner I发射

按照时间顺序,著名网络媒体Wired News列出了到目前为止10个最严重的软件bug。

1962年7月28日, Mariner I空间探测器事件。

Mariner 1航空软件的bug导致火箭在发射时偏离了其的预期轨道。任务控制器在大西洋上空将整个火箭摧毁。在对这起事故进行调查中发现,使用铅笔撰写下的一个公式被不正确的录入到计算机代码中,直接导致计算机错误的计算了火箭的运行轨道。

1982年—苏联的石油管道事件。

根据CIA(美国中央情报局)的陈述,为其工作的间谍们在苏联购买的用来控制跨西伯利亚石油管道的加拿大计算机系统中种下了一个bug。当时是苏联通过秘密购买或者偷窃美国的敏感技术来获取到了该系统。据说CIA发现了这个存在bug的程序,决定对可以通过苏联人检查的设备做一个让苏联人事与愿违的破坏,使得该设备一旦运行起来将会失败。该事件的结果据说在历史上造成了最大的非原子破坏。

1985-1987年间 -- Therac-25医疗加速器事件。

一个放射疗法的设备故障造成了在几个医疗设备中发出了致命的射线。Therac-25是一个在以前设计的基础上改进的治疗设备,该设备可能会发出两种射线:或者是一个低功耗的电子束或者是X射线。Therac-25'的X射线是通过猛烈的高能电子束撞击到一块位于电子枪和患者之间的金属目标而产生的。第二项改进是对于更旧的Therac-20'电动保险联动装置采取软件控制的方式代替,做这项改进是因为软件被认为更加可靠。

然而工程师所不知道的是20和25型号都是建立在有一个没有经过正规培训的程序员所开发的操作系统上的。由于这个不易察觉的叫做"race condition,"的bug,一个快速的打字员很可能会很偶然的配置Therac-25从而导致电子束将会在高能模式下启动。但是强烈的X射线偏移了目标。最后直接导致了五名患者死亡;其余患者受到了严重伤害。

1988年--伯克莱UNIX操作系统finger守护进程缓冲器溢出事件。

第一个网络蠕虫,莫里斯蠕虫利用缓冲器溢出在一天之内感染了2000到6000台计算机,起因是一个标准输入输出库函数gets(),原来设计为从网上获取一段文本,但遗憾的是,gets()函数没有规定输入文本的长度。过长的文本导致蠕虫入侵任何接入的计算机。程序员们试图用工作码来取代gets()函数的功能,但是他们拒绝从C语言的标准输入输出库中删除它,直到今天还保留着。

1988-1996年间--Kerberos随机数字发生器事件。

Kerberos安全系统的作者忽略了产生真正的程序随机码时使用恰当的种子,导致长达八年依赖Kerberos验证的计算机可被轻易入侵。如果漏洞不被利用,就一直不会被发现。

1990年1月15日,AT&T网络瘫痪。

利用一个新发布软件的bug可以控制AT&T #4ESS远程交换机,在邻近计算机之间发送信息引起大型计算机瘫痪,机器恢复时发送信息又导致邻近计算机当机。 一天纽约的一台交换机当机并且重启,引起它邻近交换机瘫痪,由此及彼,一个连着一个,很快,114台交换机每六秒当机重启一次,六万人九小时内不能打长途电话。当时的解决方式:工程师重装了软件以前的版本。

1993年--Intel奔腾浮点指数除法事件。

一个硅片上的错误导致Intel高性能奔腾芯片在一段范围内计算浮点指数除法时发生错误。例如4195835.0/3145727.0产生的是1.33374而不是1.33382,产生了0.006偏差。尽管该bug仅仅影响了几个用户,然而他却成了整个公众的噩梦。估计流通中的三百万到五百万的芯片存在着这样的缺陷,起初Intel仅仅为那些能够证明他们确实有高精度计算需求的用户提供了取代奔腾的芯片。最后,Intel公司只好妥协为任何投诉的人提供替代芯片。该bug给Intel最终造成了4亿7千5百万损失。

1995/1996年–致命的ping命令。

由于缺乏对IP段组装代码的完整性检查和错误的执行使得有可能通过从互联网的任意位置发送恶意的”ping”数据报而攻击多个操作系统。大部分受明显影响的是运行Windwos的计算机,当他们接受到数据报后,他们就会死锁同时显示所谓的“蓝屏死机”。但是攻击同时也影响很多Macintosh和Unix系统。

1996年6月4号—501航天飞机爆炸事件。

对于Ariane 4火箭的工作代码在Ariane 5中被重新使用,但是Ariane 5更高速的运算引擎在火箭航天计算机中的算法程序中触发了一个bug。该错误存在于将64位浮点数转换为16位带符号整数的程序中。更快的运算引擎导致了Ariane 5中的64位数据要比Ariane 4中更长,直接诱发了溢出条件,最终导致了航天计算机的崩溃。

首先501航天飞机的备份计算机崩溃,然后0.05秒之后,主计算机也崩溃了。这些计算机崩溃直接导致了火箭的主要处理器使火箭的运算引擎过载,同时导致火箭在发射40秒后解体破碎。

2000年11月 –巴拿马市国家肿瘤中心事件。

在这一系列事故中,由一家美国公司—Multidata Systems International所开发的治疗软件错误的计算了对于正处于放射治疗中的病人所应该使用的合适剂量。

Multidata的软件允许放射治疗师利用计算机屏幕的一个叫做"blocks"的金属装置来保护健康组织以免受射线的伤害。但是该软件仅仅允许治疗师使用4个屏蔽块,但是巴拿马的医生希望用5块来保护。

医生发现他们可以通过将所有的屏蔽块画成一个在中间有孔的大块来欺骗该软件。然而医生们没有意识到的是Multidata软件在这种配置中根据该空画法的不同给出了不同的答案:如果该孔是在一个方向绘制的,则给出正确的计算出的剂量,如果是在另外不同的方向绘制的,软件就会推荐出要比必须需要暴露的射线的两倍剂量。至少有8个病人在这次事故中丧生,同时接受了过多剂量放射的20个病人产生了严重的健康问题。被要求手动两次检查计算机的计算的医生被以谋杀罪起诉。

参考文献编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
9

标签: 十大软件Bug

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。