2021年6月

几乎所有的 DDoS 攻击都来自不到 50 家的托管公司

诺基亚 Deepfield 在 NANOG82 上公布了全球 DDoS 流量分析报告。他们发现,DDoS 攻击大部分来自几十家托管公司。

传统观点通常认为,DDoS 攻击来自互联网的各个角落,DDoS 不可能在源头上被阻止。但这些研究表明,可以在这 50 家公司内部阻止绝大多数的 DDoS,或者通过在将这些托管公司连接到互联网的 10-15 家 ISP 阻止。

原来是这样,所以把这些托管公司和 ISP 拉黑是不是就好了。:D

万维网之父将拍卖 WWW 最初的源代码

30 多年前,英国计算机科学家蒂姆·伯纳斯·李创造了万维网(WWW),使我们所知的互联网成为可能,他也因此被誉为万维网之父。最近,他决定将通过以 NFT 的形式拍卖 WWW 项目最初的源代码。虽然互联网造就了无数的亿万富翁,但是作为 WWW 的发明人却不是亿万富翁。他构思和编码的 WWW 及其第一个浏览器背后的源代码从未获得专利,而是免费发布到了公共领域。这次拍卖将于美国东部时间 6 月 23 日下午 2 点在苏富比拍卖行进行,持续到 30 日,竞价将从 1000 美元开始。

看看这个 NFT 能拍卖出多少钱,我觉得怎么也比那些让人看不懂的“艺术”值钱吧。

Linux 5.14 中的 XFS 性能将得到极大提升

红帽公司的一个大型补丁系列现在已经排队等待进入 XFS 文件系统开发的 Git 分支,这是即将到来的 Linux 5.14 周期的一部分。在 XFS 文件系统的可扩展性中,事务率从每秒 70 万次提交上升到 170 万次,并且对于不执行 fsync 的元数据重型负载,刷新操作减少 2~x 个数量级。

对 5.14 充满期待。

它看起来像复古计算,但它是一个现代的操作系统,你可以用它来完成任务。

 title=

在整个 1980 年代和 1990 年代,我主要是一个 DOS 用户。我喜欢 DOS 提供的命令行环境,它随着每一个连续的版本变得更加强大。我甚至学会了如何用 C 语言编写自己的 DOS 程序,这样我就可以扩展 DOS 命令行,并为标准的 DOS 命令编写更强大的替代程序。我曾经试验过微软的 Windows,但如果你记得当时的 Windows 3,你就会知道它很慢,而且容易崩溃。但无论如何我更喜欢命令行,所以我坚持使用 DOS。

这一切在 1994 年发生了变化。流行的技术杂志谈到了即将到来的 Windows 版本,它将完全废除 DOS。我不想被迫使用 Windows。在我访问的 Usenet 讨论区中,其他人也有同样的感觉。所以在 1994 年 6 月 29 日,我认为如果我们想保留 DOS,我们需要自己编写。所以在 6 月 29 日,我宣布了一个小项目,这个项目后来成为 FreeDOS 项目

从那时起,我们已经发布了几个完整的 FreeDOS 发行版。我们从 1994 年到 1997 年的 alpha 系列开始,再到 1998 年到 2005 年的 beta 系列,最后在 2006 年发布了 FreeDOS 1.0 版本。从那时起,进展是缓慢但稳定的。在 1.0 之后,我们并没有真正急于发布每个新版本,因为 DOS 在 1995 年不再是一个变动的目标。

从 1.0 开始的每一个 FreeDOS 发行版都是对现代 DOS 的不断重新想象。我们已经包括了很多编译器和汇编器,供开发人员编写软件。我们还提供了许多“强大工具”,以便你可以做真正的工作。我们还提供了各种编辑器,因为每个人都有自己的最爱。

我们最近发布了 FreeDOS 1.3 RC4 发行版。从技术上讲,这是我们即将推出的 FreeDOS 1.3 发行版的候选版本,但它是一个全功能的发行版。我对 FreeDOS 1.3 RC4 的所有功能感到非常兴奋。

无需安装 FreeDOS 即可运行 FreeDOS

在我们以前所有的 FreeDOS 发行版中,我们把重点放在 安装 FreeDOS 到电脑上。但我们认识到,大多数用户实际上已经不在实际硬件上运行 FreeDOS 了。他们在 像 QEMU 或 VirtualBox 这样的虚拟机 中运行 FreeDOS。所以在 FreeDOS 1.3 RC4 中,我们改进了 “LiveCD” 环境。

通过 FreeDOS 1.3 RC4,你可以在你喜欢的虚拟机中启动 LiveCD 镜像,并立即开始使用 FreeDOS。这就是我现在运行 FreeDOS 的方式。我有一个小的虚拟硬盘镜像,我把所有的文件都放在那里,但我从 LiveCD 启动并运行 FreeDOS。

 title=

