时区设置背后的一组175流程及使用方法|

众所周知,时区设置是计算机的一项基本功能,由大多数操作系统的用户界面提供。通常情况下,用户只需要手动设置一个粗略的地理位置来确定时区时间,然后不需要更改,除非更改到另一个国家。

时区设置的背后是一大套关于全球许多代表性地点的时间历史的代码和数据,称为时区数据库(即 tz、tzdata 或 zoneinfo),它会定期更新以反映政治变化时区边界、UTC 偏移量和夏令时规则。按照 BCP 175 流程管理对 tz 的更新。

尽管大多数计算机用户从未听说过时区数据库,但 tz 数据库对于全世界的计算机来说都非常重要。所有基于 Linux 和 Mac 的计算机都从一个极其重要的数据库(时区数据库)中提取时区。目前,使用该数据库的项目包括:GNU C 库(用于 GNU/Linux)、Android、FreeBSD、NetBSD、OpenBSD、Chromium OS、Cygwin、MariaDB、MINIX、MySQL、webOS、AIX、BlackBerry 10、iOS、macOS、 Microsoft Windows、OpenVMS、Oracle 数据库、Oracle Solaris 等。

如果您想知道您的计算机在 Ubuntu Linux 中配置的时区,您可以在终端中运行“timedatectl”命令。

tz数据库背后,一个人在维护

tz 数据库由 David Olson 创建,收集自 1970 年以来广受认可的民用时钟的时区信息。2011 年,互联网名称与数字地址分配机构 ICANN 接管了全球计算机和网站广泛使用的时区数据库.

具体的维护工作现在由互联网号码分配机构 (IANA) 负责。Paul Eggert 是时区数据库的项目负责人,该职位被称为 TZ 协调员。

Paul Eggert,图片来源:UCLA官网

Paul Eggert 是一名计算机科学家,在加州大学洛杉矶分校计算机科学系任教,是 GNU/Linux 核心开发人员之一。

据说学生要从他那里获得高分几乎是不可能的。有上过Eggert课程的网友表示,Eggert的课程很有趣,但是考试很“疯狂”。他的考试考的不是计算机知识,而是哲学。“有一次他的期中考试有一道题,他自己也不知道答案,他说他希望有一个学生能帮他回答这个问题……”并回答学生,因为他知道这是没用的。”

我和同学在准备期中考试的时候计算机操作系统第二版课后答案,一个助教说:“我给你一些期中考试的问题和答案,但没什么用。” 几个学生问助教这是什么意思。“你会知道的。一定要回答每一个问题,写下任何想到的东西。” 埃格特总是在教新东西,他的期中考试题目从不重复。有一次,他甚至直到期中考试的前一天晚上才开始准备考题。全班平均通过率为30%,TA给了一些分数,因为大多数人都答错了。

网友“GoatRocketeer”分享道:

有一次,我向他寻求家庭作业的帮助,因为我不确定其中一个解决方案是否朝着正确的方向发展。我告诉他他说“这很有趣”,我说“这是一个很好的补充,但不知道是对还是错”,他回答说“我不知道答案,我只是想看看你们是什么你认为?” 最后,他们没有回答我的问题!

当然,埃格特会犯错误,但他的错误也可能是考试题。

Eggert 在一次关于汇编的演讲中指出,一些编译器会以某种方式翻译代码,并给出了其背后的原因。只有他错了。后来,一名学生通过电子邮件向他解释了正确的推理过程。这直接进入了期中考试题:“XXX 是我认为编译器进行优化的原因。解释我错在哪里,为什么我会犯这个错误,以及正确的推理过程是什么。”

Eggert 的考试包含课堂或作业中未涵盖的内容,这让一些学生感到沮丧。埃格特解释道:“考试当然会有新的内容,有些学生旷课,作业作弊,所以我只在考试的时候引起大家的注意,这是最好的教学时间!”

埃格特办公室的门总是开着的。无论是讲座还是教学时间,他都在那里回答任何人的任何问题。他总是面带微笑。“我记得有一次他不得不离开去看眼科医生,但他提出让学生和他一起去,他还在路上回答他们的问题,甚至在他到达候诊室之后,”GoatRocketeer 在帖子。

有网友评论说:“听起来确实像维护时区数据库的那种人。” 埃格特的学生们对他充满敬意和敬畏。但他的学生可能不知道 Eggert 几十年来一直参与记录时区数据。

在 Eggert 的故事走红后,一位 Reddit 用户分享了来自 xkcd 的漫画,该漫画描绘了互联网的另一面,这并不为人所知:许多互联网程序依赖于一个小项目及其员工(例如 Eggert 等人的工作),以为使用计算机的人提供真正必要的服务。

除了 Eggert 之外,一些开发者也在自己守护一个重要的开源项目。比如开源项目cURL的真正核心主要开发者Daniel Stenberg。

cURL 主要包括 curl(命令行工具)和 libcurl(C 语言 API 库)。curl 和 libcurl 几乎在所有 Internet 服务器上都可用,并且是 PHP 的默认传输引擎,全球近 20 亿个网站中的近 80% 都在使用它。虽然 cURL 项目有很多贡献者,但 Daniel 对 cURL 进行了 16,000 次提交,并在几年前全职维护了该项目。目前,curl 完全独立于任何组织和公司。

