GitHub 宣布,为了把开源软件留给子孙后代,将在 2020 年 2 月 2 日为所有公共存储库生成快照,保存在北极一个地下 250 米的废弃煤矿,快照储存在胶片上,寿命高达 1000 年。
2019 年 11月 13-14 日,GitHub 举办了年度开发者大会 GitHub Universe 2019。今年的 GitHub 大会,除了在会前发布的年度报告(点击蓝字回顾:GitHub 年度报告解读),还公布了一个 GitHub 的 App 版本,让广大开发者喜大普奔。但最让我感兴趣的,是他们在峰会现场发布的 —— GitHub Archive Program 代码永久保存计划。在会上,GitHub 官方说明了这个计划启动的原因:
世界由开源软件提供动力。它是现代文明的隐藏基石,也是全人类的共同遗产。GitHub Archive Program 的任务是为后代保留开源软件。
我们还打算将 GitHub Archive Program 用作证明开源社区重要性的证明。我们希望它现在和将来都将进一步宣传全球开源运动。促进在全球范围内广泛采用开源和开放数据政策;并鼓励长期思考。
这个项目由 GitHub 和很多顶级的机构、企业合作,计划通过多种形式并行的存储形式,能够长期保存世界上的开源软件和项目,至少上千年。
一、启动多形式存储计划的原因
名词解析:亚历山大图书馆
亚历山大图书馆,又称古亚历山大图书馆,曾是世界上最大的图书馆。后来惨遭火灾被摧毁,从而丢失了成千上万本包含大量经典文学,科学和文化的文本。
1. 为什么使用多种形式的存储?
尽管发生全球灾难的可能性很小,但我们可能会在几代后失去所有存储在现代媒体上的东西。
跨多个组织和存储形式的归档软件将有助于确保其长期保存,在线归档员将其称为「LOCKSS」,通过大量副本来确保信息的安全。
名词解析:LOCKSS
LOCKSS 是通用数字保存技术和解决方案提供商,也是斯坦福图书馆数字图书馆产品组合的支柱。LOCKSS 目前是数字保存领域中广泛接受的最佳实践,并且更广泛地用于确保数字信息的持久性。
目前,大部分的数字信息都存储在只能短期储存信息的介质上,如:硬盘,SSD。硬盘可以使用几十年,磁带名义上可以有 30 年的使用寿命,但需要严格控制热量和湿度。
GitHub 存档计划想通过多形式的存储组合,来解决随着时间的流逝数据丢失的风险。
2. 未来社会如何使用我们的代码?
GItHub 已经与斯坦福图书馆合作,帮助整理相关资料库以及其所处的文化和背景,作为广泛的历史和社会研究与分析的关键要素。通过代码永久保存计划,未来的历史学家将能够从开源项目和元数据中了解我们。
由于硬件的寿命比当今大多数存储介质(尤其是较旧的和/或具有掩码ROM的存储介质)的寿命长得多,因此存在运行现代计算机的一系列可能的未来,但是它们的软件已大失所望。存档程序将保留该软件。
还有一点,因为现在某些国家和地区因为政策原因限制访问了 GitHub 的部分功能,随着这一计划的展开,受影响的开发人员可以使用 Internet Archive 和 Software Heritage Foundation 访问其项目的公共代码。
可以预见一个未来,在这个未来中,当今的软件将被视为古朴而又被人们遗忘的无关紧要的事物,直到对它的意外需求出现。
二、灵活持久的「步调分层」策略
名词解析:步调分层
步调分层在整个系统中提供了多级的校正,稳定反馈。正是在这些层次之间的矛盾中,文明才找到最可靠的健康。我建议在一个健壮且适应性强的文明中,六个重要的步调和规模。
这个项目将采用「步调分层」策略来归档代码,通过提供从实时到长期存储的一系列存储解决方案,该方法旨在最大程度地提高灵活性和耐用性。
存档程序分为三层:热,热和冷。
- 热:接近实时更新
- 暖:每月至每年更新
- 寒冷:每5年以上更新
每次访问 GitHub 时,GitHub 都会将 Git 数据复制到世界各地的多个数据中心。此外,在 Git 的多个位置存储 Git 数据、问题、拉取请求以及进行所有的数据备份,这些都可通过 GitHub API 实时获得。GHTorrent 监视 GitHub 公共项目的时间线,并归档这些事件,递归爬取和归档它们的内容和依赖性。这些存档将在每天或每月供下载。GH 档案监视 GitHub 公共事件时间轴,将这些事件归档,并使用 BigQuery 使它们可查询。开发者可以按小时、天或月下载快照。4. 互联网档案馆(INTERNET ARCHIVE)互联网档案馆将抓取 GitHub 的公共资料库(包括新的资料库、问题、拉取请求、Wiki 等),并将副本存储在旧金山和其他位置的硬盘上,这些档案将通过 git 和 https 公开提供。5. 软件遗产基金会(Software Heritage Foundation)软件遗产基金会将定期抓取 GitHub,并将其公共存储库添加到存档中,并向其提供公共 API 访问权限。6. Bodleian 图书馆(BODLEIAN LIBRARY)牛津大学的 Bodleian 图书馆将 GitHub 的 10,000 个最受关注和最依赖的存储库保留为 Piql 胶片格式,从而为 Arctic Code Vault 提供冗余。7. 北极世界档案(ARCTIC WORLD ARCHIVE)2020 年 2 月 2 日,GitHub 将捕获每个活动公共存储库的快照,并将其保存在 GitHub Arctic Code Vault 中。这些数据将存储在 3500 英尺的胶片卷轴上,该胶片卷轴由一家专门从事长期数据存储的挪威公司 Piql 提供并编码。薄膜技术依赖于聚酯上的卤化银。根据 ISO 的标准,这种介质的使用寿命为 500 年;模拟的老化测试表明,Piql 的胶片会使用两倍的时间。8. 微软研究院的 SILICA 项目(PROJECT SILICA FROM MICROSOFT RESEARCH)GitHub 存档计划与 Microsoft 的 Silica 合作,通过使用飞秒激光将所有活动的公共存储库写入石英玻璃片中,最终将其保存超过 10,000 年。名词解析:飞秒激光
飞秒激光是指时域脉冲宽度在飞秒(毫微微秒,10的负15次方秒)量级的激光。可以用在聚合物加工、医学成像及外科医疗上。飞秒激光现已是目前21世纪最先进的眼科手术。激光视力矫正(LASIK)可以利用飞秒激光制作角膜瓣。除此之外,也可被应用在固态物理上,以此分析晶体结构,分析其衍射或者萤光光谱图。在基础科学研究领域,飞秒激光可用于超快现象的研究。
GitHub Arctic Code Vault 是一个数据存储库,存储在北极世界档案馆(AWA)中,这是一个长期的档案设施,位于北极山永久冻土层深250米。该档案馆位于斯瓦尔巴群岛的一个退役煤矿中,比北极圈更靠近北极。GitHub 将在 2020 年 2 月 2 日捕获每个活动公共存储库的快照,并将这些数据保存在 Arctic Code Vault 中。此外还包括由星号、依赖项和咨询小组确定的大量休眠存储库。快照将由每个存储库的默认分支的 HEAD 减去任何大于 100KB 的二进制文件组成,每个存储库将打包为一个 TAR 文件。
斯瓦尔巴群岛受国际《斯瓦尔巴群岛条约》的管制,属于非军事区。它是世界上最北端的城镇的所在地,是地球上最偏远和地缘政治稳定的人类居住地之一。AWA 是挪威国有采矿公司 Store Norske Spitsbergen Kulkompani(SNSK)与长期数字存储提供商 Piql AS 的一项联合计划,AWA致力于永久保存档案。胶片卷轴将被存储在位于斯瓦尔巴群岛偏远群岛的一座退役煤矿内的密封室内的钢壁容器中。至今为止,AWA 已经保存了来自意大利,巴西,挪威,梵蒂冈和许多其他国家的历史和文化数据。尽管斯瓦尔巴群岛受到气候变化的影响,但在可预见的将来,它可能仅影响最外面几米的永久冻土。矿山距著名的全球种子库仅一英里之遥,这进一步增强了斯瓦尔巴群岛作为人类集体知识的稳定且长期的稳定档案馆的地位。
名词解析:斯瓦尔巴全球种子库(Global Seed Vault)
斯瓦尔巴全球种子库是挪威政府在北冰洋的斯瓦尔巴群岛建造的,一个保存全世界农作物种子的贮藏库。
种子库是为了在大规模的区域性或全球性危机期间防止其他基因库中种子的丢失。这个工程得到了联合国粮农组织的支持,被称为是全球农业的“诺亚方舟”。
GitHub 正在召集一个 GitHub Archive Program 咨询小组,其中包括人类学,考古学,历史学,语言学,档案科学,未来主义等方面的专家,以就应该在归档中包含哪些内容以及如何与继承者进行最佳沟通提供建议。
一千年是很长的时间。一千多年前尚未建成吴哥窟,大津巴布韦和马丘比丘等古代遗址。但是,我们可以考虑并计划在未来 1000 年内实现各种可能性。
该计划以我们今天拥有的最佳思路为基础,存档的简介将包括 QR 解码,文件格式,字符编码和其他关键元数据的技术指南,以便可以将原始数据转换回源代码,以供将来其他人使用。
该归档文件还将包括技术树-路线图和 Rosetta Stone,以供将来好奇的人继承该归档文件的数据。
关于存档及其使用方式的概述,“技术树”将作为软件开发和计算的快速入门手册,并与该存档的用户指南捆绑在一起。它将描述如何从原始数据向后处理到源代码,以及如何提取项目,目录,文件和数据格式。
受《长期文明手册》启发
(并包括其内容),该档案还将包括应用开源的信息和指南,以及我们今天使用它的背景情况,以防将来读者需要从头开始重建技术。
在人类拥有可以运行的现代计算机但没有可在其上运行的软件的未来范围内,档案及其技术树可能会非常有价值。但是,该价值很有可能是历史性的,也许可以确保今天的技术不会因一个漫不经心地认为无关紧要的明天而丧失,直到发现我们的软件被意外使用。
项目官网:https://archiveprogram.github.com/
代码恒久远,一行永流传。
地球有 46 亿年的历史,我们应该不是出现在这个星球上的第一代智慧生物,那么问题来了:上一代「地球人」的痕迹在哪里?他们的文化和文明是什么?
这些我们暂时都不得而知,但希望我们的历史和文化,在千万年之后能被下一代「地球接班人」发现,估计挺有意思的~