代码历史上最昂贵的 7 个错误( 二 )


调查委员会调查了爆炸的原因 , 并在两周内发布了一份报告 。 原来 , 失败的原因是惯性参考系统中的软件错误 。 阿丽亚娜5上安装的软件最初是为阿丽亚娜4开发的 。 阿丽亚娜5有一个更强大的引擎 , 这导致了以前版本不可能出现的错误 。
与火箭相对于平台的水平速度相关的64位浮点数被转换为16位有符号整数 。 该数字大于这是可存储在16位有符号整数中的最大整数32767 , 因此转换失败 。 因此 , 在第39秒 , 火箭在空气动力的作用下开始崩溃和自毁 。
奔腾处理器漏洞:4.75亿美元
代码历史上最昂贵的 7 个错误
文章图片
PentiumFDIV漏洞是最著名、或者说是最臭名昭著的英特尔微处理器漏洞 。 它旨在变得更快、更准确 , 但结果却被窃听并导致作为英特尔SRT算法一部分的查找表出现错误 。
为了将浮点标量代码的执行速度提高3倍 , 向量代码的执行速度提高5倍 , 与486DX芯片相比 , 英特尔决定使用SRT算法 , 该算法可以在每个时钟周期生成两个商位 , 而传统的486移位和减法算法每个周期仅生成一个商位 。 此SRT算法使用查找表来计算浮点除法所需的中间商 。 Intel的查找表由1066个表条目组成 , 其中由于编程错误 , 有五个没有下载到可编程逻辑阵列(PLA)中 。 当浮点单元(FPU)访问这五个单元中的任何一个时 , 它(FPU)取零而不是+2 , 这应该包含在“缺失”单元中 。
在最坏的情况下 , 此错误的发生率可能高达十进制数的第四位有效数字 , 但发生这种情况的可能性为3600亿分之一 。 错误出现在第9位或第10位十进制数字中是最常见的 , 这种情况发生的几率为90亿分之一 。 然而 , 心怀不满的客户认为每个用户都应该得到正常工作的硬件并要求更换 。
莫里斯蠕虫:1亿美元
代码历史上最昂贵的 7 个错误
文章图片
如果说一个试图解决问题的学生不小心创建了恶意软件 , 导致价值1亿美元的损失来弥补损失 , 你会相信吗?可确实如此 , 这正是1988年11月2日发生的事情 。 康奈尔大学的研究生罗伯特·泰潘·莫里斯不小心创建了一个恶意软件程序 。 起初 , 它是程序中的一个无害实验 , 但代码中有一个小错误 。 该恶意软件开始迅速传播 , 随后摧毁了数千台计算机 。
罗伯特莫里斯被指控犯有网络犯罪 , 并因此被罚款10000美元 。 然而 , 恶意软件总共导致了1亿美元的花费来修复受影响的计算机 。
莫里斯的律师声称 , 该蠕虫有助于提高网络安全 , 因为它有助于开发防病毒软件 , 并在未来让用户意识到此类恶意软件 。 后来 , 莫里斯成为了YCombinator的联合创始人 。 他是麻省理工学院的副教授 。 带有恶意软件源代码的软盘存储在波士顿大学 。 让我们只希望它不会变异 。
而比事件影响更大、更深远的是:黑客从此真正变黑 , 黑客伦理失去约束 , 黑客传统开始中断 。 大众对黑客的印象永远不可能回复 。 而且 , 计算机病毒从此步入主流 。
Knight破产:4.4亿美元
代码历史上最昂贵的 7 个错误
文章图片
如果美国股票市场的一个关键利益相关者开始以高价买入 , 以低价卖出 , 会怎么样?听起来不是一个好的贸易策略 , 对吧?这正是发生在奈特身上的事情 , 差点导致他们破产 。
代码历史上最昂贵的 7 个错误】2012年8月1日上午 , 发生了一件任何一位CEO都会做的噩梦 。 花了17年时间才建成的建筑在几个小时内几乎倒塌 。 一些新的交易软件中有一个bug , 只有在纽约证券交易所当天开市时才被激活 。 这个错误的软件让Knight掀起了一场收购狂潮 , 很快 , 该公司就在交易的第一个小时内购买了约150家不同公司的股票 , 价值约70亿美元 。