有句话是这样说的:世界上一半的科技大师是比尔盖茨和史蒂夫乔布斯这样的人,另一半叫罗纳德,他们运行着一台机器叫Runk,这台机器代表了罗纳德的万能数字计数器来做所有事情地球上每台机器的数学。总有一些人不为大众所熟知,却默默地为世界做贡献。

单人维修会不会让社区不“和谐”?

一个人维护一个项目听起来很酷,但社区并没有大家想象的那么和谐。时区项目也有自己的社区,但如果你认为社区简单、无聊,甚至很少有争议,那你就错了。社区目前似乎卷入了关于如何维护数据库的程序性争议。

9 月,tz 数据库社区就合并某些时区的提议进行了激烈辩论。担心 ID 剔除可能会使 1970 年之前的数据无法访问,Eggert 建议将 1970 年之后具有相同数据的多个区域合并到一个时区中。例如,使用“Europe/Oslo”作为“Europe/Berlin”的别名意味着 1970 年之前的奥斯陆数据将被柏林的数据替换。这当然遭到了很多人的反对。

著名的 Java 专家 Stephen Colebourne 说:“为什么柏林可以保留它的状态和完整的历史,而奥斯陆已经被移除了?” “答案是柏林人口更多。” 在 Colebourne 看来,项目负责人正试图通过时区的合并影响 1970 年之前的时间戳。

要了解为什么社区决策如此反复无常,您可以从观看 Tom Scott 的视频开始。Tom 在视频中指出,处理时区的最佳方法不是通过将库集成到代码中来处理时区。最好不惜一切代价避免这种情况,否则会导致各种问题。他提到了一系列令人抓狂的问题、例外和矛盾。值得庆幸的是,现在任何开发人员都可以通过简单地集成时区数据库来避免这些问题。

维护 tz 数据库的人做事吃力不讨好。汤姆的视频可能让他发疯了五分钟,但对于这些人来说,解决这些问题是他们整个职业生涯都在努力的事情。

时区管理界的精英是认真的人、科技巨头和重量级人物。在 9 月题为“时区数据库的大问题”的博文中,Colebourne 表示:

Paul Eggert 是 IANA 托管的时区数据库的项目负责人,该职位被称为 TZ 协调员。他是该领域的专家,数十年来一直参与记录时区数据。不幸的是,他目前似乎只想解决一个他认为重要的虚构问题,而忽略了对他行为的所有反对意见。

Colebourne 的尖锐批评引起了其他人的愤怒,他们指责 Colebourne 的指控过于仓促。此外,还有人提议取代 Eggert 担任 TZ 协调员。

可以看出,不仅时区大佬们目前无法就推动时区数据库前行的最佳方式达成一致,整个时区编纂和标准化的过程也是一个历史悠久且动荡不安的政治事件。 .

时区维护者,为什么这么难

事实上,时区维护过程受到严格控制并与主要行业利益相关者共享。但归根结底,时区数据库代表了其决定的一种最终仲裁者,至少从技术上来说,时区是这样解释的。

社区里有人爆出一些非洲国家只提前4天就匆忙划定时区。也许他们只是想捉弄像 Eggert 这样的人。

“政治”是对科技世界这个小角落的威胁,但有时需要政治决策。

Hacker News 中的 Y Combinator 罕见地展示了该项目的协调有多少发生在不起眼的列表项中,并且密切参与的人敏感地意识到该项目的重要性。正如一位用户在回复另一篇质疑时区是否真的那么重要的帖子时评论的那样:

“我们在阿塞拜疆的一位客户非常生气,他们的时区显示的是亚洲/埃里温。你可能不知道,阿塞拜疆和亚美尼亚正在交战。”

另一个知识点:独立之前,爱尔兰曾经有自己的时区:都柏林时间,后来被英国人废除,作为对复活节起义的惩罚。

这就是为什么世界时区社区的官方源代码读起来不像文本数据库,更像是一种独特的文学形式:一部分是历史发展(注释掉的部分),一部分是计算机可读的实际代码,一部分是琐事参考。

对于那些花费大量时间跟踪时区演变的人来说,诸如法国尝试采用十进制以及国际原子能机构定期决定在世界时间系统中增加核秒等问题是他们每天都在努力解决的问题。

时区数据库行业内部人士表示,每一次高风险的讨论都代表着避免千年虫(Y2K)灾难。这甚至可以成为好莱坞大片的素材。一个运行时区骗局的流氓国家最好在为时已晚之前弄清楚如何处理它。

写在最后

虽然 Linux 桌面上的许多应用程序可能会过时或被禁止,但时区检查器似乎从来没有出现过问题。否则,我们可能会错过无数次 Zoom 会议、面试迟到等。

现在很多创业公司都说他们做了技术创新,赚了很多钱,但是很多公司可能在短短几年内就被遗忘了,但时区数据库却不会,因为它不能被遗忘。那些处于技术堆栈底部的人计算机操作系统第二版课后答案,默默地、不知疲倦地维护着世界上许多计算机所依赖的开源项目。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论