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

glibc在默认情况下并未妥善解决Y2038问题

0
分享至

由于 Y2038 问题, Linux Kernel 早在几年前就已经切换到 64 位 time_t,而且发行版 Alpine 3.13 时也跳到了 64 位 time_t。不过近日,Alpine 安全团队主管 Ariadne Conill 发文表示 GNU libc 2.34 在支持 64 位 time_t 上存在缺陷,可能在过渡过程中产生障碍。

Alpine 安全团队主管 Ariadne Conill,图片来自于 Twitter

如果你密切关注 Linux 领域的发展和动向,肯定了解 2038 年错误(Year2038 bug)。这个问题之所以会存在,是由于到了 2038 年 1 月 19 日那天,可以用 Unix 带符号的 32 位整数时间格式表示的最新时间是 03:14:07 UTC。

可以用 Unix 带符号的 32 位整数时间格式来表示的最新时间是 2038 年 1 月 19 日 03:14:07 UTC,这是 1970 年 1 月 1 日之后过了 2147483647 秒。过了那个时间后,由于整数溢出,时间值将作为负数来存储,系统会将日期读为 1901 年 12 月 13 日,而不是 2038 年 1 月 19 日。

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。

在博文中,Conill 表示在 Alpine 使用的 musl C 库以及许多其他 UNIX C 库实现中,time_t 在新代码中总是 64 位的,并且为需要旧的 32 位函数的代码提供了兼容性存根(compatibility stubs)。当代码随着时间的推移被重建时,它将自动成为符合 Y2038 标准的代码,而无需任何努力。

微软在 msvcrt 中又前进了一步:你默认得到 64 位的 time_t,但如果你在编译时定义了 _USE_32BIT_TIME_T 宏,你仍然可以访问旧的 32 位函数。需要注意的是,上面描述的两种方法都引入了零摩擦,以获得正确的东西。

GNU 项目为过渡到新的 ABI 所采取的方法正好相反:你必须明确要求新的功能,否则你将永远得不到它。这种方法为将来改变默认值留下了可能性,但到目前为止,他们从未这样做过。

这可以从大文件支持扩展中观察到,需要处理大于 2GiB 的文件,你必须总是用 -D_FILE_OFFSET_BITS=64 来构建你的代码。同样,如果你在一个 32 位系统上,而你没有用 -D_TIME_BITS=64 来构建你的应用程序,它将不会使用符合 Y2038 的 ABI 来构建。

这是最糟糕的方式。考虑一下库:如果一个依赖关系是用 -D_TIME_BITS=64 构建的,而另一个依赖关系没有,并且它们需要相互交换结构 timespec 或类似的东西,怎么办?那么,在这种情况下,你的程序很可能会崩溃或出现奇怪的行为,因为你在编译的程序中没有持续使用相同的结构 timespec。

幸运的是,如果你的目标是32位系统,而且你想处理大于2GiB的文件,或者有信心你的代码在2038年还能继续工作,有一些Linux发行版是建立在Musl之上的,比如Alpine,这将使你不必处理GNU libc的特殊性

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

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.

相关推荐
热点推荐
革命性突破!美企成功研制核电池,几乎无辐射,电量够用100年

革命性突破!美企成功研制核电池,几乎无辐射,电量够用100年

十三级台阶
2024-06-15 15:51:27
最新确认:杭州明晚起反转!全省预警多到快挂不下了!

最新确认:杭州明晚起反转!全省预警多到快挂不下了!

明珠电视
2024-06-15 16:55:04
女性私处的“芳草”,竟然是越“浓密”越“渴望”?

女性私处的“芳草”,竟然是越“浓密”越“渴望”?

水白头
2024-06-16 00:06:07
这16岁?!亚马尔1v4单挑克罗地亚整条防线,2次变向直接晃倒对手

这16岁?!亚马尔1v4单挑克罗地亚整条防线,2次变向直接晃倒对手

