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

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.

相关推荐
热点推荐
老师给外籍小朋友剥虾视频疯传,评论区骂惨了,怒斥:枉为人师

老师给外籍小朋友剥虾视频疯传,评论区骂惨了,怒斥:枉为人师

谈史论天地
2026-04-09 08:46:08
内维尔谈阿森纳英超剩余赛程:全避开硬仗,赛程再好不过了

内维尔谈阿森纳英超剩余赛程:全避开硬仗,赛程再好不过了

慢歌轻步谣
2026-04-20 10:37:49
詹姆斯在湖人战胜火箭中,创造了斯托克顿都无法企及的NBA纪录

詹姆斯在湖人战胜火箭中,创造了斯托克顿都无法企及的NBA纪录

好火子
2026-04-19 22:10:22
争议!广东“挥泪斩马谡”竟是烟雾弹?硬汉中锋空降,实则在赌未来

争议!广东“挥泪斩马谡”竟是烟雾弹?硬汉中锋空降,实则在赌未来

烟浔渺渺
2026-04-20 07:29:08
39+5+4!下克上!季后赛第一场打爆冷!黑八要来了……

39+5+4!下克上!季后赛第一场打爆冷!黑八要来了……

7号观察室
2026-04-20 11:19:18
捡漏神操作!曼联锁定 5200 万皇马巨星,完爆队内废柴

捡漏神操作!曼联锁定 5200 万皇马巨星,完爆队内废柴

澜归序
2026-04-20 01:07:19
世锦赛今日赛程:丁俊晖再战土豆哥,吴宜泽、雷佩凡、范争一登场

世锦赛今日赛程:丁俊晖再战土豆哥,吴宜泽、雷佩凡、范争一登场

老高说体育
2026-04-20 10:06:05
《八千里路云和月》大结局,田家泰牺牲,七哥的真正身份曝光

《八千里路云和月》大结局,田家泰牺牲,七哥的真正身份曝光

看尽落尘花q
2026-04-19 23:49:01
沉默2天后,中方通告全球,藏南是中国领土,并送给印度一个忠告

沉默2天后,中方通告全球,藏南是中国领土,并送给印度一个忠告

通文知史
2026-04-19 11:55:07
MSC神女号安全通过霍尔木兹海峡

MSC神女号安全通过霍尔木兹海峡

第一财经资讯
2026-04-19 23:04:28
中南医院院长被查,曾吹嘘自己老婆被他器重的人,肠子都悔青了

中南医院院长被查,曾吹嘘自己老婆被他器重的人,肠子都悔青了

江山挥笔
2026-04-19 15:03:25
本田被曝将关停广州、武汉两座燃油车工厂 年产能砍至72万辆

本田被曝将关停广州、武汉两座燃油车工厂 年产能砍至72万辆

金融界
2026-04-17 13:45:07
打不得!日本战舰闯入台海峡,我军为什么不直接击沉它?

打不得!日本战舰闯入台海峡,我军为什么不直接击沉它?

趣文说娱
2026-04-18 19:34:03
网友喊话让何润东代言霸王茶姬,此前他已接到多个商务合作,最近30天抖音涨粉近200万,品牌客服回应

网友喊话让何润东代言霸王茶姬,此前他已接到多个商务合作,最近30天抖音涨粉近200万,品牌客服回应

极目新闻
2026-04-19 17:19:41
你做初一,我做十五!日舰过航台海三天后,052D冲向横当水道

你做初一,我做十五!日舰过航台海三天后,052D冲向横当水道

透视到底
2026-04-20 10:07:00
上海连续5天雨,这天雨势最明显

上海连续5天雨,这天雨势最明显

上观新闻
2026-04-20 09:28:05
回顾:2005年梁海玲器官被切后惨死豪宅,有人透露:她知道的太多

回顾:2005年梁海玲器官被切后惨死豪宅,有人透露:她知道的太多

历来都很现实
2024-09-24 23:58:16
有人说她要“背锅”

有人说她要“背锅”

徐静波静说日本
2026-04-19 07:11:41
不装了赖清德、马英九暴露真面目!国民党发甲级动员,想决一死战

不装了赖清德、马英九暴露真面目!国民党发甲级动员,想决一死战

青梅侃史啊
2026-04-19 19:17:48
文强背后的女人:王紫绮与她的 “亮点帝国”,罪恶藏在旗袍之下

文强背后的女人:王紫绮与她的 “亮点帝国”,罪恶藏在旗袍之下

干史人
2026-04-17 18:51:57
2026-04-20 11:52:49
码农翻身 incentive-icons
码农翻身
有趣且硬核的技术文章
252文章数 645关注度
往期回顾 全部

科技要闻

蓝色起源一级火箭完美回收 客户卫星未入轨

头条要闻

男子收到陌生账号转账8万余元 3天后奢侈品牌商家找来

头条要闻

男子收到陌生账号转账8万余元 3天后奢侈品牌商家找来

体育要闻

七大奖项候选官宣!文班或全票DPOY

娱乐要闻

鹿晗生日上热搜,被关晓彤撕下体面

财经要闻

月之暗面IPO迷局

汽车要闻

外观非常惊艳 全新一代宝马6系有望回归

态度原创

家居
健康
房产
本地
公开课

家居要闻

自然慢调 慢享时光

干细胞抗衰4大误区,90%的人都中招

房产要闻

官宣签约最强城更!海口楼市,突然杀入神秘房企!

本地新闻

12吨巧克力有难,全网化身超级侦探添乱

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版