隐藏在北极的代码

2019-12-02 原文 #Nei.st 的其它文章

当人类文明崩塌的时候,至少我们的软件还能有备份

抵达北极之前,最后一站是位于挪威北部、沿北纬 80 度的斯瓦尔巴群岛。

在挪威斯瓦尔巴群岛,挪威人和俄罗斯人开的老煤矿目前大多已关闭,因此,当地人给这片广袤的冻土带粘贴了新标签——令科学家、有末日忧患意识的求生者以及有末日忧患意识的科学家向往的地方。在斯瓦尔巴一带,一切都可以避开外部世界的压力藏匿起来。即便是战争时期,根据现有的国际协定,这里应能保持中立。可以说,这里是存放一、两个全球重新开机按钮的理想地点。

其中,地位最重要的要属斯瓦尔巴全球种子库 (Svalbard Global Seed Vault),这里保存着许多种类的植物——包括对人类最重要的农作物——的种子,以防范人类因为瘟疫或核灾难而发生大饥荒。种子库外表看上去像是电影里的某种场景,入口处是一个三角形尖碑,高高地耸立在皑皑白雪覆盖的荒原上,闪烁着明亮的绿灯。

不过,弗里德曼 (Nat FrInternet Explorerdman) 来到这里并不是为了研究其以对抗世界末日为主题的美学。今年 42 岁的弗里德曼是微软 (Microsoft) 旗下世界一流的软件代码托管平台 GitHub 的行政总裁。10 月 24 日,弗里德曼从旅馆出来,跳上一辆小型货车,开了 15 分钟后来到一处废弃的煤矿,然后带上矿工帽和头灯。在矿井深处一处冰冷且安静得可怕的信道里,出现在弗里德曼面前的是一个看起来像金属工具棚的地方。「这里比我想像的更像矿井,更简陋,岩石上布满原始孔洞,」他说。

这里就是北极世界文件库 (Arctic World Archive),跟种子库堪称同类,但远没有它那么有趣。弗里德曼用一把钥匙打开一个储物柜的门,里面存放着世界上现有的大量开放原代码 (open source,简称开源) 软件的代码。服务器和 USB 手指耐用性不够,无法长期保存它们,因而,各种数据以编程语言写入这些看上去像老式电影胶片一样的东西里。每卷胶片大约几公斤重,存放在薄饼盒大小的白色塑胶盒里。它其实是微型胶片。借助一只放大镜,你——或者末日时代的幸存者们——可以看到这些数据,包括图片、文本或者一行行代码。一家名叫 Piql 的挪威公司用耐久性超强的胶片制作了这些专用胶卷,外层镀了氧化铁粉末,以增强其抵抗世界末日的能力。Piql 表示,这些材料在正常条件下能保持 750 年,在寒冷、干燥、含氧量低的洞穴里或许能保持 2000 年。

弗里德曼将一盒胶片放到代码库的一个架子上,旁边是几十盒其他内容的文件,包括梵蒂冈的数据、巴西土地登记数据、多部意大利电影,还有一家汉堡连锁店的特色酱汁配方。去年被微软出资 75 亿美元收购的 GitHub 有一个计划,要成为这个文件库到目前为止最大的租户。弗里德曼说,GitHub 最终将在这个文件库里存放 200 盒胶片,每盒存有 120GB 开放原代码。第一卷胶片里已包括 Linux 和 Android 两套操作系统,外加 6000 个重要的开放原代码应用程序 (app)。

弗里德曼戴的头灯也许看上去像是在玩特技表演。的确,如果这个世界有朝一日被毁灭到斯瓦尔巴会成为小麦和粟米种子的最后一个保存地,那么,YouTube 等网站的原代码 (Source code) 在人类最重要需求的串行里或许只能排在很靠后的位置。然而在弗里德曼看来,它是下一步的一个很自然的选择。他认为,开放原代码与文学和艺术杰作一样,是人类最伟大的成就之一。它已成为现代世界种种文明成果的基石——不仅对互联网、智能手机如此,对卫星、医疗设备、科学工具和机械人等也是如此。

GitHub CEO Nat Friedman at a weather observation station on Svalbard.

Photograph by Guy Martin for Bloomberg Businessweek

所谓开放原代码,其基本概念是你编写软件代码后分享它,让其他任何人都有机会看到你写的东西,如果他们喜欢,可以把它拿去修改后用于自己做的项目。假以时日,这些海量且仍不断扩充的代码被改变意向、日渐完善,并用于不计其数的 app 里。GitHub 是全世界大量开放原代码得以开发的平台。有大约 4000 万人 (其中有很多是自愿者) 在这里完善计划、提交需要修改的漏洞、扫描安全隐患、跟踪记录各种改动。你可以把它想像成一个庞大无比、有详细目录索引、每个人都可以使用的工具库。