直播吧
2024-06-16 01:37:13
瑞士峰会传来消息,好家伙,幸亏中国没去参加,普京早就布好局了

瑞士峰会传来消息,好家伙,幸亏中国没去参加,普京早就布好局了

千里持剑
2024-06-15 12:53:07
中国女排3-2土耳其!赛后评分:张常宁满分+4将出彩,一将需提升

中国女排3-2土耳其!赛后评分:张常宁满分+4将出彩,一将需提升

理工男评篮球
2024-06-15 23:27:43
中国女排3-2逆转世界第一:获8.24分稳固亚洲之王 锁定曼谷总决赛

中国女排3-2逆转世界第一:获8.24分稳固亚洲之王 锁定曼谷总决赛

颜小白的篮球梦
2024-06-15 22:41:33
倒查30年后补税是个危险信号

倒查30年后补税是个危险信号

深度财线
2024-06-15 22:03:47
惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

人生趣事悟语
2024-06-16 03:56:19
姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

兰子记
2024-06-15 21:53:08
中国女排3-2土耳其女排!谁是赢球的最大功臣,赛后数据一目了然

中国女排3-2土耳其女排!谁是赢球的最大功臣,赛后数据一目了然

邹维体育
2024-06-15 23:10:51
这不红牌?罗德里破坏空门机会吃到黄点,佩里西奇疯狂抗议

这不红牌?罗德里破坏空门机会吃到黄点,佩里西奇疯狂抗议

直播吧
2024-06-16 01:48:20
G7发布联合声明,不许中国援俄,不许武力收台,也不许反制菲律宾

G7发布联合声明,不许中国援俄,不许武力收台,也不许反制菲律宾

贺文萍
2024-06-15 16:53:41
新情况!高层对人民币的态度180°转弯

新情况!高层对人民币的态度180°转弯

米筐投资
2024-06-15 07:04:04
继比尔盖茨后、美知名经济学家给出预测:断供中国芯片最多10年

继比尔盖茨后、美知名经济学家给出预测:断供中国芯片最多10年

嘿哥哥科技
2024-06-16 00:37:14
著名女优玩偶姐姐HongKongDoll,被爆料真实面目?

著名女优玩偶姐姐HongKongDoll,被爆料真实面目?

吃瓜党二号头目
2024-06-13 10:15:52
0-2到3-2!女排绝地反击,逆转世界第1,日本队空欢喜一场!

0-2到3-2!女排绝地反击,逆转世界第1,日本队空欢喜一场!

钉钉陌上花开
2024-06-15 22:43:32
闹大了!陈芋汐代言李宁,造型酷似日本风,网友直接炸锅了

闹大了!陈芋汐代言李宁,造型酷似日本风,网友直接炸锅了

吃鱼思故渊
2024-06-15 21:49:52
3-2大逆转!中国女排史诗一战,掀翻世界第1昂首出线,张常宁爆发

3-2大逆转!中国女排史诗一战,掀翻世界第1昂首出线,张常宁爆发

体坛纪录片
2024-06-15 22:41:36
新闻背后:贵州卫健委美女厅官杨慧落马,人上人到鬼中鬼的人生路

新闻背后:贵州卫健委美女厅官杨慧落马,人上人到鬼中鬼的人生路

肖飞说
2024-06-16 01:24:07
2024-06-16 07:14:44
cnBeta.COM
cnBeta.COM
提供IT行业即时资讯
51305文章数 68711关注度
往期回顾 全部

科技要闻

TikTok开始找退路了?

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

体育要闻

莱夫利,让困难为我让路

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

新情况!高层对人民币的态度180°转弯

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

游戏
家居
时尚
手机
本地

魂师对决:SP唐昊返场抽取价值分析!真身幻金真是一个都少不了!

家居要闻

空谷来音 朴素留白的侘寂之美

艳压四方的刘亦菲,也没能赢她

手机要闻

小米澎湃OS再次公布进展通报:多项问题优化中,且全是内置应用!

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

无障碍浏览 进入关怀版