网易首页 > 网易号 > 正文 申请入驻

50多年前,大神在操作系统中埋的雷,快要爆了......

0
分享至

1969年,贝尔实验室的大神Ken Thompson的老婆休假,带着儿子回娘家,时间长达三周。

趁这段时间,他决定开发一个操作系统:Unix。

(详情参见:《》)

正在如火如荼地敲代码的时候,Ken突然卡壳了,这是一件非同寻常的事情,之前的开发都是一帆风顺,行云流水的。

因为他意识到有个非常重大的问题,必须马上解决。

这个问题就是:如何在Unix中表示日期和时间?

这个问题非常重要,因为日期和时间管理对于任何操作系统来说都是关键功能,包括文件时间戳、程序调度、日志记录等。

最容易想到,也是最简单的办法就是用一个字符串来表示,例如:

1970-09-17 00:00:30.751

有年月日,时分秒,还有细粒度的微妙,并且可读性非常强。

但是这种方式明显不符合Unix的设计原则:简洁,一致性,易于使用。

原因很简单:

(1) 存储效率低下

字符串需要占用大量的空间,处理起来也更复杂

(2) 计算复杂性读比较高

比如要计算两个时间的差值,需要先解析字符串,然后进行更复杂的日期和时间计算。

解决办法

正当Ken一筹莫展之际,Dennis Ritchie端着咖啡走了过来:“兄台,遇到什么事情了?”

Ken把问题的来龙去脉讲了一遍。

Dennis沉吟道:“嗯,这确实是一个问题,得有一个简洁易用的,符合Unix设计原则的方案....”

突然,Dennis一拍大腿:“用一个整数来表示日期和时间怎么样?”

聪明异常的Ken立刻秒懂,眼睛发光:“对,先确定一个开始时间(纪元),然后这个整数表示从纪元开始到当前时间流逝的秒数!”

Dennis说:“这个纪元可以设定为:1970年1月1日00:00:00,那个时候Unix肯定发布了。”

如果这个整数是:1631280731,那就表示 2021-09-10 13:45:31 UTC

Ken Thompson决定把这种方式成为Unix Epoch Time(Unix 纪元时间)

用一个整数来表示时间戳,有几个主要的优势:

(1) 简化

通过将日期和时间表示为一个单一的整数,可以大大简化日期和时间的计算。例如,计算两个日期之间的差异就只需要对两个整数进行减法运算。

(2) 便于存储和处理

整数易于存储(占用的空间较少)且便于在各种编程语言中处理。

(3) 兼容性

Unix时间戳可以在不同的操作系统和平台之间轻松地进行交换和比较。

(4) 全球统一

Unix时间戳是从同一时刻(1970年1月1日00:00:00 UTC)开始的,所以它提供了一种在全球范围内统一的时间表示方式。

问题出现

当然,Unix时间戳也有其限制。例如,它不能很好地处理闰秒,而且直接查看Unix时间戳并不能很好地理解当前的日期和时间。

在上世纪六七十年代,电脑主要还是16位的,Ken Thompson把Unix时间戳确定为32位整数,他觉得已经够大了,再说了谁会知道Unix操作系统能用多久呢?

让人想不到的是Unix一直存活了下来,它的很多概念对整个计算机科学和软件开发领域产生了深远的影响,包括时间和日期的处理方式。类Unix的开源操作系统Linux继承了Unix的衣钵,甚至统治了服务器端的OS市场。

开发Linux的时候,也是采用了32位的整数来记录时间戳。

现在一个大问题来了,32位的有符号整数最大值是2147483647 ,只能让我们用到2038年1月19号 03:14:07 UTC

下面这个动图展示了整数溢出以后的效果:

这被称为Y2K38问题。

解决方案也非常简单,就像IPV6一样,用128位IP,可以给地球上每一粒沙子都赋予一个IP地址,并且还有大量剩余。

Unix Epoch time 可以把32位的整数变成64位。

使用64位整数,可以表示到接近290亿年后的时间,不知道那个时候地球还是否存在?

大概是从Linux 5.6版本开始,Linux内核开始全面支持64位时间戳的系统调用,但是升级了内核以后,并不意味着完事大吉,应用程序和库在编写的时候如果使用了time_t类型(早期是32位的),现在需要改成64位整数,然后重新编译,要不然依然会产生溢出问题。

嵌入式系统最有可能受到Y2K38问题的影响,一般的服务器软件通常会定期进行升级,打补丁,但是嵌入式软件一旦随着硬件发布出去,就很少更改,很可能会运行到2038年。

尾声

在Unix Epoch Time确定下来30年后,一个准备转行Java程序员的年轻人打开了Java 的Date类。

Date内部实际上存储的就是一个长整型的数(long),它表示的是自1970年1月1日 00:00:00 (即Unix Epoch时间)以来的毫秒数。

他觉得非常奇怪:为什么是1970年1月1日 00:00:00呢?是谁确定了这么一个古怪的日期呢?

后记:Ken Thompson和Dennis Ritchie一起确定Unix纪元时间的故事是我杜撰的,大家了解下Unix纪元时间就好,不要当真。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“倾家荡产也赔不起!”货车司机高速上弄丢13块银砖:捡到归还者一块酬谢2万元