开放原代码目前已是软件发展过程中最主要的环节,虽然它是经过一场革命才实现这一步。1990 年代,在 Windows 系统独霸天下的时候,盖茨 (Bill Gates) 手下的人把代码共用模式描述为像「癌症」一般,对于热衷专利的资本家们珍视的一切是一大威胁。「如果二十年前你对别人说:到 2020 年,全部人类文明将取决及运行于由自愿者们免费编写的开放原代码,这些自愿者互不相识、分布于世界各国,人们只是将这些开放原代码下载下来、装到几乎每一种产品里就可以……我猜想,那些人会说,『你疯了吗,绝不可能发生这样的事。软件都是由大型的、专业化的公司编写的,』」弗里德曼在文件库里说。在他看来,这里与其说是一个至关重要的保险措施,更像是一个时间胶囊。「这是一个很奇妙的时刻。我觉得,留下这样一份历史记录,对未来世代的人们会非常珍贵。」

而对于软件业人士来说,最疯狂、最奇妙的却在于,宣扬开放原代码重要性的是一位来自微软公司的人士。开放原代码的崛起的确声势浩大,甚至堪称是空前的规模。但同时,像核电、抗生素等许多重大发明一样,开放原代码也蕴含着风险。事实证明,有些风险甚至很让人不安。

Exterior view of the former coal mine housing the Arctic World Archive.

Photograph by Guy Martin for Bloomberg Businessweek

早在 1990 年代初,在芬兰赫尔辛基大学的托瓦尔兹 (Linus Torvalds) 写出 Linux 操作系统的核心部份之前,程序员们就在自由地交换代码,但托瓦尔兹的发现引领了一场人们后来所称的「自由、开放的原始代码运动」。

当时,微软通过 Windows 和 Office 两大软件系统赚取巨额财富,并对这些产品的原始代码进行严密保护。当美国司法部 (Department of Justice,DOJ) 开始试图评估微软对市场创新和竞争造成的影响时,类似托瓦尔兹这样的人认为,软件专利保护的概念与言论自由、获取公共知识和物品的自由以及社会进步的理念本身是互相抵触的。这种观点也许听上去很偏激,但当时并不会;美国法律直到 1970 年代末才认可软件属于知识产权。

这些抱有理想主义的人为围绕少数大企业对于科技进步应掌有多大控制权的争论带来新观点。随后,Linux 成为 Windows 之外最著名的替代软件,同时,其他一些程序师也编写了一整套替代 Office 的免费开放原代码办公软件,名字也针对性地取名叫 OpenOffice。虽然这两款产品在寻找大众用户方面非常艰难——部份原因在于,这些程序师自愿者有时更关注原始代码本身的完美,而不是它的实用度。但尽管如此,他们在创造开发工具、使合作和广泛传播软件变得更容易方面获得了宝贵经验。他们只需要把代码放到网上,之后的大部份工作通过口耳相传和网络效应就可以搞定。虽然经历了很长时间——中间也发生过很多激烈的对抗和法律纠纷,但开放原代码最后终于成为一种通行的规范,而非少数个别例子。

踏入 2000 年之后,Google 公司成为企业界推行开放原代码的先锋。它没有购买昂贵的操作系统,而是在其数据中心的服务器上运行 Linux。之后,它采用开放原代码数据库和文件系统,并自己编写开放原代码 app 来填补中间的缺失。这种依靠免费软件的做法减轻了 Google 提供免费服务所需要的财力,包括搜索功能、邮件、Google 地图及其他服务。后来的 Facebook 和 Uber、Netflix 等公司也都采取了同样做法。如今,开放原代码已经成为电脑领域大多数重要技术进步的推动力。亚马逊 (Amazon) 庞大的云计算网络也依靠 Linux 和其他许多免费 app 来运行,也就是说,成千上万家从亚马逊的数据中心购买运算能力的企业也在使用一种基于开放原代码的运作方式。Google 已在超过 10 亿部智能手机上使用 Android 系统,而 Android 也是基于 Linux 的操作系统开发的。

Linux 如今已成为从电视机到汽车等多种产品的核心。这一地位的取得无疑归功于数千人的贡献,而住在美国俄勒冈州 (Oregon)、今年 49 岁的托瓦尔兹是这群人中最出类拔萃的一位。在编写互联网和智能手机的核心代码之余,托瓦尔兹在 2005 年用一个周末的时间写出了一部取名 Git 的程序,用来说明他管理 Linux 的开发。一些致力于开放原代码的程序师参与了 Git,并把它做成了 GitHub。

Inside the archive.

Photograph by Guy Martin for Bloomberg Businessweek

