分享几个软件史上比较严重的bug案例。。。
- 堪称 CS 史上最严重错误,至少造成 10 亿美金损失 :
“我把 Null 引用称为自己的十亿美元错误。它的发明是在1965 年,那时我用一个面向对象语言( ALGOL W )设计了第一个全面的引用类型系统。我的目的是确保所有引用的使用都是绝对安全的,编译器会自动进行检查。但是我未能抵御住诱惑,加入了Null引用,仅仅是因为实现起来非常容易。它导致了数不清的错误、漏洞和系统崩溃,可能在之后 40 年中造成了十亿美元的损失。近年来,大家开始使用各种程序分析程序,比如微软的 PREfix 和 PREfast 来检查引用,如果存在为非 Null 的风险时就提出警告。更新的程序设计语言比如 Spec# 已经引入了非 Null 引用的声明。这正是我在1965年拒绝的解决方案。”
—— 《Null References: The Billion Dollar Mistake》托尼·霍尔(Tony Hoare),图灵奖得主
航天器的设计和运行一直以来都是非常昂贵的。在1996年6月4日,欧洲航天局发射的阿丽亚娜5 火箭发射升空。但是在仅仅发射40秒之后,火箭便在空中发生翻滚,然后解体爆炸。这次火箭的爆炸带来的损失是非常严重的。不仅造成了3.7亿 美元的直接损失,更重要的是,十年的心血在短短几十秒中付之东流。造成这一原因的,仅仅是一行代码的失误。
- 计算机2000年问题
计算机2000年问题,另一个被大家熟知的名字为“千年虫”。在上世纪的某些计算机程序系统中,年份虽然是四位数,但是系统只使用的是最后两位数来表示年份。这就造成了系统在涉及到跨世纪的日期处理运算时,就会出现错误的结果。例如1900和2000,系统无法分辨是1900年还是2000年。进而引发各种各样的系统功能紊乱甚至崩溃。在一些需要精密计算时间的系统当中,这会造成非常大的问题。千年虫问题,影响到了每天计算利率的银行、核电站、医院、交通等中心。全世界花费了数十亿美元来升级计算机系统并纠正这个错误。
- 苹果公司的一次严重安全漏洞
2014 年 2 月,安全研究人员爆出苹果公司旗下的 iOS 和 macOS 操作系统出现了严重的安全漏洞,黑客可以利用这一漏洞轻松获取用户的数据。上面的这段 C 语言伪代码简单描述了当时的漏洞情况。
Good code is not bad code!
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93565 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!