“倾家荡产也赔不起!”货车司机高速上弄丢13块银砖:捡到归还者一块酬谢2万元

都市快报橙柿互动
2025-09-16 20:07:54
娱乐圈又炸开锅了!张佳宁和高至霆这对相差6岁的姐弟恋被曝秘恋三年

娱乐圈又炸开锅了!张佳宁和高至霆这对相差6岁的姐弟恋被曝秘恋三年

草莓解说体育
2025-09-17 12:57:08
尘埃落定!穆帅达成协议!最快本周上任,时隔25年回归,球迷感动

尘埃落定!穆帅达成协议!最快本周上任,时隔25年回归,球迷感动

阿泰希特
2025-09-17 15:15:27
沈阳太二酸菜鱼被曝已全部闭店,客服:属实,最近一家闭店时间是9月1日

沈阳太二酸菜鱼被曝已全部闭店,客服:属实,最近一家闭店时间是9月1日

极目新闻
2025-09-16 14:37:26
上海一天创下三个气象纪录,未来10天难见高温

上海一天创下三个气象纪录,未来10天难见高温

上观新闻
2025-09-17 21:20:09
以余生为笺,摹你眉间雪

以余生为笺,摹你眉间雪

時代亿人
2025-09-14 07:02:24
根本逃不掉:微软将在Windows 11上强制安装Microsoft 365 Copilot!

根本逃不掉:微软将在Windows 11上强制安装Microsoft 365 Copilot!

快科技
2025-09-17 19:23:09
多名钓鱼博主自发清理贵州北盘江垃圾,当地政府出手,已有上百人参与

多名钓鱼博主自发清理贵州北盘江垃圾,当地政府出手,已有上百人参与

上游新闻
2025-09-17 14:07:05
今年貌似失业的人更多了

今年貌似失业的人更多了

Spenser
2025-09-17 18:58:54
中国能迅速崛起,离不开这三大国家的帮助?其中一个令人意外

中国能迅速崛起,离不开这三大国家的帮助?其中一个令人意外

近史博览
2025-09-02 13:03:10
台军提醒民众:开战时,解放军会扮成台军,你们看见穿军服的就跑

台军提醒民众:开战时,解放军会扮成台军,你们看见穿军服的就跑

阿讯说天下
2025-09-18 05:10:46
【美股收评】 美联储年内首次降息引发市场波动 美股三大指数涨跌不一 小盘股结束低迷期

【美股收评】 美联储年内首次降息引发市场波动 美股三大指数涨跌不一 小盘股结束低迷期

FX168美股聚焦
2025-09-18 04:37:09
独家丨SU7 Ultra遇冷,小米汽车调整相关销售体系

独家丨SU7 Ultra遇冷,小米汽车调整相关销售体系

亿欧
2025-09-16 18:04:54
气势如虹:乌军大反攻

气势如虹:乌军大反攻

书生论剑
2025-09-16 02:01:05
陈梦宣布回归!目标很明确,不只是冠军!给孙颖莎王曼昱带来压力

陈梦宣布回归!目标很明确,不只是冠军!给孙颖莎王曼昱带来压力

眼界纵横
2025-09-17 22:56:50
蔚来获11.6亿美元注资

蔚来获11.6亿美元注资

证券时报
2025-09-17 18:20:04
这个队真奢侈!首发五个人,四个全明星,一个全明星三分冠军

这个队真奢侈!首发五个人,四个全明星,一个全明星三分冠军

球毛鬼胎
2025-09-17 20:08:28
黄多多在纽约地铁被偶遇了,网友夸赞她很有气质,透着股清冷感

黄多多在纽约地铁被偶遇了,网友夸赞她很有气质,透着股清冷感

娱圈小愚
2025-09-16 08:59:12
这个决定,重塑了中华民族的命运!也终将改写全球的未来!

这个决定,重塑了中华民族的命运!也终将改写全球的未来!

一个坏土豆
2025-09-16 19:52:16
洪秀柱摊牌!两岸统一方案亮相,喊话:是时候担当了

洪秀柱摊牌!两岸统一方案亮相,喊话:是时候担当了

爱看剧的阿峰
2025-09-18 02:33:05
2025-09-18 06:28:49
码农翻身 incentive-icons
码农翻身
有趣且硬核的技术文章
174文章数 544关注度
往期回顾 全部

科技要闻

网易评测iPhone 17系列:今年升级值得买吗

头条要闻

以色列总理称中国对以色列“信息围堵” 中方回应

头条要闻

以色列总理称中国对以色列“信息围堵” 中方回应

体育要闻

海港半场丢三球0-3神户胜利船 亚冠精英联赛5连败

娱乐要闻

第六代导演为什么没办法成为市场主流?

财经要闻

美联储降息25个基点 预计年内还降两次

汽车要闻

以用户为锚,“听劝”的岚图一路狂飙

态度原创

艺术
家居
手机
本地
教育

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

家居要闻

功能兼备 温暖白色城堡

手机要闻

2025款Apple Watch全系怎么选?SE3成最大黑马​!

本地新闻

云游忻州 | 慢时光!老街逛吃,烟火气超上头~

教育要闻

高中拼的不是“天赋”,是你能不能熬下去

无障碍浏览 进入关怀版