托瓦尔兹现在能从 Linux 基金会拿到不错的薪水,这是一家由 Google、IBM、华为、腾讯和英特尔 (Intel) 等大公司出资成立、旨在进一步开发 Linux 操作系统的基金会。该基金每年给他的报酬总计约 180 万美元,足以供他在波特兰市买一间漂亮的房屋,然后做他喜欢做的事——主要就是坐在家里写程序。但是,如果他以前对财务回报和办公室日常工作更感兴趣,他恐怕也能像盖茨那样变得无比富有。从理论上讲,从 Linux 操作系统中获利最多的一家公司是 Red Hat,它针对 Linux 系统开发了一套针对企业销售的订制版系统,并向它们收取更新和维护费用。今年早些时候,IBM 出资 340 亿美元收购了该公司,这是软件行业迄今为止最大的一笔收购交易。GitHub 的用户也可以选择为他们感兴趣的程序师或项目提供资助,比如像 Kickstarter 或其他众筹网站那类项目。不过,一般来说,编写开放原代码的程序师拿到的报酬往往低于他们的实际价值,而且,他们的身份只是爱好者,这让依赖他们劳动成果的企业有时要面对复杂的局面。

去年大约这个时候,48 岁的瑞典软件发展人员斯腾伯格 (DanInternet Explorerl Stenberg) 某天晚上接到一个电话,是德国一家汽车公司打来的 (斯腾伯格不愿透露该公司的名字),要他立刻飞到德国,因为斯腾伯格编写的一个 app 导致该公司生产的 700 万辆汽车上的娱乐系统软件崩溃了。「我要告诉他们,这是我业余时间搞的项目,我自己有全职工作,没法为了他们去德国,」斯腾伯格回忆说,「他们开始时非常强硬,但后来意识到他们所处于的境况之后,态度才有所转变。」

这类情况对斯腾伯格来说很有代表性。他从 1998 年之后一直在改善一套被普遍使用的名叫 curl 的开放原代码工具。这些年来,几乎所有新车的电子零件都用到了 curl,包括苹果公司及 Instagram、YouTube 和 Spotify 等公司编写的软件里也都在用它。可以说,每天都会有超过 10 亿人不知不觉中在使用 curl,这个工具能帮助网上服务互相传输数据。大公司和初创公司的软件发展人员一直在从 GitHub 和其他地方获取 curl,然后用斯腾伯格本人从未实际测试过的方式将这些 curl 装到自己的产品里,而且,遇到问题出现的时候他们会毫不迟疑地联系他,要求他迅速解决漏洞。

「大部份时间……我挠着头发修复各种漏洞,或者在我再次向那些有时满是抱怨、极不友好的用户解释问题的时候,我尽量修改邮件的措辞,」斯腾伯格在他的网站上写道,「晚上,在我妻儿入睡的时候,我却要处理 curl 的问题。我避开家人、牺牲陪伴他们的时间来改善 curl……独自一人在黑暗中 (大部份时候),守着我的文本编辑器和程序侦测错误功能。」

每个程序师自愿者经历类似的艰辛过程,出于热爱而创造出了数千项劳动成果,被运用到从收银机到火车等各种设备运行所需的软件里。而像 GitHub 这样的软件管理工具让这个过程变得一年比一年更容易。有了这样的工具,程序师们不需要在每个 App 都从头编写,只要在海量的开放原代码库里搜索,找出一个已有的软件加以编辑。由此,最终诞生了一个由成千上万的可以免费获得的工具和 App 组成的相互依赖的复杂系统。如果负责维护和改进这些工具和 App 的程序师自愿者中有某位觉得忍受不了、不愿再继续做下去,那么整个互联网和我们的基础设施都将停摆,直到有其他人介入并修复问题。「这种状况有点可怕,」斯腾伯格说,「开放原代码现在已成为所有一切的重要组成部份,而且,我认为它的重要性还在不断上升。」

GitHub will eventually leave 200 platters in the vault, each carrying 120 gigabytes of open source software code.

Photograph by Guy Martin for Bloomberg Businessweek

这种局面并不是人们当初设想的未来。开始时,这些义务工作的软件爱好者们只是想尝试在科技领域实现民主化,而不是创造一种会让大公司获得更多权力的模式。

他们希望能确保最好的计算工具和数据不会被大公司集中掌控和分配。他们希望人们能躲开某个霸主的监控,自由地探索科技和创意。

