保罗·埃格特(Paul Eggert):为什么我们的电脑总是能显示正确的时间

神译局 2021-11-15

linux服务器电脑linux系统

2352 字丨阅读本文需 6 分钟

编者按:我们已经习惯了电脑一打开就显示出正确的时间。但这并是非理所当然的,而是有一位名叫保罗·埃格特(Paul Eggert)的计算机科学家一直在负责维护全世界的时区数据库。这是一项费力不讨好的工作,我们每个电脑使用者都应该感谢他。本文来自编译,希望对您有所启发。

我开了一个YouTube小频道,不时地录制一些短片,记录如何使用Linux做某些事情。因为Linux,或者更确切地说,用Linux来做一些事情,往往是相当复杂的。

创建我自己可以参考的文档是很好的,如果其他人也发现它很有趣就更好了。昨天晚上,我录了一个简短的视频,介绍如何查找时区数据库(tzdb),以找到在某个世界时钟程序(gworldclock)上表示时区的正确方法。这段视频让我接触到了一个奇妙而怪异的世界。

正如大多数技术人员所知,时区设置是计算机的一个相当基本的特性,大多数操作系统都将其写入图形用户界面(GUI)。时区与地区相关联,而设置地区通常是基于粗略的地理位置,用户可以手动重写。一旦设置好,用户通常不需要更改它,除非用户去了其他国家。

当然,Linux提供一个可以高度定制的环境,是大多数程序员比较喜欢的。这样我们可以近距离观察一些神秘的技术是如何运作的。

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

这个特殊的制作过程让我在昨天凌晨有了一系列完全出乎意料的发现。

所有基于Linux和mac的计算机都从一个非常重要的数据库(时区数据库)中提取时区。定义时区的过程是集中完成的。这实际上是一件大事,因为人们往往严重低估Linux对整个互联网和我们所知的技术的关键作用。Linux可能只占桌面用户的一小部分,是电脑迷和计算机开发人员最喜欢的操作系统。但在服务器领域,它实际上是占主导地位的操作系统,特别是在公共云基础设施上,它正在迅速取代本地基础设施在从主机向用户获取数据包方面所扮演的角色。从天气预报到模拟物理实验,世界上几乎所有的超级计算机都在Linux上运行。Android是Linux的一个分支。如果您曾经使用过Android设备、接收过天气预报或访问过网站,那么您已经从Linux的存在中受益了。

时区数据库(有时被称为Olson数据或zoneinfo数据库)有一段迷人的历史。与大多数数据库不同的是,时区数据库比较有趣,以至于有一个关于它的维基百科条目。还有奇怪的一点是,这个数据库成为了诉讼的对象。事实上,它被认为对全球计算机的运行是非常重要的,以至于ICANN(在许多重要的互联网关系功能中批准顶级域名)把它纳入了自己的支持下。这种情况通常只会发生在某些对互联网非常重要的事情上。或者更准确地说,数据库的维护现在是互联网号码分配机构(IANA)的责任。

你觉得时区很简单,甚至无聊,或者还很有争议?我也是这么想的,直到昨晚。

对于计算机开发人员来说,时区显然是一个长期存在的威胁,而且时区维护社区目前似乎陷入了一些关于“如何最好地维护这个基本数据库”的争论中。

汤姆·斯科特的一段视频指出,处理时区的最好方法就是不要通过将库集成到代码中来处理时区。最好不惜一切代价避免这种情况发生,不然会引发各种各样的问题。他提到一系列令人发狂的问题、例外情况和矛盾。值得庆幸的是,现在任何开发人员都可以通过简单地集成时区数据库来避免这些问题。

这是维护时区数据库的人做的吃力不讨好的工作。汤姆·斯科特的视频可能让他抓狂了五分钟,但对这些人来说,解决这些问题是他们整个职业生涯的努力。

时区管理社区的精英们都是很严肃的人,是科技巨头和重量级人物。比如著名的Java专家史蒂夫·科尔伯恩(Stephen Colebourne),他最近在tzdn的一系列更新中受到了抨击。至少我是这么理解的。在一篇名为“时区数据库的大问题”的博客中,科尔伯恩(Colebourne宣)称:

保罗·埃格特(Paul Eggert)是IANA时区数据库的项目负责人,该职位被称为TZ协调员。他是该领域的专家,数十年来一直致力于记录时区数据。不幸的是,他现在无视所有反对他的行动,似乎只有他决心解决一个虚构的问题,只有他认为这是重要的。

科尔伯恩的尖锐批评已经引起了其他时区人的愤怒。他们指责科尔伯恩的声明过于草率。

看起来,不仅时区巨人们目前还不能就时区数据库向前推进的最佳方式达成一致,时区的编纂和标准化的整个过程也是一项具有长期动荡历史的有争议的政治事务。

实际上,时区维护过程被严格控制,并与主要的行业利益相关者共享。但最终,时区数据库代表着对其决定的一种最终仲裁,至少在技术上是这么解释时区的。

很多国家的人都受到时区调整的困扰。一名用户说:“我们有一个阿塞拜疆的客户,他很生气自己的时区被显示为亚洲/埃里温。”

此外,我还了解到,独立前的爱尔兰曾实行过自己的时区,后来又被英国人取消了。

这就是为什么世界时区社区的官方源代码读起来不太像文本数据库,我认为它是一种完全自成一体的文学形式。

大多数计算机用户可能从未听说过时区数据库或它的维护人员,但时区维护人员和他的团队的决定影响着全世界数亿用户的计算机。

这个项目的负责人是保罗·埃格特(Paul Eggert),他是加州大学洛杉矶分校计算机科学系的计算机科学家。他多年来一直致力于在计算机上协调时区。

埃格特的学生谈起他时,语气里充满了敬畏,据说他是一个对事情非常苛责的人。

“时区之王”的工作绝不能掉以轻心。他在这种压力下生活了十多年。可以说,埃格特是世界时区大师,他致力于维护全球时区系统。

埃格特和一个小团队的团队维护的项目位于一个堆栈的底部,而这个堆栈是数亿台计算机的基础。很多初创公司宣称他们在现有技术上取得了重大进展,还有一些更狂热的公司宣称他们找到了将空气中的水转化为石油的方法。许多这样的创业公司将在短短几年内消失。但时区数据库不会,因为它不能。

那些处于技术堆栈最底层的人,那些不知疲倦、吃力不讨好地维护着开源项目的人,也在默默无闻地煎熬着。

昨天我了解到了时区数据库(tzdb)的存在,它提供了时区配置的权威数据,全世界每天都有数亿台计算机在使用它。

在过去的一年里,我重新安装了几十次电脑。电脑上的许多东西要么周期性地失效,要么根本不能工作,但时区检测程序在任何时候都能完美地工作,甚至不受夏令时的影响。

如果不是时区数据库的存在,电脑上的时间不可能运行得这么好,那么我可能会错过会议,或者在面试中迟到。如果没有这个时区项目,我的生活可能会有所不同。

近年来,该项目已纳入ICANN的管辖范围,它的代码读起来像是JSON文件和历史小说的混合体。

虽然我确信这个项目有很多无私的贡献者,但最终确实还是只有一个人负责维护它。那就是“时区之王”保罗·埃格特。他是加州大学洛杉矶分校的计算机科学家。我们可能都欠他一声“谢谢”。

译者:Jane


免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:神译局
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...