软件开发 过程中,不可避免的会出现软件Bug。在商业软件中,一个小小的Bug可能造成数以百万计的损失,那么在其他高科领域呢?
按照时间顺序,著名网络媒体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个病人产生了严重的健康问题。被要求手动两次检查计算机的计算的医生被以谋杀罪起 诉。

记住这些软件Bug,吸取其中的教训,如果你正在从事一个高科技领域的软件开发,千万要留心潜伏在身边的Bug。

感谢软件定制开发

软件史上的10大bug相关推荐

  1. 软件史上比较严重的bug案例

    分享几个软件史上比较严重的bug案例... 堪称CS史上最严重错误,至少造成10亿美金损失: "我把 Null 引用称为自己的十亿美元错误.它的发明是在1965 年,那时我用一个面向对象语言 ...

  2. 软件史上最伟大的十大程序员

    [ 软件史上最伟大的十大程序员 ] 1.John Carmack(约翰.卡马克) John是程序员的教父.他一直致力与推翻世界快速工业化的障碍,在引领时代浪尖的同时仍能将研究成果作为游戏的一部分,它的 ...

  3. 史上最全大数据学习资源整理

    史上最全大数据学习资源整理 ----------------------------------------------------------------------------------- 转载 ...

  4. 史上最全“大数据”学习资源整理

    转自:史上最全"大数据"学习资源整理 ------------ 资源列表: 关系数据库管理系统(RDBMS) MySQL:世界最流行的开源数据库; PostgreSQL:世界最先进 ...

  5. 史上最佳十大游戏排名 魔兽世界位列第十

      史上最佳十大游戏排名 魔兽世界位列第十 随着游戏行业的不断扩大,每位玩家都能获取自己希望购买的心仪游戏.棒透了的独立游戏也总是不断出现.然而,那些系列性的游戏却能使我们成为永久的"回头客 ...

  6. 史上最全大数据学习资料

    史上最全大数据学习资料 阿甘 阿甘琐记 昨天 本教程包含视频和书籍两部分,视频主要是各大培训机构的教学视频,书籍主要是题主自己收集的. 关注微信公众号"阿甘琐记",后台回复&quo ...

  7. 网桥信号测试软件,史上最全的无线网桥应用知识

    原标题:史上最全的无线网桥应用知识 很多朋友多次问到关于无线网桥的相关内容,今天我们就全面的了解下无线网桥的相关知识. 一.什么是无线网桥 什么是无线网桥 无线网桥顾名思义就是无线网络的桥接,它利用无 ...

  8. android经典机型,魅族史上的经典机型大盘点 魅族 17 值得期待吗?

    好产品从来不怕晚,魅族 17 系列作为魅族首款 5G 旗舰产品,将会在 4 月底压轴出场,据爆料称这次新品将会采用 " 中杯.大杯到超大杯 " 的产品线划分,更引发了大家对魅族 1 ...

  9. 老榕智能建站软件_2020年,10大最佳免费建站软件

    文章目录 1 10大最佳免费建站软件 1.1 1. Site123 –是否像1-2-3一样容易? 1.2 2. Wix –国际重量级 1.3 3. Weebly –一个缺点很大的网站建设者 1.4 4 ...

最新文章

  1. Knockout应用开发指南 第六章:加载或保存JSON数据
  2. python statsmodel 回归结果提取
  3. java mqtt paho_使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例)...
  4. Centos 6.9 Kick Start 无人值守安装
  5. 数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...
  6. iis5.0+php5.0+mysql5.0配置完全手册_IIS5.0+PHP5.0+MySQL5.0配置完全手册
  7. ffmpeg将sdp转发_ffmpeg常用命令
  8. 刘宏伟计算机组成,哈工大组成原理和数据结构 ppt 计算机组成原理刘宏伟 版本一 第18讲...
  9. iCHM Reader for Mac(chm格式文件阅读器)
  10. 钉钉再放大招!打造公司文化也有智能工具,中国4300万中小企业有福了
  11. stm32L1xx系列低功模式配置+STOP模式+RTC唤醒
  12. 电脑使用哪个录制视频软件比较好
  13. layui laydate设置最小时间为当前时间
  14. 三火龙加身战无不胜 TES国际首秀告捷
  15. [Mysql] CROSS JOIN 交叉连接
  16. sql-lab 通关Less1 -65(深入学习)
  17. 武田在第11届国际霍奇金淋巴瘤研讨会上呈报霍奇金淋巴瘤数据
  18. 机器学习char1 机器学习基础
  19. xbox和微软是一个服务器吗,一个账号搞定:港服Xbox和Win10商店正式支持支付宝...
  20. [转]禁止迅雷极速版强制升级方法

热门文章

  1. 硬件:详细讲解台式电脑上的常用的几个接口!
  2. 冰羚-README.md翻译
  3. Myeclipse中java文件注释格式设置
  4. [错误分析][Error]no match for ‘operator<<‘无匹配的左移运算符
  5. 微信小程序:小程序内用户帐号登录规范调整和优化建议
  6. vue导出excel加一个进度条_运用vue导出excel碰到的那些坑
  7. 微信卡券新功能开放公告
  8. 一文带你了解什么是云计算网络运维工程师,以及2023年的就业前景
  9. GraphSage-TF代码解读
  10. LATEX 罗马数字的输入