多么美好的愿景。但是现实呢?Google、Facebook、亚马逊及其他许多公司利用开放原代码创造了庞大的全球性广告网络,它们跟踪、分析数十亿人的每一步行踪,包括在线和线下的。相比之下,当年围绕微软将 Excel 和 Internet Explorer 浏览器与 Windows 95 捆绑的意识形态之战现在看起来算是相当温和了。「如果你对那些告诉你该怎么生活的技术、那些对你的生活指手画脚的设备和服务没有控制权,那么,你的生活将被那些使用电脑的人所操控,」哥伦比亚大学法学教授、几十年来一直身处自由软件运动前线的莫葛籣 (Eben Moglen) 说,「我们创造出好材料,它们却被做成击碎我们梦想的武器。」

莫葛籣说,他很赞赏 GitHub 能起到的作用——对于一位身处柬埔寨或尼日尔利亚 (Nigeria) 的 16 岁天才程序师来说,这是他们展示才能并改变生活处境的最佳渠道。莫葛籣仍寄望于年轻人组成核心力量,对科技巨头们获取用户私隐的行为发起更大力度的打击。他一直在为一款售价 90 美元左右的名叫「自由盒子」(FreedomBox) 的软硬件作宣传。它是一种小型电脑,运用开放原代码软件,可以在避开科技巨头窥视的环境下复制多种常用的互联网服务,比如搜索功能、发送短讯、文档共用等。

其他一些长期编写开放原代码的自愿者认为,这场革命是有价值的。借助 GitHub 提供的捷径,一个小型的科学家团队现在也能发挥出远超其自身实力的作为。这样的例子有很多,比如,癌症研究人员在寻找为病人做肿瘤筛查的更好方式时,就经常借鉴 Google 的开放原代码机器学习程序。「我不知道谁还在信奉开放原代码,」多年从事软件业管理和投资的罗森伯格 (Dave Rosenberg) 说,「但如果没有它,我不知道人们是否还能做到想做的事情。」

弗里德曼在被微软找去负责 GitHub 之前,曾有 20 年时间在创办开放原代码公司及在一家大型软件公司从事类似计划。在这次前往斯瓦尔巴之前,他在英国牛津逗留的几天时间里一直思考该行业的未来。一位真正有忧患意识的人是不会满足于只有一份备用计划的:北极这个洞穴项目只是 GitHub 计划在世界各地存放代码的多个储藏地之一,它准备将几乎全部代码都存起来,而不只是他们最钟爱的那些。在行程中途,弗里德曼爬上几级楼梯,参观了牛津大学博多良图书馆 (Bodleian Library),图书馆中的一座辉煌的中世纪塔楼里存放着 1200 万册图书。能不能也在牛津保存一部份代码呢?商谈的结果是他们居然很乐意。托尔瓦兹和莎士比亚的创作将有机会永远流传。

“It’s sort of a magical moment. Having a historical record of this will be valuable to future generations,” says Friedman.

Photograph by Guy Martin for Bloomberg Businessweek

本着斯瓦尔巴文件库计划提出的要求,弗里德曼眼下的使命是遏制开放原代码软件面临的生死存亡风险。他讲述了一个又一个有关大公司的故事——他们不了解自己正在依赖多少开放原代码软件、这些软件是什么人编写的、是多少年以前写的,或者它们可能会有哪些安全性漏洞。他希望,GitHub 最近收购的安全调查公司 Semmle 能有助于填补这类漏洞。GitHub 还在改善它的一部份用户接口,上面会向企业用户显示它在使用什么代码,它们来自哪里、什么时候需要更新。他说,还有一个重要步骤是创立一个更正式的系统,联合大企业的力量,为类似 curl 这样的自愿编程项目提供资助。应该会有一个容易的办法,让苹果、Spotify 和前面提到的那家德国汽车制造商轻按几个按钮,就能共同分担给斯滕贝格提供一份像样的全职薪金的成本。

「如果我们能在开放原代码程序师中间创造一个新的中产阶层,那将是我们的一大成就,」弗里德曼说,「如果这件事能做好,就能带来更多的创新。」

然而,离开斯瓦尔巴代码文件库后仅仅几个小时发生的事让我们感到,GitHub 最重要的使命现在变得更紧迫了。弗里德曼位于加州索纳玛 (Sonoma) 的家出现火灾,他妻子来电说,她和 3 岁的女儿正在撤离。弗里德曼告诉妻子打开他们那辆 Tesla 汽车里的「生化武器防护模式」,它能过滤进到车庙里的空气。在我们用餐时,他得知自己的住所已经基本变成一片灰烬,一张其前门拱廊的照片很快被大部份媒体选作报道配图——这是烟雾弥漫的瓦砾堆中仅剩下的东西。在加州许多地区陷入火海或因为断电而一片黑暗之际,远在北极的一个重新开机按钮开始具有更多的意义。就像弗里德曼在我们这次行程至此几次提到的那样,「我觉得,从根本上来讲,眼下这个世界比它 20 年前的时候要古怪多了。」

Related


文章版权归原作者所有。
二维码分享本站