闰年计算中的计算机Bug

不知道你有没有看过凯瑟琳泽塔琼斯主演的《偷天陷阱》,里面主题思想是用银行结算系统的千年虫bug,精心设计,盗取银行几十亿的精彩动作片。所谓2000 年千禧年的千年虫,其实就是计算机计算闰年的bug。

这个闰年计算的历史源远流长,我一直以为已经淘汰进了垃圾堆,结果竟然还有新闻报道2024年2月29日,又因为闰年多出1天,导致某些公司的系统出现问题的报道,这个维护人员麻痹大意,翻历史的旧账确实让2024年的我有穿越的喜感。

电脑系统中的时间计算,是非常复杂的问题。

其实千年虫bug以及 Unix到2038年的问题都是可预测的,只要软件更新相关兼容功能,就不会发生宕机、错误等问题。

然而现实情况是,闰年问题是不可预测的,编制程序的才子能力真的是良莠不齐,很多拿来的代码直接用,很少审计其中的Bug,尤其是越明显的bug越没有人去认真审核,于是,只有时间来到 2月29日或者闰年的最后一天,程序出现故障,才真的去解决问题。

历史上,有很多闰年计算导致的财产损失案例。

1996年12月31日 00:00,新西兰铝冶炼厂 的 660 台电脑全部宕机,原因是程序无法处理一年的第 366 天,所以闰年的最后一天不会工作......由于没有程序来调节问题,最终导致了 100 万美元的损失。

2000年12月31日,挪威铁路公司的列车无法运行。问题与铝冶炼厂相同,好在工程师临时将时钟调回一个月,这才启动了列车。

2008年12月31日,微软的 Zune 30(MP3)完全卡住,一整天都无法使用。而 Zune 30 刚发售两年。

2010年3月1日,索尼的 PS3 厚机错误的以为这天是 2月29日,然后导致网络连接错误。

每次闰年(甚至不是闰年),总会有程序发生各种错误。即使在 2020 以及 2024 年,情况也没有好转。所以这算是每 4 年一次的程序故障日吧。

希望2000 年的千年虫真的成为历史,未来 2038 年的 Unix 时间戳问题不会让银行系统结算出现崩溃。

相关推荐
fan_00029 分钟前
LKT4304新一代算法移植加密芯片,守护 物联网设备和云服务安全
物联网·安全
AI创世纪35 分钟前
WIN11 UEFI漏洞被发现, 可以绕过安全启动机制
网络·安全
xiaocao_102337 分钟前
手机备忘录:安全存储与管理个人笔记的理想选择
笔记·安全·智能手机
Gemma's diary41 分钟前
Ubuntu开发中的问题
linux·运维·ubuntu
徊忆羽菲44 分钟前
Linux下php8安装phpredis扩展的方法
linux·运维·服务器
PH_modest2 小时前
【Linux跬步积累】——thread封装
linux·运维·服务器
秋说2 小时前
本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程
linux·运维·ubuntu
晚秋贰拾伍2 小时前
设计模式的艺术-命令模式
运维·设计模式·运维开发·命令模式·开闭原则
happybasic2 小时前
一个基于Python+Appium的手机自动化项目~~
运维·appium·自动化
A charmer2 小时前
Linux 进程环境变量:深入理解与实践指南
linux·运维·服务器·开发