启动 FreeDOS 1.3 RC4 LiveCD (Jim Hall, CC-BY SA 4.0

安装真的很简单

如果你不想从 LiveCD 上运行 FreeDOS,你也可以在你的硬盘上安装它。我们更新了 FreeDOS 的安装程序,所以它本身并不是一个真正的“程序”,而是一个非常聪明的 DOS “批处理”文件,它可以检测到各种情况并采取适当的行动,例如在没有 FreeDOS 分区的情况下为其创建一个新的磁盘分区。

旧的 FreeDOS 发行版会提示你各种问题,甚至选择个别程序来安装。新的安装程序非常精简。它只问你几个问题就开始了,然后就自己做其他事情。在一个空的虚拟机上安装 FreeDOS 只需要几分钟时间。

 title=

安装FreeDOS 1.3 RC4 (Jim Hall, CC-BY SA 4.0

你可以从软盘安装它

不是每个人都喜欢在虚拟机中运行 FreeDOS。现在有一个复古计算社区,他们收集并精心修复经典的 PC 硬件,如 Pentium 或 486 系统。你甚至可以在那里找到一些 XT(8088)或 AT(80286)系统,它由一个专门的用户社区运营。

虽然我们认为 FreeDOS 是一个现代的 DOS,但如果我们不在旧的 PC 硬件上运行,我们就不是 “DOS” 了。因此,在 FreeDOS 1.3 中,我们包含了一个纯软盘版!这个版本可以运行在任何硬件上。这个版本应该可以在任何可以运行 FreeDOS 的硬件上运行,并且有 EGA 或更好的图形。

你在运行 286 或其他没有 CD-ROM 驱动器的经典系统吗?从这些软盘安装 FreeDOS。你是否只有一个硬盘而没有 CD 或软盘驱动器?只要把软盘的内容复制到一个临时目录,然后从那里运行安装程序。想执行“无交互外设方式”安装到不同的 DOS 目录吗?用命令行选项就可以了。

纯软盘版使用一个完全不同的安装程序,并包含一套有限的 FreeDOS 程序,它们在经典的 PC 硬件上更有用。

 title=

安装FreeDOS纯软盘版 (Jim Hall, CC-BY SA 4.0

充满了开源应用和游戏

如果 FreeDOS 是一个闭源的 DOS,它就不是一个 自由 的 DOS。我们希望每个人都能使用和研究 FreeDOS,包括其源代码。当我们计划 FreeDOS 1.3 发行版时,我们仔细检查了每个软件包中的每一个许可证,并专注于只包括 开源 程序。(在以前的 FreeDOS 发行版中,有几个程序并不完全“开源”,还有一两个程序没有包括源码,但是可以“自由使用和发布”。在这个版本中,所有的东西都是开源的,以“开源定义”作为我们的模型。)

而且,这是一个多么棒的开源应用和游戏的集合。游戏是 FreeDOS 1.3 RC4 中我最喜欢的内容。许多人使用 FreeDOS 来玩经典的 DOS 游戏,但我们想提供我们自己的开源游戏给人们玩。

你可以发现 LiveCD 中已经安装了两个游戏:Simple Senet(可以追溯到古埃及的棋盘游戏)和 Floppy Bird(Flappy Bird 游戏的一个版本)。如果你安装了 FreeDOS,你还会发现很多其他游戏可以尝试,包括 Sudoku86(一个数独游戏)、Wing(一个太空射击游戏)和 Bolitaire(单人纸牌游戏)。

 title=

玩 Floppy Bird 游戏 (Jim Hall, CC-BY SA 4.0

 title=

古老的 Senet 游戏 (Jim Hall, CC-BY SA 4.0

现在就试试 FreeDOS 1.3 RC4

你可以在 FreeDOS 的 下载 页面上找到新的 FreeDOS 1.3 RC4。要安装 FreeDOS,你需要至少 20MB 的可用磁盘空间:20MB 用来安装一个普通的 FreeDOS 系统,或者 250MB 用来安装所有,包括应用和游戏。要安装源码,你将需要高达 450MB 的可用空间。


via: https://opensource.com/article/21/6/get-started-freedos

作者:Jim Hall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Java 具有功能强大、多样化、可拓展、有趣的特点。这就是 Java 为什么被我们广泛使用,也是我们如何正确使用它的方式。

 title=

Java 是在 1995 年发布的,当我写这篇文章的时候,它已经 26 岁了。起初它是专有的,但在 2007 年,Java 基于 GPL 协议被开源发布了。如果想要理解是什么使得 Java 变得非常重要,你就必须理解它声称要解决的是什么样的问题,从而你就能理解它让开发者和用户受益的原因和方式。

理解 Java 解决了什么问题的最好方式就是进行软件开发,当然啦,如果不做开发,仅仅只是使用软件也会是一个很好的开始。作为一名开发人员,当你将在自己的本地计算机上运行良好的软件部署到其他计算机上运行时,一些稀奇古怪的麻烦可能就出现了,从而导致软件可能无妨正常运行。软件本应正常工作,但每个程序员都明白,一些问题总是会被忽视。当你在另一个操作系统上尝试运行该软件时,情况就变得更加复杂了。这也是为什么在每一个软件的获取页面上都会有针对不同的操作系统有对应下载按钮的原因:Windows 的、macOS 的、Linux 的、移动端的、甚至许多其他操作系统环境的下载选项。

作为一名用户,一个典型的场景是你想下载一些优秀的软件,但它却不适用于你的平台。遗憾的是这样的情况仍然发生在当下非常先进的计算机上,它们可以在计算机中运行虚拟机,通过仿真使老式视频游戏保持活力,甚至可以放在你的口袋里,但软件交付实际上相当困难。

有没有更好的办法?可能会有吧。

1、一次编码,任意环境都能跑通

令人惊讶甚至是失望的是,代码是特定于操作系统和环境的。代码需要从对人友好的高级程序设计语言编译成机器语言,即被设计可以用于让 CPU 响应的一系列二进制指令。在先进的计算机世界中,我们很难理解为什么不能仅仅只要编写代码,就能将它发送给任何一个想要运行它的平台,无需担忧它们正处在什么样的平台中。

Java 可以解决这种不协调的问题。它的代码是可以跨平台进行工作的,在任何运行它的系统上都执行相同的工作。Java 实现这一壮举的方法起初是有悖常理的。在某种程度上,Java 只与一台计算机兼容。奇怪的是,这台电脑实际上并不存在。Java 代码的目标计算机是Java 虚拟机(JVM)。这是一个由 Java 的创建者编写的程序,可用于你能想到的任何计算机设备。只要你安装了它,你运行的任何 Java 代码都会由你计算机中的这台“虚拟”计算机进行处理。Java 代码会由 JVM 执行,JVM 向你的计算机发送适当的特定于平台的指令,因此所有工作在每个操作系统和架构上都是一样的。

当然,Java 使用的方法并不是这里的真正的卖点。大多数用户和许多开发人员并不关心软件兼容性是如何实现的,只关心它是否具备兼容性。许多语言都承诺提供跨平台的功能,通常情况下,这个承诺最终都是真的,但是这个过程并不总是容易实现的。编程语言必须针对其目标平台进行编译,脚本语言需要特定于平台的解释器,而且两者都很难确保对底层系统资源的一致访问。跨平台支持变得越来越好,库可以帮助转换路径、环境变量和设置,并且一些框架(特别是 Qt)在弥补外设访问的差距方面做了很多工作。但是,Java 始终可靠地提供它的兼容性。

2、明智的代码

Java 的语法即使是在最好的方面也很无聊。如果你把所有流行的编程语言都放在一个摇滚杯中,那么你会得到 Java。通过观察 Java 编写的源代码,你或多或少会均匀地看到所有特定的编程表达方式。括号表示函数和流程控制的范围、变量在使用前被明确地声明和实例化,并且表达式具有清晰一致的结构。

我发现 Java 学习过程中通常会鼓励自学成才的程序员使用结构化程度较少的语言编写更精炼的代码。从网上学习的源代码中收集到的技术中,有许多“基本”编程经验是你无法学到的,比如以 Java 公开字段的风格进行全局变量声明、正确地预测和处理异常、使用类和函数、和许多其他的技术。从 Java 借鉴的一点小改动可以产生很大的不同。

3、脚手架和支持

流行的编程语言都有很好的支持系统,这也是使得其变成流行语言的原因。它们都有很多文档资料,有针对它们的集成开发环境或 IDE 扩展、示例代码、免费和付费培训和开发者社区。在另一方面,当你在尝试做某事遇到困难时,似乎没有任何编程语言有足够的支持。

我不能说 Java 可以摆脱这两个普遍但又相互矛盾的事实。尽管如此,我发现当我需要一个 Java 库时,我必然能为给定的任务找到多个选项。通常我不想使用一个库的原因是我不喜欢它的开发人员如何实现我需要的功能,它的许可证与我喜欢的有所不同,或者有其他琐碎的争议点。当一门语言得到大量支持时,我就会很多的选择性。我可以从许多合适的解决方案中选择一个最能满足我需求的,不论我的需求多么微不足道都能被最好得满足。

更好的是,围绕 Java 有一个健康的基础设施。像 Apache AntGradleMaven 等工具可以帮助管理构建和交付的过程。像 Sonatype Nexus 等服务帮助实现监控的安全性。SpringGrails 使 Web 开发变得更加容易,而 QuarkusEclipse Che 有助于云上的开发。

在接触 Java 语言本身时,你甚至可以选择使用什么样的版本。OpenJDK 提供经典的、官方的 Java,而 Groovy 是一种类似于脚本语言的简化方法(你可以把它比作 Python),而 Quarkus 提供了一个容器优先开发的框架。

还有很多,但现在已经足以说明 Java 是一个完整的生态了,无论你想在其中寻找什么。

此外,简单易学

事实证明,Java 对我和各行各业的许多开发人员来说是一个明智的解决方案。以下是我喜欢使用 Java 的一些原因。

你可能听说过或推断出 Java 是一种“专业”语言,只适用于笨重的政府网站,专供“真正的”开发人员使用。千万不要被 Java 25 年以来的各种名声所迷惑!它的可怕程度只有它名声的一半,这意思是,并不比其他任何语言更可怕。

编程很困难的这件事是无法回避的,它要求你基于逻辑进行思考,学习一种比母语表达方式更少的新语言,要你弄清楚如何解决困难的问题,使它们可以使用你的程序完成自动化的执行,没有语言可以避免这些问题。

然而,编程语言的学习曲线的差异令人惊讶。有些一开始很容易,但当你开始探索细节时就会变得复杂。换句话说,打印“hello world”可能只需要一行代码,但当你学习到了类和函数, 你相当于开始重新学习这门语言(或者至少是它的数据模型)。Java 从一开始就是 Java,一旦你学会了它,就可以使用它的许多技巧和便利。

简而言之: 去学习 Java 吧!它具有功能强大、多样化、可拓展、有趣的特点。为了给你提供帮助, 下载我们的 Java 备忘单, 它包含你在开发前十个项目时需要的所有基本语法。在那之后,你就不再需要它了,因为 Java 具有完美的一致性和可预测性。来享受它吧!


via: https://opensource.com/article/21/5/java

作者:Seth Kenlon 选题:lujun9972 译者:PearFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

硬派,美国卡车司机工会面对勒索软件攻击拒付赎金

美国卡车司机工会早在 2019 年就遭到了要求 250 万美元的勒索软件攻击。但该工会拒绝付款,尽管 FBI 建议这样做。该工会表示,工会的两个电子邮件系统中有一个与其他数据一起被冻结,但数百万在职和退休成员的个人信息从未被泄露。他们向 FBI 请求帮助,但被告知无法协助追查罪犯,“只管付款”。甚至在经过谈判后将赎金降到 110 万美元后,但最终还是拒绝付赎金。他们决定重建他们的系统,从档案材料中恢复了 99% 的数据,其中一些是硬拷贝。

果然不愧是美国最硬派的组织,但是恢复的代价估计也不菲。另外,如今的勒索手法已经升级到不但冻结你的数据,还威胁要泄露数据。这就让机构和企业更加难以对抗勒索攻击了。

专业版 Ubuntu 登陆 Google 云

Canonical 宣布,Ubuntu Pro 现在可以在 Google Cloud 上使用。发布于 2019 年的 Ubuntu Pro 是针对企业和生产使用的高级版本的 Ubuntu,它有几个额外的功能,包括实时内核补丁,长达 10 年的维护支持承诺,以及 Ubuntu Universal 软件库中的软件补丁。Ubuntu Pro 是收费产品,大约会占客户的整体计算成本的 3%-4.5%。此前,Ubuntu Pro 已经出现在 Azure 和 AWS 上。

这才是 Ubuntu 企业版,不过似乎在国内影响不大。

Linux 5.14 内核将直接支持树莓派 400

去年 11 月推出的树莓派 400 是一款键盘电脑,它实际上是将树莓派 4 单板计算机嵌入到键盘当中。价格为 100 美元,它提供 4GB 内存、1.8GHz 四核 Broadcom 处理器、16GB 存储空间和相关的外围设备,这是一台可以完全工作的电脑,除了一台显示器外不需要配备任何额外的东西。

上周排入 SoC/SoC “for-next”分支的补丁增加树莓派 400 的设备树,所以预计 Linux 5.14 发布时可以直接支持树莓派 400 了。

虽然支持的晚了点,我觉得我也想拥有一台树莓派键盘电脑。

用 Cockpit 建立你的树莓派的控制中心。

 title=

去年,我写了关于使用 Cockpit 管理我的 Linux 服务器的文章。它是一个基于 Web 的工具,为管理多个服务器及其相关的服务和应用提供了一个简洁、强大的界面。它还简化了日常的管理任务。

在这篇文章中,我将会介绍如何在树莓派基金会提供的标准操作系统树莓派 OS 上安装用于 Linux 服务器的 Cockpit Web 控制台。我还会简要介绍它的特性。

在树莓派 OS 上安装 Cockpit

sudo 权限下使用一个账户通过 SSH 登录你的树莓派系统。如果你还没有建立一个账户:

$ ssh pibox
alan@pibox's password:
Linux pibox.someplace.org 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue May  4 09:55:57 2021 from 172.1.4.5
alan@pibox:~ $

在树莓派 OS 上安装 Cockpit Web 控制台和在 Linux 服务器上一样简单:

$ sudo apt install cockpit

Cockpit 只需要 60.4 KB 的磁盘空间。加上它的几个包依赖项,总使用量是 115MB。

安装过程将负责设置和启动服务。你可以使用 systemctl 命令来验证状态:

$ systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/lib/systemd/system/cockpit.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Tue 2021-05-04 10:24:43 EDT; 35s ago
     Docs: man:cockpit-ws(8)
   Listen: 0.0.0.0:9090 (Stream)
  Process: 6563 ExecStartPost=/usr/share/cockpit/motd/update-motd  localhost (code=exited, status=0/SUCCESS)
  Process: 6570 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 2181)
   CGroup: /system.slice/cockpit.socket

使用 Cockpit

连接

默认的监听端口号是 9090。打开你最喜欢的 Web 浏览器并输入地址,例如: https://pibox:9090

 title=

你现在可以使用你的普通账户登录。同样,这个账户上需要有使用 sudo 的权限 —— 很可能就是你用来 SSH 和运行 Apt 的那个账户。一定要勾选“为特权任务重用我的密码”。

管理你的树莓派

Cockpit 的初始屏幕以 “System” 页开始,提供当前 CPU 和内存使用的详细信息和图表。

 title=

你可以从这个屏幕看到硬件细节。

 title=

通过点击每一项来展开左边的列(例如,日志、存储、服务等)。这些是标准的 Cockpit 部分,不言自明。让我快速描述一下每个部分。

日志

这部分展示了日志。它们可以根据日期和严重程度来过滤。

存储

存储部分展示了已经安装的物理驱动器和 RAID 设备。例如大小、序列号等细节都被展示了出来。还展示了读/写活动和实际空间使用的图表。存储的具体日志显示在底部。

网络

这部分展示了发送和接收活动、IP 地址以及网络特定的日志。你还可以使用相应的按钮添加更多的网络设备,如绑定、网桥和 VLAN。

账户

这里展示了已有的账户。点击每个账户来管理,或使用创建新账户按钮来添加用户。账户也可以被删除。

服务

这部分可以让管理员查看系统所有服务的状态。点击任何服务都会转到一个包含启动、重启和禁用的标准任务的屏幕。

应用程序

通常,这个屏幕提供了各种用于管理功能的应用程序,例如 389 目录服务器或创建 Podman 容器。但在我的树莓派 OS 上,这个屏幕只显示“没有安装或可用的应用程序”。在写这篇文章的时候,这个或许还没有实现。虽然,你可能会怀疑这类型的程序对于树莓派硬件来说是否太过沉重。

软件更新

对任何系统管理员来说,保持软件最新是最重要的任务之一。Cockpit 的软件更新部分可以检查并进行更新。

 title=

终端

Cockpit 最方便的特点之一是终端。你可以使用它,而不是打开一个单独的终端模拟器并使用 SSH。我使用终端来安装 ScreenFetch

$ sudo apt install screenfetch

使用 ScreenFetch 生成了这张截图:

 title=

使用 Cockpit 的中心控制

Cockpit 在树莓派上的表现就像它在其他 Linux 系统上一样。你可以将它添加到仪表盘上进行集中控制。它允许企业在 Cockpit 作为管理仪表盘解决方案的任何地方,将基于树莓派的服务和系统整合到他们的整体 Linux 基础设施中。因为树莓派经常在高密度机架数据中心以 无外接控制 headless 方式运行,而这些数据中心通常会缺乏 KVM 访问方式,这是非常方便的。


via: https://opensource.com/article/21/5/raspberry-pi-cockpit

作者:Alan Formy-Duval 选题:lujun9972 译者:RiaXu 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客《代码英雄》第四季(4):软盘 —— 改变世界的磁盘音频脚本。

导语:软盘是计算机领域最伟大的突破之一。它以一种盛行几十年的格式助推了软件行业的发展。在某些情况下,它保存了曾经被认为是永远失去了的珍宝。

在软盘出现之前,计算机背负着打孔卡和磁带缓慢前行。Steven Vaughan-Nichols 描述了软盘所带来的巨大变化。Dave Bennet 解释了对永久存储(和便于邮寄)的需求,如何导致了第一批 8 英寸驱动器的出现。George Sollman 回顾了他是如何受命制造出更小的软盘的,以及哪些意想不到的来源激发了他的下一个设计的灵感。而当 Sollman 把它展示给 自制计算机俱乐部 HomeBrew Computer Club 时,这一季的几位常客请他展示更多的内容。接下来发生的事,就众所周知了。

Matthew G. Kirschenbaum 指出,软盘在一些意想不到的地方仍然在使用。Jason Scott 和 Tony Diaz 告诉我们他们是如何将一些源代码从“跑腿网络”中带到云端的。

00:00:00 - Saron Yitbarek

Jordan Mechner 是个收藏爱好者。他是《 空手道 Karateka 》和《 波斯王子 The Prince of Persia 》等游戏的开发者。他精心保存下了开发过程中的一切细节,比如日记、素描和情节提要等所有的一切。因此,当他找不到自己保存的某样东西时,多少会让他有点吃惊,而这也确实是一件大事。

00:00:26

早在 2002 年, Mechner 就在做《 波斯王子:时之沙 Prince of Persia: The Sands of Time 》的开发。程序员们希望将该游戏的经典版本作为复活节彩蛋加入到他们的 PlayStation 2 版本中。因此,他们向他索要原始的源代码。但是当 Mechner 查看他的归档时,他找不到这份源代码了。他四处寻找。这份源代码是在他的老旧 Apple II 上写的,他肯定自己保存过的这些代码,消失了。

00:00:58

快进 10 年。Mechner 的父亲正在打扫房间,有一个看上去很破旧的鞋盒藏在壁橱后面,里面装着一堆满是灰尘的 3.5 英寸旧软盘。其中一张被标记为“《波斯王子》的源代码。版权所有 1989 年”,括号里用全大写字母写着 “原版” 一词。这份丢失了很长时间的代码,终于被找到了。它在那个盒子里待了四分之一个世纪,然后像考古发现一样被发掘出来。

00:01:36

但那是 2012 年。他要怎样把信息从那些旧磁盘上取出来,数据是否还完好无损?事实上,现在去挽救他的工作已经为时已晚了吗?

00:01:54

挽救(保存)我们的工作,现如今这个过程经常是自动发生的。随着程序定期向云端推送内容,我们再也无需费心去手动保存东西了。事实上,全新的一代人甚至不知道那个保存图标表示什么意思。旁注:这不是自动售货机。

00:02:16

但是几十年来,保存、存储和传输我们的数据都必须使用某种物理介质。当个人计算机革命开始后(我们在有关 Altair 8800 的上一集中讲过),有一项技术成为了保存的代名词 —— 软盘。如今看起来这是如此的简单。但是软盘改变了我们的历史进程,因为它们帮助将 微型计算机 microcomputer 转变成了 个人电脑 personal computer

00:02:50

我是 Saron Yitbarek。这里是《代码英雄》,一档来自 红帽 Red Hat 的原创播客节目。

00:02:58

让我们暂且把 Jordan Mechner 发现软盘的故事搁在一边。我们之后会回过头来谈论它。首先,我想先了解一下软盘最初是怎样诞生的,以及近 40 年以来它是如何成为技术界如此至关重要的一部分的。

00:03:18

我们的第一站是 1890 年。在电子计算机出现之前,就已经有了机械的电子计算设备。数据输入输出的方法是通过一美元钞票大小的打孔卡实现的。电子计算机在上世纪 50 年代问世时,IBM 用 80 列 12 行的打孔卡进行了标准化。所打的孔就会形成一种字符,没有打孔则意味着另一种。

00:03:50

长期以来,这些打孔卡是数据输入的主要方式。但是为更大、更复杂的程序处理数以百计的打孔卡非常麻烦。必须要有一种更好的方法来保存和传输数据。

00:04:08

紧接着是 20 世纪 50 年代问世的纸带。要了解纸带如何在个人计算机的起源中扮演了核心角色,请收听我们的上一集节目。纸带与打孔卡具有同样的用于读取数据的打孔方式。但是因为这都在一卷纸带上,人们没必要担心卡片会混起来。它可以携带更多的数据,并且使用起来更快。但是随着微型计算机容量的增加,存储程序需要越来越多的纸带。就像打孔卡一样,纸带最终遇到了它的瓶颈。

00:04:47

让我们进入到磁带阶段。其关键成分是聚酯薄膜,一种坚韧、有弹性的材料,表面涂有磁性氧化物来使得磁带能够记录。每盘磁带的九条磁道最多可以存储 175 MB。这在上世纪 50 和 60 年代是一件大事。10.5 英寸卷轴的磁带驱动器成了企业的标准配置。

00:05:11 - Steven Vaughan-Nichols

但是磁带的问题在于,尽管其很方便将大量数据从一个位置移动到另一个位置,但要在磁带上搜索以找到某些特定的东西着实不易。我们会使用磁带在微型计算机和大型机上安装软件,但是对于小型便携的数据或者涉及数据交互的事情,磁带确实没那么好用。

00:05:40 - Saron Yitbarek

这位是 CBS Interactive 的特约编辑 Steven Vaughan-Nichols。当然,磁带可以存储更多的数据。但是它太大、太慢了。确实,这仅仅在大型机领域可行。又一次,需要有一个更好的存储方法了。

00:05:58

更好的方法出现在 1956 年,当时 IBM 推出了其首个 磁盘驱动器 disk drive —— IBM 350 磁盘存储单元。它是 305 RAMAC 大型计算机的组成部分,这台机器整整占满了一个房间。这位是前 IBM 磁盘和存储产品工程师 Dave Bennet。

00:06:23 - Dave Bennet

存储在核心内存中。事实上,RAMAC 中的磁盘存储设备是第一个允许随机访问给定的记录的存储设备,而不是磁带驱动器。

00:06:39 - Saron Yitbarek

很有趣。那款磁盘驱动器差点没有问世,因为它威胁到了 IBM 的打孔卡生意。但是这个项目最终还是获得了批准。问题在于,该驱动器包含由固体金属制成的磁碟。RAMAC 重达一吨,它必须由叉车搬运,并且用大型货运飞机运输。这不是最方便的存储方式,但除此之外,还有更好的解决方案。

00:07:10 - Dave Bennet

尽管 软盘 floppy disk 最初是为了满足一个新需求而开发的。原因在于有一种中间类型的存储方式。最初的存储方式是计算机代码,然后是计算机内存,即工作内存。但是随着 System 360 的出现,它们之间出现了一类新的内存,它们称之为 固件 firmware 。在 System 360 中,有着独特的各种形式的固件技术,要么是一种特殊的打孔卡,要么是一种所谓的 转换器只读存储 transformer read-only storage

00:07:51

但是,新的需求是在半导体技术瞬息万变的时代,从这些技术转向半导体技术。这意味着在切断电源后,半导体中所存储的内容都会消失。因此,必须要有一种再次充入的方式,在电力恢复后将程序存回到内存中,以加载所谓的 微程序 micro program 中间存储器 intermediate memory

00:08:28

对这种设备的需求是导致软盘驱动器发展的原因。

00:08:37 - Saron Yitbarek

因此在 1967 年,一小队由 David Noble 领导的工程师开始着手开发一款廉价的系统,用于将这些微程序载入到大型计算机。他们项目的代号是 “Minnow”。

00:08:53 - Dave Bennet

Noble 能想到的所有东西,包括各种形式的打孔卡、盒式磁带,他都亲自实验了一遍。我不知道他还实验过什么。但是他想到了使用基于柔性磁盘的廉价磁盘驱动器,和成本非常廉价的只读机制。

00:09:19 - Saron Yitbarek

Minnow 团队希望能够把他们的微程序邮寄到需要加载它的各个地方。因此这款用于发送该程序的产品必须足够耐用,才能够在不损坏其数据的情况下实现邮寄。这是某种外壳包装方式。

00:09:38 - Dave Bennet

现在,为了使它能够被邮寄,他们实际上必须要做的是,把它放进一个相当坚固的塑料容器里。实际上,他们会在磁盘还放在这个塑料容器(像一个信封、塑料信封)里的时候读写该磁盘。当磁盘上有涂层而且有一个刚性的磁头时,必定会有磨损。而一旦有磨损,就会产生磨损颗粒。

00:10:06

他们所遇到的问题是,随着磨损颗粒的堆积,会引起雪崩效应。这些颗粒会充当额外的磨料。然后很快,颗粒散在那里,记录轨道会被磨损,就不再能用了。

00:10:28

参与该项目的一个名叫 Herb Thompson 的家伙非常聪明,他提出了一项方案,该方案基于 3M 卖给家庭主妇用于家具除尘的家用除尘织物。他在信封和磁盘之间放了这样的一张布。这种材料吸收了磨损颗粒,并将其嵌入到除尘织物中,从而防止了雪崩效应,真正解决了这个问题。

00:11:00 - Saron Yitbarek

柔性 8 英寸聚酯薄膜磁盘,甚至可以称它们为 软盘 floppy disk 。它完全被装在一个很薄但是很坚固的信封中,并带有再利用的除尘装置。总之,它很容易被拿起,也很容易邮寄。每张新的软盘有 80 KB 的存储容量,可以容纳与 3000 张打孔卡相当的数据量。这是存储容量上一个巨大的飞跃。

00:11:29

IBM 在 1971 年发布了他们的 8 英寸软盘。Minnow 团队做得很好,但他们不知道有多好。他们的突破即将演变成一种完全改变游戏规则的技术。

00:11:49

IBM 的直接访问存储产品的负责人是一个名叫 Alan Shugart 的人。 Minnow 项目是他的宝贝。 Shugart 很有个性,天生具有企业家精神。他的日常制服是夏威夷衬衫,从来不穿夹克和领带。在发布 8 英寸软盘不久后,Shugart 离开了 IBM,并于 1969 年加入了 Memorex,然后在 1973 年成立了自己的公司 Shugart Associates,专门从事计算机外围设备。

00:12:23

Don Massaro 从 IBM 就跟随 Shugart,他成为了 Shugart Associates 的运营副总裁。在那工作了几年之后,Massaro 收到了一个名叫王安的人的需求。他是 王安电脑公司 Wang Laboratories 的负责人,这是当时领先的计算机公司之一。王安想出了一种磁芯存储器的方法,这是计算机在未来 20 年内使用的方法。

00:12:51

当 1975 年王安接触 Massaro 时,他给了 Massaro 一个挑战。当时 Shugart 的一名工程师 George Sollman 还记得这件事。

00:13:03 - George Sollman

王博士说:“我真的很想做小型商业系统和文字处理器,但是现在的磁盘驱动器 —— 你的 8 英寸大的磁盘驱动器太大了。我们需要几个小型的存储设备。它们可以被安置在 CRT 显像管旁边,但我们不能用 8 英寸大的,因为磁场会破坏图像。”因此,他认为我们可以采用 8 英寸的软盘并且把它缩小。我们知道必须设计出低成本而且可行的东西来。我们整理了一张普通老套的挂图来描述它是什么,然后拿回来和王博士见了面。王博士说:“我喜欢它,但是你不能在里面使用交流电动机,因为这会扭曲图像。”

00:13:52 - George Sollman

所以他说:“为什么不找找看谁在制造磁带机的电动机,比如通用汽车公司?”因此,我们回过头来,实现了一些很小的电动机,这些电动机适合微型软盘,可以驱动皮带,并转动软盘。

00:14:10 - Saron Yitbarek

George Sollman 必须确定这种新软盘的规格,它应该变得有多小,以及应该容纳什么。

00:14:19 - George Sollman

我们所做的是,查看了当时所有的磁带机,并计算了它们的平均尺寸。完成了全部的工作后,最终选择了 5.25 英寸的软盘尺寸。我们知道我们可能只有一次机会。我记得那是在王博士把 Don 和我拉进他办公室时说的:“我给你们看一下,你们的磁盘驱动器装在我们的新文字处理器上。”他们还想向我们订购大量的磁盘驱动器,有 10000 个。因此这就好像,哇,我们成功了。

00:14:54 - Saron Yitbarek

现如今,在历史上的技术传说中,有关 5.25 英寸这一尺寸是如何形成的,有几个不同的说法。一种说法是让软盘比口袋的尺寸大,以避免不幸的弯曲和折断。最受欢迎的民间版本是,Al Shugart 在酒吧里喝了几杯酒,然后当他弄脏了一块恰巧 5.25 平方英寸的酒吧餐巾纸时,灵光一动。这位是 Teri Shugart,Al 的女儿。

00:15:26 - Teri Shugart

他喜欢喝酒,我可以告诉你的是,他所创办的所有公司的大部分计划都确实是在酒吧里做出的。因此,这件事并非不可能,实际上很可能就是这样。

00:15:43 - Saron Yitbarek

但是,真正改变了 Shugart 和他团队的游戏规则的,坦率地说也是改变了所有计算机历史的关键时刻,是 George Sollman 和 Don Massaro 决定在自制计算机俱乐部展示他们的 5.25 英寸软盘。

00:16:00 - George Sollman

有一个自制计算机俱乐部的会议在斯坦福的线性加速器中心的会议室举行,离我们住的地方大约有一英里。因此,我们带了我们的微型软盘过去并做了演示,观众里有个名叫 史蒂夫•沃兹尼亚克 Steve Wozniak 的家伙,他想就我们的产品和我谈谈,并说:“我得让某些人关注到它。”

00:16:24 - Saron Yitbarek

演示之后,George 和 Don 回归了他们的常规事务,但是几天后,在办公室里,Don 把他叫到了一边。

00:16:33 - George Sollman

并说道:“你是营销人员,你应当保持前厅整洁,George。”然后我说:“嗯,Don 你想说什么?”他说:“我们的前厅里有个流浪汉,我们应该把他弄出去。”所以我走了出去,和这个家伙握了握手。他有着一双最为锐利的眼睛,我又和他聊了一会儿,他的谈话非常有趣,他说:“我想和你去实验室看看 Steve 说的这个东西是什么。”我不知道这样是否合法,但他是我所遇到过的最有趣的人之一,很显然他有着很高的智商和极大的好奇心,他就是 史蒂夫•乔布斯 Steve Jobs

00:17:19 - Saron Yitbarek

史蒂夫•乔布斯讨厌苹果早期计算机中的盒式磁带驱动器。它们总是出现故障,要花很长时间大费周折获取信息。对于 Apple II,他想要一个软盘驱动器,史蒂夫•沃兹尼亚克想要制造它,但尺寸是关键因素。必须缩小软盘的尺寸,从而使得这款计算机更能吸引消费者。因此,在 1997 年圣诞节假期的两周时间里,沃兹尼亚克靠着天天吃麦当劳开发了原型。在新的一年的 拉斯维加斯 Las Vegas 消费电子展 Consumer Electronics Show 之前及时完成了。

00:17:57

沃兹尼亚克很喜欢开发那款软盘驱动器,并将其描述为他参与过的最好的工程。乔布斯雇佣了 Shugart 来制造 Apple 软盘。Disk II 成为了 Apple 的主打产品,助推了 Apple II 计算机的销售并改变了行业。这位是 Steven Vaughan-Nichols。

00:18:20 - Steven Vaughan-Nichols

如果你买了一台 Apple II,Disk II 是一个很快就会大受欢迎的选择。确实,你可以将史蒂夫•乔布斯誉为将软盘驱动器引入到个人计算机领域的人。人们正在运行名为 CPM 80 的操作系统,实际上还有数十家小型制造商和一些像 DEC 之类的大型制造商在制造 CPM 80 计算机,而所有这些计算机都使用 5.25 英寸的软盘驱动器。然后,当 IBM 在 1981 年推出第一台 IBM PC 时,每个人都清楚这不再是一个业余市场了。

00:19:04

这是一个真正的商业市场,而这将由新流行的 5.25 英寸软盘驱动器驱动。

00:19:14 - Saron Yitbarek

软盘和个人计算机革命是共生的。它们一个驱动着另一个,反之亦然。它们一起进化。由于有了软盘,公司可以编写程序,将程序复制到磁盘里,然后通过邮寄或在商店里出售。它对早期个人电脑的作用就像应用商店对智能手机的作用一样,为开发人员提供了便利。事实上,软盘使得软件行业成为可能,并且随着这些软件程序变得越来越大、越来越复杂,软盘再一次发生了变化。1981 年, 索尼 Sony 推出了将软盘缩小到 3.5 英寸的新版本。

00:19:59

较小的同类产品用硬塑料包裹,并内置金属遮板,以防止灰尘进入。它们更加坚固,可以存储更多的数据。有趣的是,尽管它们的外壳很硬,但它们仍被称为软盘,而当苹果公司在 1984 年发布其新 Macintosh 计算机时,又一次使得 3.5 英寸软盘成为新标准。

00:20:25 - Steven Vaughan-Nichols

好吧,我们都知道 史蒂夫•乔布斯 Steve Jobs 史蒂夫•沃兹尼亚克 Steve Wozniak 。像 Shugart 这些软盘驱动器的创造者,却不是家喻户晓的名字,但是他们所做的工作绝对至关重要。如果没有他们的话,个人计算机被采用的速度将会慢得多。我无法想象,如果没有这些早期的驱动器,个人计算机革命会如何发生。它使得数据输入输出计算机比其它方式更容易。

00:21:06 - Saron Yitbarek

由于软盘尺寸适中且易于分享,因此它们具有一种社交性,就像早期的社交媒体形式一样。你可以和人们见面并交易软盘。这是在人们可以轻松访问调制解调器、互联网尚未出现之前的事情。人们分享装满了程序的软盘,就像分享装满 Cyndi Lauper 曲目的混合磁带一样。而且这种数据传输的方式甚至有个名字,即 跑腿网络 Sneakernet ,从字面上看,你必须用你的双脚将数字信息从一台机器传输到另外一台,而人们在这些分享的磁盘上所存放的内容可以是任何东西,当然有软件,但是还有更多,尤其是随着新兴的数字创作工具的出现。

00:21:55

Jaime Levy 是上世纪 80 年代后期那些新兴的数字创作者之一。她如今是 南加州大学 the University of Southern California 的教授,也是《UX Strategy》的作者。

00:22:07 - Jaime Levy

我当然也认为这很神奇,你可以在软盘上制作出交互式的、非线性的东西。我当时正在制作后来被称之为 磁盘杂志 diskzine 的杂志。那是在桌面出版的同一时期。我想当时 PageMaker 已经问世。人们刚购买了 Macintosh,正逐渐被吸引到数字技术上来。

00:22:32 - Saron Yitbarek

此前从来都没有人听说过交互式的杂志,甚至连 Jamie 也没有,但是她结合了动画、艺术、声音以及交互式界面,并使得它们适合放在软盘上。她制作了一堆副本,将它们打包并运送到了当地的一家书店。

00:22:48

在大多数情况下,人们没有 Macintosh 甚至不能看它们的内容,他们不知道上面有什么。所以我说,在这里放 10 个副本,你拿一个回家看看,如果喜欢它的话,就把它们卖出去。他们会把它们放在前台,因为它们没法很好地被放在架子上,然后立即就有人买了它们。只要有 Mac 的人走进那里,看到这个东西只要 6 美元,他们就会说:“是的,我想要那东西。”

00:23:15

书店里不断售空。Jaime 收到了来自世界各地的来信,并且开始引起了全国媒体的注意。不久后,她通过邮购贩卖她的磁盘来做生意。然后,她作为界面设计师的职业生涯开始了。她的故事是软盘和跑腿网络力量的证明。曾经有一段时间,你可以使用单个 160 KB 的软盘驱动器运行一个完整的操作系统,但是到了上世纪 90 年代中期,你需要多张软盘才能运行任何东西,文件变得越来越大,而把软盘从你的计算机来回放入和取出实在是很烦人。

00:23:57

1998 年,iMac 成了第一款不带软盘驱动器的个人计算机,这是一个不祥之兆。当调制解调器变得越来越好,互联网更加易于使用,人们从软盘转移到了更新的存储技术,比如 CD ROM,从 CD 我们又转到了 DVD、SD 卡、USB 闪存驱动器。回过身来,我们的身后有一整个废弃的存储技术坟墓。现如今,我们有了云。可怜的老软盘,它们不再有机会了。但是,重要的是,软盘仍然苟延残喘。它们有持久的生命力。首先,仍然有供初学者使用的“保存”图标。

00:24:43

人们仍然有着装满了它们的鞋盒。实际上,事实证明,软盘是最具弹性的技术之一。你可能会惊讶地发现它们仍然被用来维护 美国洲际弹道导弹系统 the US Intercontinental Ballistic Missile System 等遗留机器。直到最近,该系统一直依赖于 8 英寸的软盘驱动器。 Matthew Kirschenbaum 是 马里兰大学 the University of Maryland 的英语和数字研究教授。

00:25:17 - Matthew Kirschenbaum

因此,有一个关于美国空军从其核指挥和控制系统中逐步淘汰 8 英寸软盘的故事正在流传。伴随着的是人们在导弹发射井中将软盘插入某种老式大型计算机中的照片。我认为着实令人惊讶,因为看到某些东西,比如核武器仍然通过 8 英寸软盘控制着。政府、军方最终将淘汰这些系统。我当然认为那是一件好事,但也要记住,作为存储介质,软盘往往非常耐用且具有弹性。它们的面积密度低,这意味着与当今的硬盘驱动器相比,它们相对粗糙或低保真。实际上,这使得它们更具弹性,也更可靠。由于年代久远,它们也是那些计算机系统的过时之处。具有讽刺意味的是,它们可以更好地保护我们免受当今以病毒、黑客攻击和类似形式出现的网络威胁。人们所使用的术语是“ 气隙 air gap ”,软盘没有以任何方式连接到互联网,并且可以将其视为非常理想的安全功能。即使这使得人们有些许不安。但它们被使用了这么长时间,并不完全是没道理的。

00:26:53 - Saron Yitbarek

当然。现在看软盘,它们看起来很脆弱,而且有点儿可笑,但是借助正确的设备,几十年前的磁盘如今仍然可以被读取。谁知道在那些数据被检索时能发现什么样的宝藏呢。

00:27:09 - Matthew Kirschenbaum

几年前,有新闻说发现了十几张 Andy Warhol 的图片。实际上这些图片是 20 世纪 80 年代 Andy Warhol 在一台 Amiga 计算机上创造的。

00:27:26

他得到了一台 Amiga,并进行了实验,开始将其用于他的一些艺术作品,所得到的图像被保存到位于 匹兹堡 Pittsburgh Warhol 博物馆的软盘上。 卡内基·梅隆大学 Carnegie Mellon University 的一个团队抢救了这些文件,所以现在我们又有 Andy Warhol 的十几件艺术品。

00:27:53 - Saron Yitbarek

说到宝藏,是时候了解一下 Jordan Mechner 和他丢失多年的源代码到底发生了什么了。前情回顾, Jordan 丢失了《 波斯王子 Prince of Persia 》的源代码。多年之后,他的父亲在壁橱后面发现了一个鞋盒,里面装着一堆满是灰尘的 3.5 英寸软盘。其中一张被标记为“源代码”,但是源代码真的在那张磁盘上吗?他能够恢复他《 波斯王子 Prince of Persia 》作品吗?

00:28:23

为了找到答案,我们和 Jordan 招募的拯救源代码小组的两个成员进行了交谈。Jordan 联系的第一个人是 Jason Scott,他是 互联网档案馆 Internet Archive 的放养档案管理员。

00:28:38 - Jason Scott

这可能行得通,但也可能不行,但是你总是希望能对最坏的结果做好准备。我认识一个人,他的名字叫 Tony,而 Tony 与苹果公司的关系非常密切。他对他们无所不知。我称他为“Apple II 耳语者”。

00:28:59 - Saron Yitbarek

通过一个长期运行的 IRC 频道,Jason 找到了 Tony Diaz,并招募了他来担任这份工作。 Jordan 邀请了这对计算机考古学家到他位于 Hollywood Hills 的家中。Tony 将一堆装备装进了卡车的后部,准备从 Oceanside 长途开车到洛杉矶。

00:29:19 - Tony Diaz

我拿了几套闲置的 Apple IIe 系统,打包装箱,各种东西装满了半个皮卡车斗,并且还有用于读取困难的软盘的改装磁盘驱动器和各种类似的工具。磁盘驱动器控制器的功能有所不同,还有一些更为现代化的计算机上的东西,有些可以帮助处理软盘(如果有必要的话)。是的,把它们全部装载起来然后上路。

00:29:43 - Saron Yitbarek

在 Jordan 的起居室里。Tony 建立了一个令人印象深刻的由老式 Apple II 计算机和 3.5 英寸磁盘驱动器组成的阵列。然后 Jordan 把一个装在塑料袋里的鞋盒拿了出来,就仿佛它是个圣杯一样。这个圣杯周围有橡皮筋,以防止鞋盒盖子掉落。

00:30:03 - Tony Diaz

我曾多次遇到这种情况,刚刚打开旧的磁盘盒,它们都有同样的那种霉味。我不知道该怎么说,这很难描述,但是对于那些曾经在海军舰船上的人来说,它们气味相同,和你去到飞机后面闻到的都一样。软盘有它自己的独特的,那个词怎么说来着,光泽。

00:30:25 - Saron Yitbarek

Tony 取出了几个磁盘,看看它们的状况。如果需要的话,他准备着取下保护套,并用 Joy 洗碗皂清洗它们。这些磁盘已经很久没有转动过了。因此,他把手指放在中间,摇晃了一下并旋转了一下,以检查是否发霉。然后他和 Jason 分成了两队。

00:30:49 - Jason Scott

我要去做 磁通量读数 flux reading ,也就是磁信息,从软盘上拉取下来每一个磁性波动信息,这会产生非常巨大且难以解码的软盘镜像。这样的想法是,如果发生其他任何错误或者我们在某种单一方式受到阻碍,那么未来我们能够使用这些信息。

00:31:16

Tony 知道这些磁盘上的信息是什么,他在计算机上使用实用工具来读取磁盘,就像早在 1990 年时候那样,这些数据对他来说是有意义的。我们去找那些很明显是标准文件副本的磁盘。试图确保在我们知道面对的是什么之前,我们不会处理任何只有单张的磁盘。这些最初的简单磁盘上的一些是诸如 《Death Bounce》之类的东西。这是他制作的一款从未问世的游戏,还有 Asteroids Clone。它们能运行,我们能够在机器上玩它们,他看着他几十年来都没想起来过的游戏,它们正运行良好。

00:32:06 - Saron Yitbarek

到目前为止,一切都很顺利。现在轮到被标记着《 波斯王子 Prince of Persia 》的那张磁盘了。Tony 开始分析它,并且意识到它是一个硬盘驱动器的备份,被分成了五份放在了五张软盘里。他需要把整个东西重新整合在一起。

00:32:23 - Tony Diaz

因此,要想还原这些镜像,你必须有一个与写入时大小相同的硬盘驱动器卷。当然,我带来了硬盘,但是怎么可能正好有完全相同的大小呢?因为你并不见得总能这么巧。没关系,我将在我的卡上创建了一个 10M 的分区,并制作了这些磁盘的副本,然后告诉它是从 10M 的驱动器上进行的备份。我们继续还原它,然后得到了一个完美的硬盘驱动器,装满了待查看的源代码文件。

00:32:50 - Saron Yitbarek

重大的发现出现在当他们完成了第一个目录并查看文件的时候。

00:32:55 - Tony Diaz

是的,就是它。Merlin 文件,它们都以 “.s” 结尾,还有 OBJ 文件,用于编译或汇编时 —— 都在这里了。哦,我的天哪,它有如此之多的不同版本,我们不得不把这些弄清楚,但是所有人的头基本上都转向了右后方的显示器和计算机上,多少有点儿沉默,好吧,让我们来瞧瞧这上面有什么?那个呢?我记得这个。

00:33:20 - Jason Scott

当他开始这么做,并且我们开始滚动浏览那张磁盘上的文本文件,Jordan 立即识别出来它们是他的原始源代码。因此,即使我们知道我们有了重大发现,我们也还是继续浏览所有的磁盘,以确保我们不会错过一些其他的版本。在我们发现的东西中,有《波斯王子》中其他正在进行的工作,他曾尝试过不同的图形等等。

00:33:48 - Saron Yitbarek

令人惊讶。当团队看到可识别的源代码文件那一刻,长长地松了一口气。《波斯王子:时之沙》已经从时间的流沙中获救。不过他们的工作还没有完全完成。

00:34:09 - Saron Yitbarek

Jason 将抢救回来的代码上传到了 GitHub,世界各地的粉丝立刻就能获取到它。这件事的消息已经散布出去,人们登录并等待着。

00:34:22 - Tony Diaz

我们那天的主要目的是尽快将其上传到 GitHub 上的一个仓库里。我们一直都连接在同一个 IRC 聊天室,有各种各样的人问我们问题。“这是什么?你看到的是什么?你获得了什么?”而且我们在进行时得到了现场反馈。

00:34:38 - Jason Scott

曾开发过《 毁灭战士 Doom 》和《 雷神 Quake 》的 John Romero 说,他在看源代码时学到了一些技巧,而其他一些人当然完全搞不懂他们在看什么,因为在 20 世纪 80 年代后期所写的代码和今日相比相当不一样。事实上他逐个字节地移动内存,试图清理空间以使得“精灵”看起来像预期的一样。那是完全不同的一个世界。

00:35:09 - Saron Yitbarek

自从 2012 年那重大的一天以来,《波斯王子》的源代码一直被研究、分享、评论和珍藏。这里是 Matthew G. Kirschenbaum 的一些总结。

00:35:23 - Matthew Kirschenbaum

这是另一个例子,有关我们会认为是数字文化、有点像当今艺术作品的方式,我们当下的创造性表达方式。很多东西都被锁在了这些陈旧过时、满是灰尘的软盘里,但是凭借一点运气和工程学工作,发生了一些我们如何把东西弄回来的非常了不起的故事。

00:35:49 - Saron Yitbarek

如今,“保存”图标是我们中的一些人离软盘最近的地方,但是当你们看到它时,我希望你们能够记住,它是这段神奇历史的一部分,我们不应该将其视为理所当然。这是一段有关分享和拯救我们所创造的东西的历史,一段有关保存的历史。

00:36:09 - Saron Yitbarek

《代码英雄( Command Line Heroes )》是红帽( Red Hat )的一档原创播客节目。请到 redhat.com/commandlineheroes 查看我们的软盘研究笔记。顺便说一句,如果我们保存了这一集(大约 51.5 MB ),我们估计它会占用 36 张 3.5 英寸的软盘。我是 Saron Yitbarek,直到下一次,继续写代码吧。

附加剧集

从打孔卡和纸带到软盘并不是简单的事情。听听王安的故事,他推动了计算机存储技术的发展。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-4/floppies

作者:Red Hat 选题:bestony 译者:JonnieWayy 校对:wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出