分类 代码英雄 下的文章

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

什么是《代码英雄》

代码英雄 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中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(3):个人计算机 —— Altair 8800 和革命的曙光音频脚本。

导语:因为 Altair 8800,我们今天才能在大多数家庭中拥有计算机。它最初是为业余爱好者设计的,但是一些有远见的人看到了这个奇怪的小机器的巨大潜力,并努力使其他人也看到。他们创造的东西所带来的影响远远超出了任何人的想象。

Forrest Mims 告诉了我们他的联合创始人 Ed Roberts 是如何计划拯救他们陷入困境的电子公司的。他的想法是什么?一台为业余爱好者制造的微型计算机。那台计算机让 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 打了一个决定性的电话。Dan Sokol 和 Lee Felsenstein 回顾了 Altair 8800 在自制计算机俱乐部的揭幕,以及它如何激发了 史蒂夫•沃兹尼亚克 Steve Wozniak 的 Apple I 的灵感。然后,我们在 John Markoff 那里听到了一个臭名昭著的软件抢劫案,该案为代码是否应该是专有的辩论创造了条件。最后,Limor Fried 回顾了这个故事如何继续影响今天的开源硬件运动。

00:00:04 - Saron Yitbarek

1974 年 12 月一个严寒结霜的下午,两个年轻人走在哈佛广场上,他们可能正在谈论着他们最感兴趣的计算机话题。

00:00:19

当他们经过报摊,看到了《 大众电子 Popular Electronics 》杂志从其他杂志中露出的蓝色字体,他们停下来看了一下,杂志封面上是一个金属盒的照片,在它的正面有十几个开关和指示灯。标题上写着:“世界上第一台小型计算机套件,Altair 8800。” 这个盒子看上去不太像样,裸露着金属,就像是给业余爱好者和修理工们准备的。但对这两个人来说却不是这样,更像是他们一直在等待的机器,因为他们正好有适合这种新硬件的完美软件。同时,他们也有一些忐忑,如果别人也有这种想法并已经开始实施的话,那该怎么办呢?必须尽快行动起来了。这两位代码英雄是谁呢? 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 。此时他们并不知道,Altair 8800 将会是打开个人计算机革命大门的机器,它将永远的改变我们的生活。这台设备还做到了另一件事,在一个神秘小偷的帮助下,它将引发自由软件和专有软件之间的争论,我们稍后会讲到。

00:01:50

在硬件这一季的第一集,我们了解了 Eagle 这样的分时小型机。在第二集,我们了解了 GE-225 大型机。但它们仍然受制于自身的尺寸、价格以及处理能力。而这一集讲的是,缩小到 微型计算机 micro computer 的所有东西。这一切,都始于邮寄给业余爱好者的 DIY 套件,就像是《大众电子》的那张划时代的封面里面的一样。

00:02:23

这些简单的套件,激发出了一种革命性的想法:计算机可以放在你的家里。这台计算机是属于你的,你可以用来做实验。一个全新的、面向大众的硬件产品 —— 个人计算机 personal computer (PC) —— 诞生了。我是 Saron Yitbarek,这里是《代码英雄》,一款红帽公司的原创播客。

00:02:51

让我们回到上世纪 60 年代末,在新墨西哥州的沙漠里,Altair 8800 诞生了。一个名叫 Ed Roberts 的人与人合伙创立了一家小型电子零件公司 MITS(意即“ 微型仪器和遥测系统 Micro Instrumentation and Telemetry Systems ”)。通过爱好者杂志,他们可以将这些小玩意卖给痴迷于无线电遥控飞机和火箭模型的新市场。

00:03:21

到 1971 年,Ed 独立经营着公司。他决定将重心转向电子计算器,这在当时是一个全新的市场。MITS 准备提供第一台爱好者计算器,但是 Ed 失算了。这位是他最初的联合创始人,Forrest Mims。

00:03:42 - Forrest Mims

像索尼、夏普和德州仪器这样的公司,他们正在制造专业的袖珍计算器,并以低于 Ed 的价格出售。这是一场灾难,Ed 濒临破产,并且不知道该怎么办。

00:03:57

有一天,他了解到英特尔公司开发了一种新型的微处理器,并在《 电子杂志 Electronics Magazine 》上刊登了广告。我仍然记得那则广告,那款微处理器叫做 Intel 8080。

00:04:09 - Saron Yitbarek

Ed 大量购买了英特尔微处理器,因为当时没有人购买它。他围绕这个微处理器设计了一台完整的计算机。

00:04:23 - Forrest Mims

有一天晚上,他给我打电话说:“我有一个新玩意儿想让你看看。”于是我骑自行车去了 MITS。桌上有一个蓝色的盒子。他说,“看这个。”我说,“这是什么?”他说,“这是一台微型计算机。”我说,“你在开玩笑吧。”他说,“不,这是一台微型计算机,《大众电子》杂志已经认可了,并且想要刊登一篇关于它的文章。”

00:04:43 - Saron Yitbarek

Ed 的目标是创造一个非常基本的计算机套件,同样提供给那些模型飞机和火箭的爱好者市场。他通过《大众电子》杂志来邮购销售这个套件。当你收到这个套件时,会获得一个装满金属零件的袋子,里面有一个装有最重要的 Intel 8080 微处理器芯片的特殊管子。Ed 把整个套件的价格定在 400 美元左右。

00:05:14 - Forrest Mims

他在考虑一个问题,“你觉得能卖出多少台?”他问道。基于之前我们通过《大众电子》杂志销售东西的经验,我说,“好吧,Ed,顶天了也就几百台吧。”我这么说的时候,他看起来好难过。直到今天我都为此感到内疚。在《大众电子》杂志刊登了这个套件之后,他的小楼前的停车场里挤满了汽车。最后竟然卖了 5000 台这样的计算机。它被命名为 Altair 8800。当时 Ed 不知道该怎么称呼它,这个名字还是《大众电子》杂志的工作人员想出来的。

00:05:50 - Saron Yitbarek

Altair 8800 是 Ed Roberts 为了拯救他的公司而做的拼死一搏,这是他做过的最好的决定。他做了一件真正有意义的事情,但他当时并没有意识到。通过将 Altair 以一个合适的价格投放到市场,他让自己的机器展现给了比铁杆电子爱好者更大的受众群体面前。他的 Altair 开拓了一个全新的市场 —— 那些从未想过能拥有自己计算机的消费者群体。

00:06:28

更重要的是,他们可以修理自己的计算机。这是一个大时代的开端,但它还缺少一个部分,软件。这个硬件需要正确的软件才能活起来。

00:06:51

回到 马萨诸塞州 Massachusetts 的剑桥,比尔•盖茨和保罗•艾伦刚刚在最新一期《大众电子》杂志的封面上看到了 Altair 8800。在他们走过哈佛广场的那段决定性路程之前,保罗一直在向比尔抱怨那些 Intel 8080 的新芯片,他在寻找使用这些芯片创建软件的方法。

00:07:16

比尔和保罗使用 BASIC 编程。正如我们在上一集中知道的,如果没有 GE-225 主机,BASIC 永远不会诞生并流行起来。对于比尔和保罗来说,BASIC 的易用性使得它成为了理想的语言,可以提供给那些受限于内存和处理能力的硬件,比如 8080。

00:07:38

当他们看到杂志封面上封装着 8080 芯片的 Altair 时,他们意识到可以用 BASIC 编写软件来支撑这个机器。他们很快联系了 MITS 的 Ed Roberts。Forrest Mims 还记得那个电话。

00:07:56 - Forrest Mims

保罗说,“我们得给这个公司打个电话,告诉他们我们已经有 BASIC 了。”盖茨同意了,但他不想亲自打这个电话,因为他的声音实在太年轻了,而且他看起来也像个青少年。所以保罗•艾伦打电话给 Ed:“我们已经为你的 Altair 准备好了 BASIC。”Ed 说,“每个人都告诉我他们已经搞好了 BASIC。如果你弄好了它,就把它送过来,合适的话,我会考虑的。”

00:08:17

他们并没有 BASIC。他们花了一个月的时间在麻省理工学院或哈佛大学都不知情的情况下借用了计算机时间,为从没有见过的 Altair 开发了 BASIC 软件。

00:08:27 - Saron Yitbarek

比尔和保罗知道他们有能力为 Altair 编写代码。但实际上,他们还没有开始编写。所以他们日以继夜地为这个机器改写 BASIC。使用公布的规范,他们在 DEC PDP-10 主机上创建了一个仿真器,以此来仿真 Altair,然后开发了一个 BASIC 解释器。

00:08:53

没有 BASIC 解释器的 Altair 8800 本质上就是一个带有开关和指示灯的金属盒子,并没有什么用。然而随着 BASIC 解释器的加入,这台机器突然有了全新的未来。

00:09:10

仅仅几个星期后,也就是 1975 年 3 月,代码就准备好了。保罗飞往 阿尔伯克基 Albuquerque ,准备亲手将演示程序交给 Ed Roberts。前一天晚上比尔一夜没睡,以确保代码没有任何的错误。他把最终的代码打在纸带上,并在航班起飞前交给保罗。在三万英尺的高空,保罗突然意识到,他们忘了一件事。

00:09:39 - Forrest Mims

他意识到,他们没有开发出 编码器 Coder ,或者说 引导记录器 bootstrap logger ,来帮助计算机读取程序。他在飞机上写了那个代码。保罗•艾伦就是这么才华横溢。

00:09:53 - Saron Yitbarek

现在他已经准备好了。在第二天进行演示的时候,保罗将首次在一台真正的 Altair 上测试他们的代码。1994 年比尔•盖茨在一段旧影片中,谈到保罗•艾伦在 MITS 装上纸带时所发生的事。

00:10:13 - 比尔•盖茨

第一次,由于某些原因,代码并没有工作。当第二次加载它时,它就顺利的工作了。然而这只是仿真器,速度非常的慢,需要大量的指令才能完成一条指令。因此,实际上,即使是一个非常小的微处理器,真实的机器也比我们的 PDP-10 仿真器要快,大约快五倍。

00:10:32

所以,对保罗来说,当它最终出现并显示出 “READY” 提示符时,保罗输入了一个程序,“打印二加二”,它成功了。然后他让它打印出类似于平方和求和之类的结果。他和这家公司的负责人 Ed Roberts 一起坐在那里都惊呆了。我的意思是,保罗惊讶于我们的那部分能够工作,而 Ed 则惊讶于他的硬件能够工作。

00:10:55 - Saron Yitbarek

保罗•艾伦和比尔•盖茨的 BASIC 解释器在 Altair 上工作得非常棒,这是一个惊人的成就。

00:11:02

Ed Roberts 对此印象非常的深刻,以至于……

00:11:08 - Forrest Mims

他当场聘请了保罗•艾伦担任他的软件开发副总裁。

00:11:13 - Saron Yitbarek

保罗•艾伦在那之后很快就搬到了新墨西哥州,开始了他的新工作。至于比尔,他回到了哈佛,毕竟他还是个学生。

00:11:23 - Forrest Mims

但是保罗•艾伦说服了盖茨在 1975 年的夏天回来,并开始用 BASIC 工作。他们一起开了一家公司,叫做 Micro-soft,带一个连字符。后来他们去掉了连字符。

00:11:36 - Saron Yitbarek

MITS 成为了比尔和保罗的第一个客户,他们授权了他们的 BASIC 解释器给 MITS,并同意随机器分发他们的代码。他们称这套软件为 Altair BASIC,它成为了与个人计算机捆绑的第一款软件。现在他们只需要卖掉它就好了。

00:11:57 - Forrest Mims

Ed 做了什么呢?嗯,他们买了一辆大型房车,把它做成一个移动销售设备,一个销售计算机的移动办公室。他们把它开到全国各地,在不同的城市停下来,举行演示,这吸引了大量的人。

00:12:12 - Saron Yitbarek

它被称为“移动 MITS”,把巡回路演带到了西部。在加利福尼亚海岸沿岸,会议室里挤满了好奇的工程师和修理工。MITS 团队展示了 Altair 和 Altair BASIC。然而,在 Palo Alto 一个特别拥挤的酒店会议室里,发生了一件意想不到的事情。这件事改变了整个软件历史的进程。

00:12:46

让我们先等一下。在开始说这件意想不到的事情之前,我们先来了解一下 湾区 Bay area 的电子爱好者和业余爱好者的情况。他们自称为 自制计算机俱乐部 Homebrew Computer Club 。他们互相交换零件、电路和想法,并在探索个人计算机的新世界里相互扶持。

00:13:11 - Dan Sokol

这些人都对此感到好奇。他们中大多数都是某个领域的工程师。其中只有两三个人对计算机编程完全没有了解。当时做了一项调查,在座多少人拥有一台计算机,而又有多少人计划购买一台。这个调查十分有趣,所有人都想拥有一台计算机,但是实际上只有一两个人拥有它们,他们会把计算机带到俱乐部聚会上展示它们。我记得那时最令人尴尬的问题是,“你打算用它做什么?”而没有人知道。

00:13:46 - Saron Yitbarek

这位是 Dan Sokol,自制计算机俱乐部最初的成员之一。因为每个人都想看一看 Altair 8800,在 门罗公园 Menlo Park 的一个车库里他们举行了第一次集会。

00:14:08 - Lee Felsenstein

在 1975 年 3 月 5 日的一个雨夜,有 30 个人来到了这个车库。这里有一台为他们展示的 Altair。它是启动着的,但没有连接任何东西,也没有做任何事情。

00:14:22 - Saron Yitbarek

这位是 Lee Felsenstein,俱乐部的另一个初始成员。

00:14:27 - Lee Felsenstein

我们在房间里走来走去,尝试学到一些什么。我们从 Steve Dompier 听到了更多的报告,他订购了一台 Altair 计算机,它是在一月份的《大众电子》杂志上发布的。他实际上开车去了 Albuquerque 核实了他的订单,然后向我们报告了他的发现。

00:14:48 - Dan Sokol

Dompier 带来了一台 Altair,他坐在那儿,通过前面板的开关进行编程,使它播放音乐。在大约尝试了一个小时后,有人不小心把电源线踢掉了,这使得他不得不重新开始。但在当时看来,这是“看一台计算机,而且是你能买得起的那种。”

00:15:08 - Saron Yitbarek

在举行的聚会上还有一个人。当他看到 Altair 的时候,让他大吃一惊,但不是因为他不相信有这样一台机器存在。恰恰相反,因为有类似功能并比它好的多的机器已经存在了,他已经制造了它。那个人就是年轻的 史蒂夫•沃兹尼亚克 Steve Wozniak 。他的一个朋友劝说他去参加那个聚会,以便让史蒂夫展示他制造的视频终端。但是每个人都被 Altair 所吸引。在此之前,史蒂夫从未听说过 Altair,也没听说过使它工作起来的英特尔 8080 微处理器。他带了一份数据表回家,这件事带来了一个不可思议的惊喜。

00:16:01

这是史蒂夫•沃兹尼亚克(“沃兹”)早在 2013 年自制计算机俱乐部聚会上的发言。

00:16:10 - 史蒂夫•沃兹尼亚克

我把它带回家研究了一下,然后发现,“天哪,这些微处理器是一个芯片。”竟然能卖到 400 美元,这太疯狂了。这就是在我高中时在纸上设计的计算机。实际上,五年前我自己也制造了一个,当时我必须自己制造一个处理器。因为那时还没有微处理器。

00:16:31 - Saron Yitbarek

在上一集中,我们了解了沃兹高中时是如何在 GE-225 计算机上开始用 BASIC 编写他自己的软件的。嗯,从高中开始,沃兹就想拥有一台属于自己的计算机。但要做到这一点,他必须包括一种编程语言,这意味着至少需要 4K 内存以及用于人工输入输出的功能来输入程序。他的机器有 256 字节的固态 RAM,而此类芯片非常的昂贵,所以他设计了一个处理器,还在高中的时候就不断地改进它。就像 Altair 一样,它有输入 1 和 0 的开关。但现在他意识到 Altair 的微处理器是他梦寐以求的。

00:17:24 - 史蒂夫•沃兹尼亚克

你按下按钮 1、0、1、0、1、0,然后按下一个按钮,它就进入一个地址寄存器,在按下几个 1 和 0,然后写入内存。你写满了内存,在俱乐部听到了 Altair 播放音乐,是如此的兴奋。但对我来说,这都不算什么,我想要的是一台可以使用的机器,现在我要做的是输入数据直接写入内存。这太容易了,我说,“我的梦想就是拥有一台自己的计算机。”那天晚上,我看到了这种方法。

00:17:56 - Saron Yitbarek

那天晚上,Apple I 的形象突然出现在了史蒂夫•沃兹尼亚克的脑海中。他可以通过在终端机上添加一个微处理器,几乎不用做什么就可以得到一台适合使用的计算机。他的想法是:当计算机启动时,会运行一个程序去接收输入的数据,就像打字机一样。而不再需要拨弄 1 和 0 了。再加上他制造的视频终端机,让程序员可以看到自己输入的内容,一台感觉更人性化的计算机就诞生了,这是一台对普通人有用的个人电脑。下面是 Lee Felsenstein 的发言。

00:18:42 - Lee Felsenstein

他已经开发出一种小型的视频终端适配器,通用术语是 电视打字机 TV typewriter 。可以把它连接在电视上。他当时接触了一种只需要 25 美元的处理器芯片,并意识到,“如果我把它放在带有内存的主板上,我也能在主板上放上电视终端,这样我就会拥有一台具有视频显示的计算机。”他就这样做了,在聚会时就在为此做准备,当我们搬到 斯坦福直线加速器礼堂 Stanford Linear Accelerator Auditorium 时,他占住了唯一有电源插座的座位。他总是比别人先到那儿,他正在为 Apple I 编写 BASIC 程序。在那里他开创了苹果计算机系列。

00:19:34 - Saron Yitbarek

每次沃兹完成了他的计算机制作,他就会很兴奋地向俱乐部的每个人展示。他解释了如何使用几块芯片制造出一台价格低廉的个人计算机。沃兹是信息自由、分享知识以帮助建立更好的系统和社会的理念的主要倡导者。这与当时俱乐部的开放价值观和社会解放运动相呼应。

00:19:59

因此,在会议结束的时候,他拿出了他的设计、硬件和软件的蓝图,免费传给大家。他认为他们每个人都可以利用他的方案来制造自己的 300 美元的计算机。但沃兹的朋友兼商业伙伴,一个名叫 史蒂夫•乔布斯 Steve Jobs 的人,很快就终止了他的这个想法。乔布斯一直在外奔波,并没有意识到沃兹会把 Apple I 的设计送给别人。乔布斯并不认同沃兹的黑客思维方式,他更注重专利。很快,乔布斯说服了沃兹,他们决定改为出售计算机。

00:20:42

这种自由和专有技术之间的道德斗争,曾经不止一次发生在自制计算机俱乐部。事实上,在那次让大家对 Altair 瞠目结舌的首届俱乐部大会之后的几个月,还有一次聚会点燃了这场辩论的导火索。它发生在斯坦福直线加速器中心礼堂里。聚会结束时,数十名与会者冲上台去想要获取一份纸带程序,这是微软公司的 Altair Basic 的最新副本,是一款让所有人都很感兴趣的软件。

00:21:21

为什么会有这些副本呢?这个软件还没有正式发布,那么它是如何在那个自制俱乐部聚会上出现的呢?原来,原始的纸带已经被偷了。这是那个时代最大的软件抢劫案。

00:21:44

好吧,让我们具体了解一下这一切是如何发生的。还记得前面提起过关于移动 MITS 到西部去展示 Altair 和 Altair BASIC 的事吗?

00:21:54 - John Markoff

1975 年 6 月 10 日,该公司在 Palo Alto 演示他们计算机和搭载的软件。

00:22:03 - Saron Yitbarek

这位是 John Markoff,纽约时报的记者。

00:22:06 - John Markoff

这家旅馆叫 Rickeys。请记住,在当时个人计算机行业实际上并不存在,对个人计算机感兴趣的大多数人也并不是真正的商人,因为那时并没有商业软件,所以他们向一个广泛的团体展示计算机。当时在新硅谷,有很多人是电气工程师,他们都是程序员。有各种各样的人对技术、对计算机感兴趣。

00:22:39 - Saron Yitbarek

在那次演示过程中,MITS 的工作人员在将软件加载到机器上时遇到了一些麻烦。在当时,软件是打孔在纸带上的,纸带必须通过一个机械阅读器才能安装程序。当那名员工因此而慌乱时,房间里所有的目光都盯在闪闪发亮的新 Altair 上,然而人群中的某个人发现了一些别的东西,在旁边的一个纸板箱,在那个箱子里是一卷卷 Altair 的纸带,这是一个千载难逢的机会。他把手伸进箱子里并用手指缠住了一卷长长的纸带。把它装进口袋带走了。没人看见这些。

00:23:36 - John Markoff

不知怎么回事,那卷纸带最终被一位半导体工程师得到了,他在一家名为 Signetics 的公司工作,他的名字叫 Dan Sokol,他的技术能力很强,也是参加过最初的自制计算机俱乐部聚会的人。所以 Dan 有机会接触到一台相对高速的纸带复印机,他用它做了一堆副本。直到今天 Dan 仍然坚称,他不是拿走原始纸带的人,他只是拿到了一份原纸带的副本,然后把它带到自制计算机俱乐部的下一次聚会上,并与那里的会员们分享。

00:24:17 - Dan Sokol

由于我不道德的行为,我被称为世界上第一位软件盗版者,这是有其道理的。我是那个复制了 MITS BASIC(即微软 BASIC)纸带的人。当时有人在自制计算机俱乐部里站出来说,“谁有能力复制纸带吗?”我说我可以,就这样,我最终得到了那盘纸带并复制了它。

00:24:45 - Saron Yitbarek

当 Dan 分发他的盗版副本时,Lee 也正在那个自制计算机俱乐部会议上。

00:24:51 - Lee Felsenstein

所以发生的事情就是 Dan Sokol 做了 10 份副本,在那次会议上,我们拿到了副本并对他说,“这是 Altair BASIC 的副本。现在带回来的拷贝会比你拿过来的多。”

00:25:02 - John Markoff

当时的约定是,如果你得到一个副本,你必须自己做一个副本,并与朋友分享。这是一个未知的领域。当时还没有个人计算机软件公司,所以这真的是一种狂野的西部,当时人们只是卖计算机,而共享软件。

00:25:19 - Saron Yitbarek

在 1975 年,软件只是你用来让计算机工作的东西。个人计算机是一个全新的概念。当时的黑客们并没有与这个词联系在一起的所有的想法。他们只是想分享他们的工作,通过思想和软件的自由交流来建立一个开放的社区。这次抢劫和赠品事件为一场至今仍能引起反响的争论创造了条件。软件应该自由共享还是应该被买卖?对此,比尔•盖茨一定有自己的看法,当他发现自己的软件发生了什么时,他非常愤怒。

00:26:03 - John Markoff

当他意识到他的 BASIC 编程语言正被业余爱好者们广泛分享时,他给他们写了一封愤怒的信,指责他们窃取了他的软件,削弱了他的谋生能力。

00:26:18 - Lee Felsenstein

我们收到了那封信。在聚会上阅读了这封信,里面有一句话:“我们花费了大量的金钱去开发它。我们用了近 4 万美元的计算机时间。”房间里的每个人都知道,那样的计算机美元是假的,这只是一个会计把戏。你没有为它们支付真正的钱,而我们也知道这一点,所以我们想,“继续抱怨吧。我们会继续做我们正在做的事情。”

00:26:45 - Dan Sokol

他叫我们海盗和小偷。我们试图理智和理性地向他解释,你不能以 400 美元的价格出售一台价格为 400 美元的电脑的软件。在今天这个时代,很难回过头并试图解释他们当时的心态,那就是小型计算机的思想,小型计算机被用于工业,而我们只是一群用套件来制造自己计算机的爱好者。唯一的功能性软件就是这个 BASIC 解释器,它几乎充当了一个操作系统。早在 1974 年,个人计算机里还没有操作系统,我们无法与他沟通,也无法向他解释,“把手册以 100 美元卖给我们,让我们随便用软件。”他没有听这些,多年来微软的软件价格过高,被盗版,而且盗版严重。

00:27:51 - Saron Yitbarek

俱乐部成员选择无视这封信。因为早在 1975 年,当时的版权法并没有涵盖软件。将软件从一个纸带复制到另一个纸带上不会有任何的惩罚。这种情况在 1977 年会发生变化,但在那几年里,这种做法并没有违反法律。

00:28:12 - John Markoff

具有讽刺意味的是,比尔•盖茨并没有创造 BASIC 语言。他只是简单地创建了它的副本,是从原始设计者 达特茅斯大学 Dartmouth University 的一位教授那得到的,他基本上是做了一个副本,然后把它卖掉,所以这一切的根源在于分享。

00:28:31 - Saron Yitbarek

抢劫、纸带、分享、愤怒的信件。所有这些都导致了新兴的软件业和那些被他们视为盗版者的人们之间长达数十年的战争,但在这场战争中,开源软件运动也随之兴起。它的核心价值观与那些点燃个人计算机革命的早期爱好者是一脉相承的,因为这些业余爱好者意识到,个人计算机未来的关键点在于释放软件的潜能。

00:29:07 - Lee Felsenstein

传递纸带、互相鼓励和互相借鉴彼此成果的过程确实是使个人计算机行业成功的原因。

00:29:17 - Saron Yitbarek

现在,我们再也没有说过最初的小偷是谁。谁偷了那条珍贵的纸带,至今仍是个谜。那些知道答案的人们也更愿意保留这个谜。

00:29:32 - Dan Sokol

至于它是如何被“解放”的,如果你想用这个词的话,我知道是谁干的,但是我不会说,因为那个人很久以前就要求保持匿名,因为这样更安全,我尊重这种选择,并且我也会继续尊重下去。所以,我当时不在 Rickey 旅馆,但纸带却找到了传递给我的方法。

00:30:01 - Saron Yitbarek

随着时间的推移,个人计算机革命让位于硅谷和众多风投支持的科技创业公司,但那些修理工、那些电子爱好者和业余爱好者们却从未消失。事实上,他们比以往任何时候都更强大。

00:30:20 - Limor Fried

嗨,我叫 Limor Fried,是 Adafruit 工业公司的首席工程师兼创始人。

00:30:26 - Saron Yitbarek

Adafruit 是一家开源硬件公司,是过去几年开始的那场新革命的一部分,即 开源硬件运动 open source hardware movement ,这场运动与那些早期的爱好者有着同样的价值观。但它变的更好一些。

00:30:43 - Limor Fried

自制计算机俱乐部,我认为,人们带着他们的计算机加入进来是有这样一种信念的,这就像,“来看看我做的这个很酷的 魔改 hack 吧”,然后每个人都会说,“天哪,这太酷了。好吧,下个月我会带来一个更棒的。”这是一个积极的反馈循环,带来了真正好的技术创新。我认为黑客哲学仍然存在,人们只是有了更多的背景知识,所以他们认为作为一个很酷的黑客,我想说的确有所进步,但它实际上已经泛化了,我认为这很好。我认为分享的价值仍然存在,相互帮助,共同努力工作与合作。这个理念贯穿始终。它存在于整个开源社区。

00:31:32 - Saron Yitbarek

我们将用一整集来讲述开源硬件运动的兴起,这样就可以看到我们是如何进步的,并为 Limor Fried 这样的现代制造商创造空间。请继续关注几周后的第六集。下一集,是改变了世界的磁碟 —— 软盘。

00:31:56 - Saron Yitbarek

代码英雄是红帽的原创播客。请到 redhat.com/commandlineheroes 了解一些关于个人计算机革命的伟大研究。这里有一个美丽的轶事,你可以读到关于比尔•盖茨在 Ed Roberts 临终前拜访他的故事,如果你想知道在那次 PC 革命期间发生了什么,请查看我们最初的几期命令行英雄节目,操作系统战争。我是 Saron Yitbarek,下期之前,编码不止。

附加剧集

Forrest Mims 对 Ed Roberts 有很多话要说。听听有关 Ed 与保罗•艾伦和比尔•盖茨会面,以及他们开始合作的故事。

音频

什么是 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/personal-computers

作者:Red Hat 选题:bestony 译者:linitok 校对:Northurland, wxy

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(2):大型机: GE-225 和 BASIC 的诞生音频脚本。

导语:二战后,计算机行业开始蓬勃发展。 通用电气 General Electric (GE)的 CEO 拒绝进入这个市场。但一小队反叛的员工不顾规则,秘密进取。他们创造了 GE 225。这是工程上的一次巨大飞跃,它将计算从一个小众市场推向了主流,为今天的科技行业播下了种子。

在创建通用的 大型机 mainframe 之前,计算机通常是为了执行单一功能而制造的。William Ocasio 回忆了 GE 的第一台专用计算机 ERMA 是如何帮助银行每天处理成千上万的交易的。John Joseph 讲述了 GE 的几名关键员工是如何蒙骗他们的 CEO 建立一个计算机部门的。Tomas Kellner 解释了他们的工作如何产生了一台革命性的机器:GE 225。而 Joy Lisi Rankin 则介绍了 达特茅斯学院 Dartmouth College 的工程师们如何对 GE 225 用于 分时 time-sharing 计算,并利用它创建了 BASIC —— 使计算变得更加方便的重要里程碑。

00:00:05 - Saron Yitbarek

让我们回到几十年前,回到 40 年代末、50 年代初,当时计算机行业有“白雪公主和七个小矮人”的说法。众所周知,“白雪公主”指的是 IBM,而 通用电气公司 General Electric 便是“七个小矮人”之一。这是一家偶尔生产定制机器,但从没在公开市场售卖计算机的公司。

00:00:32

通用计算机是 IBM 的地盘,而 IBM 是 GE 的第二大客户(第一是美国政府)。IBM 经常采购 GE 生产的真空管、电机、变压器和开关等设备,GE 时任总裁 Ralph Cordiner 对此非常满意。所以,每当 GE 的部门主管将转向计算机业务的计划书提交到总裁办公室时,收到的答复都是封面上大写的橙色字母:RJC,Ralph Cordiner 一次又一次地拒绝他们。

00:01:19

事实上,在 Cordiner 担任 GE 总裁兼首席执行官的 13 年时间里,GE 的态度从未改变。即使研究指出计算机是电子工业中增长最快的领域,但 Cordiner 总是用愤怒回应挑战他底线的员工们。然而,一小群叛逆的员工看到了制造大型机的机会,他们不想错失良机。然而他们不知道的是,这台大型机将拯救银行业,打开分时系统的大门,并孕育出新的编程语言。在上一季,我们听了 John Kemeny 和 Thomas Kurtz 在 达特茅斯学院 Dartmouth College 创造 BASIC 的故事,了解到因为 BASIC 是解释型语言,早期的计算机没有足够的资源运行它。像 BASIC 这么好的点子,正等待着像 GE-225 这样合适的设备出现,让它大放异彩。这一章,让我们一起揭开那台差点被扼杀在摇篮中的大型机,那鲜为人知的故事。这台房间大小的机器打开了新世界的大门,它鼓舞了像 史蒂夫•沃兹尼亚克 Steve Wozniak 比尔•盖茨 Bill Gates 这样有远见的代码英雄,鼓舞他们推动个人电脑革命,它的创造在今天仍然意义非凡。我是 Saron Yitbarek,欢迎收听 代码英雄 Command Line Heros ,Red Hat 的原创播客第四季:硬件设备。

00:03:05 - 话音 1

Adams 先生觉得他的新支票账户很好用。与其他公司直接从 埃姆维尔国家银行 Elmvale National Bank 兑现不同,用这个账号可以从自家银行兑现。与其他银行一样,自家银行把支票送到 联邦储备银行 Federal Reserve Bank 去执行兑现。联邦储备银行正是为处理每天来自数百家银行的数千张支票而设立的。

00:03:29 - Saron Yitbarek

1947 年,支票开始流行,银行工作人员的时间耗费在无穷无尽的支票当中。战后经济的蓬勃发展,更是让银行被铺天盖地的支票所淹没。为了腾出时间手工填写账簿,他们被迫下午 2 点就早早关门,但即使这样,他们仍然赶不上进度。他们迫切的希望,能有一台快速、强大的机器,让银行跟上商业发展的步伐。当时 美国银行 Bank of America 每天要处理数百万张支票。下面有请 西北大学凯洛格管理学院 Kellogg School of Management at Northwestern University 的教授 William Ocasio。

00:04:12 - Will Ocasio

难以想象,银行如果没有电脑可用会是什么样子。银行本身就是繁重、文书密集型的行业,美国银行分支机构又那么多。有这么多的信息,他们想要能够快速的传递和处理这些信息。这对于这样一个大公司来说真的很重要。他们知道计算机才是未来的方向。

00:04:39 - Saron Yitbarek

所以,1950 美国银行与 斯坦福研究院 Stanford Research Institute (SRI)签约,希望找到自动处理这些支票的方法。SRI 花了五年时间制造了一台原型机,并将其命名为 电子记录会计机 electronic recording machine accounting 简称 ERMA。ERMA 有超过 100 万英尺的电线,8000 个真空管,重约 25 吨,每天可以处理 5 万笔交易。

00:05:11

美国银行希望 ERMA 马上投入生产。于是向电子制造商们发出 招标请求 request for proposal (RFP),让它们竞标。当然,所有人都认为赢家将是行业巨头,被称作“白雪公主”的 IBM。Baker 博士是通用电气电子部门的副总裁,他知道他的老板 Cordiner 不想涉足 IBM 的领域,也知道计算机是公司的禁区,但当听到美国银行 RFP 的风声时,Baker 看到了其中的机会。他找到了 GE 位于 帕洛阿尔托 Palo Alto 的微波实验室的经理 Barney Oldfield。在这个离 SRI 最近的地方向 Oldfield 提出了一个建议。下面有请 加州大学欧文分校 University of California, Irvine 的战略副教授 John Joseph。

00:06:09 - John Joseph

我认为他是一位成功、进取的企业家,也是精明的经理和商人,他认为这是部门发展的巨大机会。

00:06:27 - Saron Yitbarek

Baker 和 Oldfield 成功说服了他们的老板 Cordiner,这是一台定制的生产控制系统,不是通用计算机,生产它不会让 IBM 不快。并且向他保证,GE 不会涉足计算机行业。

00:06:45 - John Joseph

我觉得 Cordiner 最终屈服的原因是,他给他们提出了一个附加条件:仅此一份合同,不要继续深入商用机市场,只能参与这一次竞标。如果能做到,那你们去竞标吧。

00:07:08 - Saron Yitbarek

尽管 Cordiner 不对竞标抱有任何希望,但还是让他们着手进行 RFP。就让他们发泄一下自己的创造力吧。随后 Oldfield 把他们的提案送到旧金山的银行办公室,等待着他们的答复。

00:07:26

出人意料的事情发生了,IBM 忽然放弃竞标,更出乎意料的是,GE 的提案从所有制造商中脱颖而出。这个不被看好的提案赢得了百万美元的合同。美国银行董事会在 1956 年 4 月 9 日正式接受了这个方案。Baker 在没有经过他的老板 Cordiner 审核的情况下签下了这份价值 3100 万美元的合同,把不可能变成了可能。Oldfield 可以找个地方生产 ERMA 了,当然,他得先成立一个实际的计算机部门。

00:08:19 - John Joseph

接下来轮到他们大显身手了。首先,他们确实成立了计算机部门,虽然听上去只是发一份声明就能搞定的事情。但是在这么大的公司内,把公司的资源和人力调动起来成立一个新部门,真的是一件很了不起的事情。

00:08:46 - Saron Yitbarek

Barney Oldfield 成为计算机部门的主管。这个新部门很像 GE 的另一个制造定制机器的部门: 军事系统部 Military Systems Division 。挑战 IBM 之前,两个部门要先分出胜负。

00:09:06 - Saron Yitbarek

新成立的部门想要低调行事,而 GE 的分权管理方式,刚好适合这样偷偷摸摸的搞事情。只要部门是盈利的,就不会有太多的监管。没人知道他们在做什么。

00:09:26 - John Joseph

当时的情况是,想要在 GE 发展你的小领地,就必须走出去寻找发展的机会。公司没有任何这方面的计划,他是个有冲劲的人,看到了这个机会。他干劲十足,想引领公司走出这重要的一步。

00:09:59 - Saron Yitbarek

更大的挑战还在后头,在哪建立工厂好呢?Palo Alto 的团队想要搬到 Stanford 的工业园区,无奈加州劳动法太严和税收太高,所以这不是个好点子。最终他们选择了 Phoenix。虽然 Phoenix 不是吸引资深工程师的最佳地点,但自有它的优势。

00:10:26 - John Joseph

GE 的总部远在纽约,选择 Phoenix 能让他们远离 GE。在这里,他们可以避开高层的监督,野蛮生长。事关大把钞票,远离 Cordiner 才能获得更大的自主权。

00:10:55 - Saron Yitbarek

Oldfield 在 Phoenix 组建了一支可靠的工程师团队。团队成员有:Bob Johnson、George Snively、Gene Evans 还有 George Jacobi 等人。还有 John Pivoden 负责硬件、Henry Harold 是逻辑设计师、Jay Levinthal 是系统架构师。在这个与世隔绝的桃园胜地,团队氛围非常融洽。他们不仅能担起秘密制造 ERMA 的大任,还能幽默的看待自己的工作。我们找到了他们表演过的一个小短剧,他们称之为“进步的前沿”,这个小短剧某种程度上展示了项目的进展。下面大家一起欣赏一段摘录:

00:11:39 - 话音 2

好了,我们到凤凰城了。

00:11:41 - 话音 3

你终于来了。欢迎来到计算机部门。

00:11:45 - 合音

啥部门?

00:11:46 - 话音 3

计算机部门。

00:11:47 - 话音 4:

计算机是啥?

00:11:49 - 话音 3

哦,有点像是带有圣诞树灯的涡轮机,可以播放音乐。

00:11:53 - 话音 5

是一种快速执行运算的机器。

00:11:56 - 话音 2

我们没必要用它记账,对吧?

00:11:58 - 话音 3

不,但我们得给 Van 一台让他玩,假装我们在用。

00:12:01 - 话音 4:

噢,计算机是啥?

00:12:08 - Saron Yitbarek

对美国银行而言,计算机是可以一天处理 55000 笔交易的机器,这台机器需要对各种大小和状况的支票进行分拣和分发,需要更新客户帐户和余额,需要能识别支票。他们要的不是 1 台,而是 36 台计算机。

00:12:34

项目初期,团队就决定 GE 版本的 ERMA 将使用晶体管来实现。在 50 年代,虽然晶体管比真空管更昂贵,但体积小,与逻辑板的连接器也更简单。原型机的每个真空管和触发器被两个晶体管所取代,使用额外的电阻和电容将它们连接在一起。将 ERMA 设计成软件编程设备,而不是硬件编程设备,是对原型机的另一个重大改变。这样可以简化机器设计,方便以后轻松修改。鉴于大多数 GE 的开发人员都从事硬件工作,他们得再聘请一名程序员。他们选择了一位几年前从纳粹德国逃出,以难民身份来到美国的男子。这名男子名叫 Joseph Weizenbaum。

00:13:34

Weizenbaum 曾在一家名为 Bendix 的公司为 G-15 电脑编程。他甚至为它开发了一种名为 Intercom 100 的伪机器编程语言。尽管除了兑现支票之外,Weizenbaum 没有任何银行相关经验,但他还是领导小小的编程团队,开始编写支持晶体管硬件的软件。该团队还为所有的外围设备编程,包括支票排序器,还有被他们称做 MICR 阅读器的东西。MICR 的意思是“ 磁性墨水字符识别 magnetic ink character recognition ”。你知道支票底部的那行数字吗?那就是 MICR。这行数字由三部分组成,分别表示银行账户、路由号码和支票号码。直到今天,支票上仍有 Weizenbaum 和他的团队在凤凰城的杰作。

00:14:28

值得一提的是。Weizenbaum 后来被认为是 AI(人工智能)的奠基人之一。1958 年 12 月 28 日,在 GE 赢得合同近三年后, 美国银行圣何塞分行 San Jose Branch of Bank of America 实装了第一台 ERMA 机器。虽然这台机器每天只能处理 100 笔交易,但这是朝着正确方向迈出的一步。接下来,他们要兑现每天处理 55000 笔交易的承诺。

00:15:04

到了次年 3 月,该团队不仅兑现了 5.5 万交易的的承诺,还增加了分拣机和打印机,使整个系统每天可以处理 200 万笔交易。美国银行兴奋不已。位于 Phoenix 的电脑部门交付了 32 台命名为 GE-100 的机器,还有更多的订单正在准备中,是时候庆祝了。

00:15:32 - Will Ocasio

美国银行邀请 Cordiner 参加计算机的揭幕仪式。他们甚至邀请了曾在通用电气工作过的 罗纳德•里根 Ronald Reagan 作为他们的电视发言人,这太了不起了。然而,Cordiner 来到揭幕式后,忽然想到:“等一下,这跟之前说的不一样”,然后他生气的开除了 Barney Oldfield。

00:16:00 - Saron Yitbarek

额,Oldfield 就这么被开除了?Phoenix 的团队的明明超额完成了任务,完成了不可思议的壮举,他们的领袖得到的奖励却是被开除?更可气的是,Cordiner 重新任命了部门的负责人,Baker 博士的继任者 Harold Strickland 对电脑并不感兴趣。因为担心会惹 IBM 生气,Cordiner 给 Strickland 下了明确的指示,要他务必管好计算机团队。一个叫 Claire Lasher 的公司职员接替了 Oldfield 的工作。可 Cordiner 不知道的是,Lasher 骨子里也是个反叛者。

00:16:47

通用电气总裁 Cordiner 想要远离商用计算机行业,他从一开始就不想进入这个行业。他想让通用电气尽快回到老样子。他允许生产已有的订单,但用他的话来说:“下不为例!”。后来,当 Cordiner 听到自己银行界的朋友向他称赞 GE-100 的创新时,他的态度发生了转变。所以好吧,他们可以继续在自己创造的沙盒中自由发挥,唯一的限制就是:“不要和 IBM 正面交锋”。

00:17:24

Claire Lasher 的专长是市场营销。他看到了通用计算机市场的蓝海,借鉴了 Oldfield 的经验,制定了自己的计划。那就是两用计算机 200 系列。这个系列既是定制机器,又是通用机器。Claire 将他的商业计划命名为 大观 The Big Look ,他为 Phoenix 团队招募了更多的工程师,其中包括一位曾在纽约从事 GE-312 和 412 过程控制计算机的人,他的名字叫 Arnold Spielberg,是新团队的领导。

00:18:05

看完技术规格后,Arnold 说:“嘿,如果我们调整一下硬件设计方案,我们就能造出通用机器界的大杀器“。于是,Arnold 增加了读卡器、打印机和磁带处理程序等外围设备。仅用 5 个月就完成了原型机,这款新机器被称为 GE-225。有趣的是,Arnold Spielberg 是 史蒂文•斯皮尔伯格 Steven Spielberg 的父亲。为了了解更多关于 Spielberg,以及他在创造 GE-225 这台高层从来不想要的机器中所扮演的角色,我采访了通用电气的 首席故事官 chief storyteller Tomas Kellner。

00:18:51 - Tomas Kelner

Arnold 和他的同事 Chuck Prosper 是这台电脑的设计者,他们一起制造了它。有趣的是,和 GE 以前的计算机不同,GE-225 是商用计算机,它实际上有一个存储系统,并且能够处理数据的输入和输出。

00:19:15 - Saron Yitbarek

GE-225 的哪些技术进步可以归功于 Arnold 呢?

00:19:21 - Tomas Kelner

最有趣的是,这台电脑有自己的内存,能够记录和输出信息。这种存储器可以存储 8000 到 16000 个 20 位字 20-bit word 。它还有一个辅助存储器,大约可以存储 32000 个 20 位字。他之前也用过一些 硬件编程 wire software 设备,它们真的很难使用。这些设备只能编程一次,然后就不能再修改了。GE-225 的进步之处在于,有了数据存储的能力。

00:19:58 - Saron Yitbarek

GE-225 长什么样子?

00:20:02 - Tomas Kelner

说实话,GE-225 看起来不怎么好看,它像一堆盒子。它有存储信息的磁带,有输入终端和输出终端。尽管它被称为小型计算机,但它能占满整个地下室。

00:20:26 - Saron Yitbarek

它能完成哪些其他计算机无法完成的任务呢?

00:20:30 - Tomas Kelner

GE-225 计算机的新特性是支持分时操作。支持多个远程终端访问计算机,多个用户能够同时在上边工作、写代码。据我所知,当时其他的计算机没这种能力。

00:20:58 - Saron Yitbarek

那么谁买了 GE-225?GE-225 的目标客户是哪些人呢?

00:21:02 - Tomas Kelner

通用电气公司内部肯定使用了这些计算机,但全国各地的一些银行也使用了它们,还有 克利夫兰布朗队 Cleveland Browns 也用它们来管理季票销售。有人甚至用其中一台电脑预测了一场全州范围的选举,当然,预测的很准。人们似乎对这台机器非常着迷。Cordiner 让团队在 18 个月内退出计算机行业,但是因为这台计算机的成功,他们搁置了这个计划。

00:21:43 - Saron Yitbarek

重点是,GE-225 不仅是一个银行解决方案。还记得 BASIC 的创始人 John Kemeny 和 Thomas Kurtz 吗?BASIC 就是他们在 GE-225 上创造的。还有另一位代码英雄,他发现了 GE-225 上的编程漏洞。

00:22:03

尽管那时他还在上高中。接下来让 Tomas 告诉你,GE-225 在 BASIC 的开发中起到了什么作用?

00:22:14 - Tomas Kelner

GE-225 上开发了很多有趣的项目,达特茅斯学院的科学家们开发的 BASIC 语言便是其中之一。当时,他们想发明一种使程序员在不同的终端上同时工作的工具。这个工具,就是后来的 BASIC。关于 BASIC 另一件趣事是,通用电气以最快的速度从达特茅斯学院获得了 BASIC 的授权,并开始在内部使用它和预装在 GE-225 上。 史蒂夫•沃兹尼亚克 Steve Wozniak 就是通过 GE-225 接触到 BASIC。当他接触到了一个连接到 GE-225 计算机上运行 BASIC 的终端时,他瞬间就爱上了这个工具,实际上他的处女作就是在上面完成的。

00:23:13 - Saron Yitbarek

那么当你和 Arnold 交谈时,他意识到他对计算机世界的影响了吗?

00:23:18 - Tomas Kelner

对 Arnold Spielberg 的采访真是令人难以置信。那时,他已经 99 岁了。

00:23:23 - Saron Yitbarek

哇哦。

00:23:24 - John Joseph

他记得所有的事情,我们谈到了互联网,我清楚的记得,他说,在 1960 年代,畅想过计算机的未来,但是他从没想到,有一天人们可以通过家用电脑和智能手机,连接到互联网这个庞大的网络中。没想到人们可以随时随地获取信息,航空公司通过计算机控制飞机,控制机器工作。一方面,他对该领域的发展非常感兴趣。另一方面,他也非常谦虚地承认,该领域的发展超过了他在 20 世纪 60 年代的想像。

00:24:12 - Saron Yitbarek

你认为这一切对 史蒂芬•斯皮尔伯格 Steven Spielberg 和他的事业有什么影响?

00:24:18 - Tomas Kelner

史蒂芬还记得曾拜访过 GE 在他们的家乡亚利桑那州 Phoenix 建的工厂,他的父亲带他来工作的地方参观。他当时一头雾水,他爸试图向他解释电脑是什么,能做什么。他的原话是:“这一切对我来说都像是希腊语。”可见他当时是真的听不懂。我问 Arnold 对自己儿子的印象。他说:“我想让他学习工程学,培养他的技术热情,但他却只对电影感兴趣”。

00:25:00 - 话音 6

随后银行业进入电子时代。今天,这种磁性油墨计算机系统让银行能够提供世界上最快、最有效的服务。保险公司、百货公司和公用事业公司也陆续开始使用类似的系统。事实上,所有文书工作都开始使用计算机。但谁知道呢,也许将来,会有更好的解决方案。

00:25:34 - Saron Yitbarek

到 1962 年,GE-225 全面投产,并在推出一年后,迅速成为公司的重磅产品。它不仅为公司盈利,还在商界赢得了很高的声誉。在之后的几个月里,Cordiner 收到了来自全国各地的祝贺信息,他最终改变了他的想法,打算投身计算机行业。他终于正式认可了通用电气计算机部门。

00:26:13

让我们回到与 Tomas 对话中提到的一些事情,我们在上一季的《C 语言之巨变》那一期中也有提到。当达特茅斯学院使用 GE-225 开发一个工具,让程序员可以在不同的终端上同时工作 —— 换句话说,分时系统 —— GE 并没意识到分时的潜力。

00:26:38 - Joy Lisi Rankin

达特茅斯学院使用 GE-225 和 GE DATANET 30 实现了分时系统,此前通用电气从未考虑使用这两种设备来实现这一功能。

00:26:53 - Saron Yitbarek

Joy Lisi Rankin 是一名技术历史学家。

00:26:57 - Joy Lisi Rankin

分时系统的关键在于电脑需要某种方式来停止自己的时钟。分时不是指人们在计算机上共享时间,而是指计算机共享自己的时间来处理多个计算请求。达特茅斯学院的师生们决定,使用 DATANET 30(这是一台 GE 的通信计算机)和 GE-225 共同开发分时系统。

00:27:32 - Saron Yitbarek

因为大型机在 60 年代非常昂贵,批量运行是使用大型机最高效的方法。当时的人编写程序,然后做成打孔卡片以运行程序,他们将卡片交给操作员,然后他们就得等着它和其他程序一起被分批运行。有时要等几个小时,甚至几天。

00:27:58 - Joy Lisi Rankin

在社交电脑和社交网络出现之前,在 Facebook 出现之前,分时系统、BASIC 还有达特茅斯学院和 GE,对开启个人电脑时代发挥了重要作用。通用电气从达特茅斯学院建立的分时系统中吸取经验,将其应用到自己的业务中,迅速建立起了全球分时服务行业。1970 年的某个时候,仅欧洲就有 10 万分时用户。在 20 世纪 70 年代到 80 年代,分时是他们的重要业务。

00:28:44 - Saron Yitbarek

尽管 GE-225 和随后的 200 系列计算机取得了成功,通用电气公司还是在 1970 年将其大型机部门卖给了 Honeywell。但他们仍然决定保持分时共享业务,并在未来几年保持盈利。

00:29:08

Ralph Cordiner 的故事讲完了,就像我们在上一期,数据通用公司发明小型机的故事中看到的,下一代伟大机器,它往往需要一个由顽固的、有远见的叛逆者和一些前瞻的执行官组成的团队来建造。人算不如天算,集思广益往往会有意想不到的收获。

00:29:41 - Saron Yitbarek

下一期,我们将从 GE-225 结束的地方开始,来谈谈大型机如何启发新一代程序员展开个人计算机革命,谈一谈他们对我们的启发。《代码英雄》是红帽的原创播客。访问我们的网站 redhat.com/commandlineheroes 了解更多有关 GE-225 的资料。我是 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/mainframes

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(1):小型机 —— 旧机器的灵魂音频脚本。

导语:它们不适合放在你的口袋里。但在当时, 小型机 minicomputer 比之前的房间大小的 大型机 mainframe 的尺寸小了一个数量级。它们为可以装进包里的 个人电脑 Personal Computer (PC),以及最终你口袋里的手机铺平了道路。

16 位小型机改变了 20 世纪 70 年代的 IT 世界。他们让公司的每个工程师都有机会拥有自己的计算机。但这还不够,直到 32 位版本的到来。

Carl Alsing 和 Jim Guyer 讲述了他们在 数据通用 Data General 公司创造革命性的新 32 位计算机的工作。但他们如今被视作传奇的工作是在秘密中完成的。他们的机器代号为 “Eagle”,其设计目的是为了与自己公司的另一个团队正在制造的机器竞争。这些工程师们回忆了为使项目继续进行而做的公司政治和阴谋,以及他们如何将限制转化为优势。Neal Firth 则讨论了如何在一个令人兴奋但要求很高的项目中的生活。在这个项目中,代码英雄们一起工作,只是因为他们想这样做,而不是期望获奖或成名。这三个人都讨论了这个故事如何在 Tracy Kidder 的非虚构工程经典《 新机器的灵魂 The Soul of a New Machine 》中所成就的不朽。

00:00:03 - Saron Yitbarek

那是 1978 年,小型机业界激战正酣。就在一年前, 数字设备公司 Digital Equipment Corporation (DEC)发布了其 32 位的 VAX 11 780 计算机。它比市面上的 16 位机器要强大得多。 VAX 的销售迅速地超越了那些步履缓慢的竞争对手。其主要竞争对手 数据通用 Data General 公司迫切需要一台新机器来和 VAX 竞争。他们需要一台属于自己的 32 位计算机,而且要够快才行,但数据通用公司和 DEC 之间的竞争并不是唯一的战斗。数据通用公司内部还正酝酿一场地盘争夺战,而这两场战斗的战利品都是在令人难以置信的环境下创造令人难以置信的机器。一台 13 英寸的笔记本电脑大概有 3 磅重。如今,我们认为计算机的便携性及方便的尺寸是理所应当的,但是在 20 世纪 70 年代,大多数计算机仍然有着整个机房大小的大型机、重达数吨,而且价值数百万美金。而当硬件成本急剧下降后,开发更小、更快、更便宜的机器的竞争就开始了。小型机为工程师和科学家打开了拥有自己的终端机的大门。正是小型机引领我们到了今天的样子。

00:01:37

在上一季的《代码英雄》中,我们深入探究了对软件开发至关重要的领域 —— 编程语言的世界。诸如 JavaScript、Python 和 C、Perl、COBOL 以及 Go 之类的语言,我们审视了它们的历史、它们所解决的问题,以及它们是怎样随着时间推移而演变的。在这一季中,也就是第四季,我们将再一次深入探索,这一次是我们软件运行于其上的硬件。我们将为大家讲述七个特别的故事,讲述那些敢于改变硬件规则的人和团队。你桌上的笔记本电脑、口袋里的手机,如今你所拥有的每一件硬件设备,以及它们的前代产品,都是代码英雄们全身心投入的结果。他们的激情打造、他们的大胆举动,让我们的硬件成为现实,彻底改变了我们现如今的编程方式。

00:02:36

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

00:02:45

在我们本季的首播中,将讲述一个工程团队竞相设计、调试和交付下一代计算机的故事。他们工作的故事变成了 1981 年 Tracy Kidder 获得了普利策奖的畅销书《 新机器的灵魂 The Soul of a New Machine 》的主题。在这本书中讲述了这一集中你将听到的众多嘉宾的故事。

00:03:07

让我们说回到数据通用公司。该公司主席 Ed de Castro 制定了与 DEC 竞争的计划。他拆分了工程部门,将一支团队从其位于 马萨诸塞州 Massachusetts 韦斯特伯勒 Westborough 的总部迁移到了 北卡罗来那州 North Carolina 的新办公室。他们的任务是开发一款领先的 32 位的机器设计,以粉碎 VAX。他们将项目命名为 “Fountainhead”。Ed de Castro 为这支团队提供了几乎无限的支持和资源,他将 Fountainhead 视为他公司的救星。而剩下的几名工程师被留在了马萨诸塞州,他们觉得自己被严重轻视了。他们认为自己能够开发一个干掉 VAX 的杀手,可能会比 Fountainhead 项目所能开发的更好,但是 Ed de Castro 不会给他们机会。因此,这个小组的负责人 Tom West 决定自己动手。Tom West 是一名自学成才的计算机工程师,他负责数据通用公司的 Eclipse 部门。 Eclipse 是数据通用公司最成功的 16 位小型机产品线。Tom 能造机器,也能卖货,而且他知道市场需求是什么。Fountainhead 项目成立以后,Ed de Castro 让剩下的工程师们继续致力于优化去年的产品线。 而 Tom 和其他人都对此不以为然。

00:04:31 - Carl Alsing

我们对此一点都不满意。我们中有些人离开去做其他工作,而另一些人则感到十分沮丧,担心自己的事业,而且感觉没意思。而且我们觉得另一组人肯定会失败。

00:04:46 - Saron Yitbarek

Carl Alsing 是数据通用公司微编程小组的经理。他是 Tom 的副手。他们决定提出自己的项目计划。

00:04:56 - Carl Alsing

这将是使用最新技术进行的全新设计,构建一个能够击败 DEC 的 VAX 的 32 位计算机。所以我们为此提出了一项建议,并去找了主席 Ed de Castro,他说:“不,没门儿。北卡罗来那州的小组在负责这项工作。你们不必操心。”因此,我们感到十分灰心,回去提出了另一个名为 Victor 的计划。我们研究了如何使去年的老产品更好的方法。我们在里面设置了一个小开关,即系统里的一个模式位,当你打开它时,它将使得计算机能够像现代 32 位小型机一样运行,尽管比较慢。然后我们向 Ed de Castro 提出了这个功能。最后他说:“你们在这里有个模式位。我不想再看到其他任何带有模式位的设计。北卡罗来那州那边正在负责新设计。”于是乎又一次,我们深感沮丧,我想就是在那会儿 Tom West 决定要做一些秘密的事情。

00:06:06 - Saron Yitbarek

Tom 想出了两个故事。一个是讲给 Ed de Castro 的:他们将会对旧的 Eclipse 产品线进行加强,使它运行得更快一点,增加几个新按钮,并且换个新颜色。Tom 把它说成保险措施,以防万一北卡罗来那州那边出了什么问题。Ed de Castro 同意了。然后 Tom 给他的团队讲了另一个更棒的故事。

00:06:32 - Carl Alsing

Tom West 向我们团队中的一些人提议,我们要开发一款真正优秀的现代机器,它对以前的机器完全兼容,并且采用我们所需的所有最新高科技的东西,有虚拟内存、32 位和纠错代码,以及所有这类东西:多任务、多处理、大量内存。“伙计们,我们将打造出最新的、能在市场上大杀四方的新机器。”

00:07:04 - Saron Yitbarek

这款极具市场杀伤力的新机器的代号是 “Eagle”。现如今,人们觉得我们的电脑中的内存是没有任何限制的,但是在那时候,当从 16 位转换到 32 位时,发生了重大的突破。突然之间,你的地址空间就从能够存储 65000 字节的信息变成了 40 多亿字节。随着这一增长,软件也可以处理更加大量的数据。这给计算机公司带来了两个基本的挑战:从 16 位过渡到 32 位,这是肯定的,但是他们还得让使用旧软件的老客户感到满意。因此,他们必须得开发一款能够让旧软件继续运行的机器,即一款向后兼容的 32 位计算机。VAX 尽其所能也没有找到第二个问题的完美解决方案,但是 Tom 坚信他的 Eagle 可以做到。

00:08:14

Eagle 的总部位于韦斯特伯勒 14 号楼 AB 的地下室。Tom 指派 Carl 负责 微码 micro coding 。Carl 指派 Chuck Holland 来管理 编码员 coder ,他们被称为 微码小子 Micro Kids 。同时,Ed Rasala 将负责硬件。他委派了 Ken Holberger 负责管理团队,这个团队被恰当地称为 哈迪男孩 Hardy Boys 。(LCTT 译注:《哈迪男孩》是一部 1977 年的美国电视剧。) Tom 有一个盟友,就是工程副总裁 Carl Carman。 Carman 也对 Ed de Castro 有意见,因为 Ed de Castro 拒绝让他来负责北卡罗来那州的小组。

00:08:51 - Carl Alsing

Carl Carman 知道我们在干什么,却什么都没有对他的老板说。所以他给我们提供了资金,但我们需要保持较低的薪水,并且需要一些非常聪明的工程师。因此,我们决定去招收大学毕业生。这样做的好处之一是他们不知道什么是你做不到的。他们以为你无所不能。

00:09:15 - Saron Yitbarek

那时 Jim Guyer 刚从大学毕业两年,在数据通用公司工作时被分派到了哈迪男孩。

00:09:21 - Jim Guyer

北卡罗来那州那边正在开发的机器更多是高端计算,本质上几乎是大型机。而且,嗯,我的意思是,这在当时确实是投入到与 IBM 以及其他大型机公司的竞争中去的相当重要的一步。我们认为我们有优势,因为我们想做的事情并不那么雄心勃勃,而且我们真的、真的专注于一种简洁、干净、简单的实现方案,用最低的成本、最少的组件等等。

00:09:51 - Saron Yitbarek

成本低廉,设计简单。他们意识到他们需要使用 固件 firmware 来控制一切。与硬件相比,把越多的功能置于固件控制之下,所开发的机器就越便宜、越灵活。

00:10:03

而且它们能够根据需求进行修改。当然,现代计算机都是以这种方式构建而成的,但在 1978 年,这种方法是全新的。

00:10:15 - Carl Alsing

我们所做的设计非常简约。我们正在研究能够使事情简单明了的方法。因为我们知道,它不可能变成一个庞大而又昂贵的机器。它必须只是几块板子、几个电路,这是让使它快速发展的一个优势。设计一款安全的、无风险的产品,和设计一款用于制胜的产品是有区别的。而我们并不担心风险,我们在意的是取胜。我们希望它既快速又便宜,我们希望快速地开发它。因此,我们只用了三、四块板子,这是最低限度的硬件,我们通过固件来弥补这些。

00:11:06 - Saron Yitbarek

Eagle 团队面临着很多严苛的限制。 VAX 是这个星球上(当时)性能最高的 32 位计算机。 Eagle 必须与之匹敌。但最重要的是,它还必须兼容他们的 16 位架构。要用比其他团队更少的金钱和时间来做到所有这一切,这使得 Eagle 感觉像是在赌博。但 Tom West 的团队全力以赴投身于其中。

00:11:32 - Jim Guyer

有两套无时无刻都在运行着的系统,我们有两班工程师为之工作。我们所有人都必须全盘掌握。因此,我们不得不学会其他每一个人的岗位所要做的工作。这对我而言既具有挑战性又极其富有教育意义。但是我们大家都参与其中努力着,“要解决这个问题下一步该做什么?我们需要着眼于何处?”每个人都仔细钻研原理图和其他文档,试图找出办法,“看看这个信号,看看那台计算机的状态,看看微码正在执行的步骤顺序。它在正常运转吗?哦等等,它出错了。呃,为什么它会这样运行呢?”

00:12:13 - Carl Alsing

这是件严肃的事情,这就是工作态度。小组里的工作很紧张。有时候人们会对于采用何种方式去做某件事情而发生争论。可能有一种方法会花费稍微多一点的钱,而另一种方法则更便宜,但是可能速度稍慢或效率稍低。为了达成共识,可能会开展激烈的讨论或会议。但我们还是做出了这些选择,然后我们协作努力。

00:12:44

我们没日没夜地工作,在 原型 prototype 上付出了很多时间。我们只有两个原型,两个团队都能在这两个原型上工作着实很重要。因此,晚班和白班都有人在工作,人们都很疲惫,但这让人感到非常兴奋 —— 这是值得的。所以没有人过多地抱怨工作条件。

00:13:11 - Saron Yitbarek

工作条件 —— 据传当时 Tom West 为了让团队完成他所期望的东西,实行了一种被称为“ 蘑菇管理 mushroom management ”的方法。喂养它们然后看着它们成长。在狭窄而炎热的工作空间里,时间很漫长,日程安排也不切实际。Tom 本人被形容为神秘、冷酷、无情的人。有位工程师甚至称他为“ 黑暗王子 the Prince of Darkness ”。 Tom West 是否如此渴望取胜以至于剥削了他的团队吗?他是否为了得到完美的机器而牺牲了微码小子们和哈迪男孩们的福祉?

00:13:56 - Jim Guyer

Tom 是个有趣的家伙。他对你期望很高,但不会给你很多指导。他希望你可以自己弄清楚需要做什么,而如果你不能做到的话,你就会被踢出团队。

00:14:10 - Saron Yitbarek

指导来自于 Carl 或是 Ed, 他们是 Jim 和团队其他成员每天都与之工作的部门经理。但这些年轻的工程师也为了取胜而参与其中,他们喜欢自己所获得的机会,愿意自己去搞清楚。

00:14:26 - Jim Guyer

我个人获得了第一届微码小子通宵荣誉奖。我不知道是什么理由,也许我们都是能力超群、豪气冲天、无知无畏的年轻后浪。我们很自信,我们觉得自己相当聪明,可以解决问题,我们相互依靠,也许这就是自负。我乐在其中。我认为我们大部分人都乐在其中。

00:14:56 - Saron Yitbarek

Carl 不同意“蘑菇管理”这一说法。他说情况恰恰相反。他们都确切地知道正在发生什么,以及预期是什么。反而是高层管理人员不知道。同时,Tom West 正在承受着来自多条战线的巨大压力,而这种压力也传递给了他的团队。

00:15:18 - Carl Alsing

Tom 对这个项目的真实性质保持着低调。因此,他并没有对工程师们说很多,他保持着超然的态度,当然他也告诉他们,他们不能在团队之外或是家中讨论该项目。甚至不能使用 “Eagle” 一词。因此,我们还传达了这个项目非常紧急,我们必须在一年之内完成,竞争已在市场中展开,如果我们要通过这个东西来占据市场之巅,我们必须现在就把它完成。因此他们承受着很大的压力,并且团队期望他们在夜晚和周末也参加工作,没有时间留给他们去和家人野餐或是做其他任何与工作不相关的事情。

00:16:06 - Saron Yitbarek

我想知道在 14 号楼 AB 的战壕里奋战是怎样的感受。所以我邀请 Neal Firth 来到身边。他是微码小子中的一员,刚毕业就加入了团队。

00:16:20

和 Tom West 共事的感觉如何?你和他有过很多互动吗?

00:16:24 - Neal Firth

不一定。他是那种幽灵般的人物。我们能看到他在身边。他一般也不会不干预,以便我们能够领导自己、实现目标。我们正在做的事情是全新的,他不想把上一代处理器要做的工作强加给我们。

00:16:49 - Saron Yitbarek

这听起来像是一个工作十分紧张的地方,在这里你真切地想不断前进并完成工作。你是怎样应对没有太多时间这一事实的?

00:16:57 - Neal Firth

老实说,这并不是问题。想要时间充裕实际上并没有什么问题。我们可能会花费一些时间来实现结果。这需要家里人非常支持与理解,因为她们并不一定会立马同意。你可以将其等同于当时的一些硅谷人,或是像 乔布斯 Jobs 沃兹尼亚克 Wozniak 之类的人,我们投身其中并搞定它。我们确实不全是“ 住在同一间公寓 live-in-the-same-apartment ”或“ 在地板上写代码 code-on-the-floor ”那样的人,但具有其中的一些特征。

00:17:35 - Saron Yitbarek

在那段时间里,是什么让你坚持了下来?为什么你这么有动力?

00:17:39 - Neal Firth

坦率地说,就是在解决问题。我一直是一个喜欢思考并善于解决问题的人。事实上,团队里的大部分人都是这样的。我们所有人都有着类似的背景,并且我们都很享受解决问题这件事。就是,解决那些难题,找到一种前所未有的方式去做事。

00:18:01 - Saron Yitbarek

那么在这个项目中,你最难忘的时刻是什么?

00:18:05 - Neal Firth

当时,项目已经进行了相当长的时间,我们正在运行微码模拟器,它实际上是被提议当作生产模拟器来运行的,已经运行了 10 到 12 个小时了。突然,字母 E 出现在了控制台上,然后我们等了一会儿,又是一个字母,接着又是一个字母,然后我们突然意识到我们运行的是测试代码,是正在设计运行的诊断程序。因此,微码模拟器正在模拟运行这份微码的硬件,并且它开始打印字母,就好像它真的在运行一样。所以当它真正问世并运行时,可能比实际上要慢了十万倍,但这仍是我最难忘的时刻之一。

00:19:02 - Saron Yitbarek

现在回过头想想,你觉得自己当时有被剥削吗?

00:19:07 - Neal Firth

没有。我可以意识到正在发生着什么。我知道正在发生什么。所以,没有,我没觉得被剥削。实际上,这是我大学毕业时候的期望,否则我永远都不可能参与这么重大的项目,或是有机会在这样的一个项目中扮演那么重要的角色。

00:19:31 - Saron Yitbarek

我想知道你如何看待发明的牺牲,因为如果你要考虑所有我们所创造的伟大事物,通常来说我们不得不放弃一些东西,是这样吗?必须舍弃一些东西来做出真正惊人的东西。这样的情况你遇到过吗?如果有的话,你不得不放弃的东西是什么呢?

00:19:48 - Neal Firth

我不会说我放弃某些东西是有一个思想驱动的过程,我认为更重要的是,我更能适应自己正在做的事情以及所做的事对周围人的影响。

00:20:03

但我从来没把它看作是一种牺牲,而与我亲近的人们,他们生活在就是这样的一个世界里。我听说过一些可怕的故事,如果你愿意的话,在今天,在这里都是,你醒来,插上你的咖啡机,拿一些披萨或点心,然后你开始写代码,最后你在你的键盘上睡着。然后你在下一个早晨醒来,重复这个过程。

00:20:35

我们当然远没有达到那种牺牲的程度,我仍然有妻子,我仍然有朋友,我们仍然在一起。这当然不是份 朝九晚五 nine-to-five 的工作,但是它给我带来了许多个人层面与技术层面的成就,我能把这些和我的妻子、姐妹、父亲、母亲以及岳父分享,这些人可以欣赏这些。

00:20:59 - Saron Yitbarek

是啊。那么,你认为使某件事情变得真正伟大的关键是什么呢?

00:21:06 - Neal Firth

使某件事情变得真正伟大的关键 —— 有趣的问题 —— 我认为这取决于参与其中的人员,因为他们想要这样做,而不是因为他们对成就、财富或是名望的渴望。因为那些东西都转瞬即逝,而且永远无法使人满足。但是如果你要努力地去实现一个目标,而且你和一群人共同努力并去实现它,那么当你最终实现目标的时候,这确确实实是能令人心满意足的。

00:21:42 - Saron Yitbarek

Neal Firth 是 Eagle 项目中微码小子中的一员。他目前是一家名为 VIZIM Worldwide 的软件公司的总裁。

00:21:57

正如 Tracy Kidder 书中所记载的那样, Tom West 的超然和距离感是刻意为之的。这是他试图在日常交谈中保持头脑清醒,从而能使 Eagle 的目标保持原样。不过更重要的是,他想保护团队,将他们与周遭发生的政治与企业边缘化相隔绝。他也保护了微码小子们和哈迪男孩们不受先入为主的观念影响。

00:22:28

1980 年, Eagle 完成了。比 Tom 所承诺的要晚了一年,但至少还是完成了,不像 Fountainhead。就像资深团队所预料的那样, Fountainhead 团队失败了,他们的项目遭到了搁置。这位是 Bill Foster,当时的软件开发总监,他谈到了 Fountainhead 的挣扎。

00:22:50 - Bill Foster

我认为所犯下的最大错误在于没有对其设置任何限制。或多或少地,就是让我们去开发世界上最好的计算机。嗯,它应该在什么时候被完成?哦,我们对此确实没有个明确的期限。它应该花费多少成本?好吧,我们也不确定。我不得不让 Ed 失望了。他没有在程序员和工程师之间设置足够的界限。

00:23:15

而且如果你让一群程序员和工程师放任自流,猜猜怎么着,他们将使事情变得复杂,设计出过分庞大的东西,以至于永远不能完成。

00:23:26 - Saron Yitbarek

让我们回忆一下。从 Tom 和他的团队决定秘密开发 Eagle 开始,这已经进行了两年了。整个过程中,公司总裁并不知道正在发生了什么。当现在已经正式命名为 Eclipse MV/8000 的这款机器准备交付时,市场营销负责人去找了 Ed de Castro,为营销活动放行。 Carl Alsing 将对此作出解释。

00:23:53 - Carl Alsing

市场营销负责人说道:“好吧,我们已经准备好为 Eagle 进行推广了,我们需要数千美元。我们将在全球六个不同的城市举行新闻发布会。我们将进行一个巡演,去到很多城市,我们将拍摄一部影片来展示它,这将轰动一时。”

00:24:14 - Carl Alsing

然后 Ed de Castro 说:“我不明白。你们为什么要那样做?”这只不过是在 Eclipse 那边的另一个包而已,表面工夫的工作而已。市场经理说:“不,这是一款全新的机器。这是一款 32 位的机器,有虚拟内存,具备兼容性。它将击败 VAX。所有你要的东西都在这里了。”

00:24:37 - Carl Alsing

Ed de Castro 着实有点儿困惑。他以为我们在北卡罗来那州遭遇了失败,将成为事情的终结,但我们拯救了他。因此,是的,他邀请了我们所有人,我们举行了一次小型的午餐会。午餐会上有三明治和苏打水,他说:“嗯,你们做得很好,我很吃惊。我此前并没有意识到你们在做这个,但是我们会推广它,我知道将会安排一部影片、一些巡游,而且你们将成为这其中的一部分,所以,感谢你们,请吃你们的三明治吧。”

00:25:19 - Saron Yitbarek

现如今被命名为 MV/8000 的 Eagle 出现在了《 计算机世界 Computer World 》杂志的封面上。推出期间,媒体的炒作使得这支原本秘密的、深居地下室的团队成员们变成了小名人。毕竟,他们拯救了数据通用公司。

00:25:38

但好景不长。 Tom West 再也无法让团队免受公司内部政治的影响。团队面对敌意毫无准备。公司里的其他人都嫉妒他们的成就,并对他们能在秘密项目中逃离如此之久感到震惊。

00:25:57

不久后,一个新的工程副总裁取代了他们的盟友 Carl Carman。这个新来的人在第一台 MV/8000 被售出之前就拆分了 Eagle 小组,并把 Tom 发配到了数据通用公司的日本办事处。

00:26:13 - Jim Guyer

我认为我们开发出了花钱所能够买到的最好的 32 位超级小型机,我认为这对数据通用公司来说是一件很棒的事情,我认为它将能把 DEC 稍微踢开一点,而不是我们把世界从他们身边夺走。那时候的竞争太艰难了,在高科技领域很难成为赢家,但我认为我们已经做了一些有价值的事情。

00:26:42 - Saron Yitbarek

当 Eagle 发行时,它确实拯救了数据通用公司,但在市场份额被 DEC 夺走三年后,该公司从未真正恢复过来,而行业却发展了。小型机不再是大势所趋。 微型计算机 microcomputer 的竞争已经开始了,这为 个人计算机 personal computer 革命铺平了道路。

00:27:04 - Carl Alsing

数据通用公司继续开发了其他的版本,并在其他的型号上进行了改进,这样进行了一段时间,取得了一些成功。但是世事无常。市场发生了变化,他们自己转型成了一家软件公司,然后最终被其他人收购了。如今,我认为他们在马萨诸塞州 霍普金顿 Hopkinton 某家公司的文件抽屉里。

00:27:36 - Saron Yitbarek

一年后, Eagle 团队中的许多人离开了数据通用公司。有人感到精疲力竭。有些人准备好要去开发一些不一样的东西。一些人前往西部的硅谷,热衷于寻找下一个创意火花。无论如何,在一个不承认他们为拯救公司所做的一切的公司里,继续待下去似乎没有什么意义。1981 那一年 Tracy Kidder 的《 新机器的灵魂 The Soul of a New Machine 》出版了。现如今,全世界都知道 Eagle 是如何构建起来了。

00:28:14 - Carl Alsing

如果你问我新机器的灵魂是什么,我想我会说是他们所经历的人和事,他们所做出的牺牲,他们所做出的努力,他们对此所感到的兴奋,以及他们所希望得到的满足感。也许得到了,也许没有,但他们为之而努力。

00:28:35 - Jim Guyer

从某种意义上说,这款机器是有点儿个性。但真正有个性的是这些有勇气的人。

00:28:47 - Saron Yitbarek

在我们有关硬件的全新一季的下一集里,我们会将时光倒回大型机世界,讲述另一群叛逆员工的故事。他们制造的计算机催生了一门改变世界的编程语言。

00:29:04 - Saron Yitbarek

代码英雄 Command Line Heroes 》是 红帽 Red Hat 的一档原创播客节目。这一季,我们正在为你整理一些出色的研究,以便你可以更多地了解到我们正在谈论的硬件的历史。请前往 redhat.com/commandlineheroes 深入了解 Eagle 及其背后的团队。我是 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/minicomputers

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

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

2020 年 7 月 21 日,Linux 中国翻译团队 LCTT 旗下的第一个特别兴趣小组(SIG)—— LCRH,在红帽公司的鼎力支持下诞生。LCRH 的目标是翻译红帽公司《代码英雄》播客的脚本为适合国人阅读理解的中文脚本。

而到了半年后,LCRH 翻译的中文脚本已经正式更新发布了前三季节目,共计 24 篇文章,时长约 12 个小时,篇幅长达 25 万字,堪比一本长篇小说!

《代码英雄》的英文名为《Command Line Heroes》,作为红帽(Red Hat)公司精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者们是如何彻底改变技术前景的真实史诗。在这一目前仍在持续更新的系列播客中,红帽公司邀请了诸多亲历了开源技术发展史上一些关键事件的人物和代表性的业界技术领袖,来一同探讨开源、操作系统、容器等或源远流长、或鲸吞天下的开源技术。在将这个播客在引入中国时,红帽公司希望其能展现出这些顶级黑客、开发领袖的英姿风貌,因而将其中文名称定名为《代码英雄》。

让这些代码英雄的风貌传播给中国开源和技术爱好者的,是来自 LCRH 的 30 多位贡献者,他们通过自己的辛苦努力,对每一篇文章都经过多人、多次的反复斟酌,力求将代码英雄们的史诗传奇介绍给国人,带给广大的技术开发者。

以下是我们已经发布的前三季的《代码英雄》,更多精制译文正在贡献者们的努力下逐渐加工出来。

在 LCRH 的代码仓库中,记录了 35 名贡献者的 460 次代码提交。这些贡献者们有的人尚在高校,有的人已从业多年;有的人身在中国,有的人求学海外。但对于开源技术的热爱、对于开源贡献的坚持,让他们造就了 LCRH,造就了中文版的《代码英雄》。

作为一个开发者,《代码英雄》所讲述的历史让我悠然神往,技术领袖们对开源和技术的观点使我可以高屋建瓴地看清乱花迷眼的技术本质。而这一切,都是由 LCTT/LCRH 的贡献者带来的,感谢这些可爱的贡献者!

《代码英雄》SIG 欢迎对于开源和技术感兴趣的你,参与到我们当中来,和我们一起贡献代码英雄的世界!你可以在 QQ 中搜索群 940139452,加入我们,参与贡献,具体贡献流程可以进群后了解。

除了《代码英雄》SIG,如果你对技术翻译感兴趣,也愿意以这种方式参与开源贡献,也欢迎加入到 LCTT(Linux 中国翻译团队)当中来。同样的,在 QQ 中搜索群:198889102 即可加入我们,加群时请说明是“志愿者”,并在加入群后修改群名片为你的 GitHub 的 ID,参与贡献!

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第三季(8):C 语言之巨变音频脚本。

导语:C 语言和 UNIX 是现代计算的根基。我们这一季介绍的许多语言都与 C 语言有关,或者至少受到 C 语言的影响。但是 UNIX 和 C 都只是 贝尔实验室 Bell Labs 的几个开发人员作为秘密计划项目创造出来两个成果而已。

贝尔实验室是二十世纪中期的一个创新中心。Jon Gertner 将其描述为一个“创意工厂”。他们在二十世纪 60 年代最大的项目之一是帮助建立一个名为 Multics 的 分时 time-sharing 操作系统。Joy Lisi Rankin 博士解释了当时关于分时系统的一些宣传,它被描述为有可能使计算成为一种公共服务。大型团队投入了数年的精力来构建 Multics —— 但这并不是他们所希望的成果。贝尔实验室在 1969 年正式远离了分时系统。但正如 Andrew Tanenbaum 所描述的那样,一个由英雄组成的小团队还是坚持了下来。C 语言和 UNIX 就是这样的结果。他们并不知道他们的工作会对技术的发展产生多大的影响。

00:00:00 - 发言人 1

我们掀起了新一波的研究浪潮。我们的创造力正在延伸。

00:00:10 - 发言人 2

噪音、噪音。

00:00:13 - 发言人 1

这些人是贝尔电话实验室的设计工程师。

00:00:16 - Saron Yitbarek

在上世纪 60 年代,坐落于新泽西州默里山的贝尔实验室,是科技革新的中心。在那里,我们的未来科技迈出了第一步。在那里,贝尔实验室发明了激光与晶体管,它还是信息论的摇篮。在 1968 年,贝尔实验室的四名程序员创造了一种极具开拓性的工具,它根本地改变了我们世界运行的方式,也标志着贝尔实验室的种种创新达到了新的高峰。

00:00:53

我是 Saron Yitbarek,这里是《代码英雄》—— 一款来自红帽公司的原创播客。在一整季的节目中,我们追寻着编程语言世界中最具影响力的一些故事,现在,我们终于迎来了这一季的结尾。我认为,我们把最好的故事留到了最后。这个故事中的编程语言使本季中提到的其他编程语言成为了可能。在正好 50 年以前,C 语言在贝尔实验室被设计出来,这是一种非常基础的通用程序设计语言。它是如此的基础,以至于我们有时候都会忘记,C 语言的发明是多么意义深远的成就。

00:01:35

为了得到事件的全貌,我们需要回到上世纪 60 年代,正好在 C 语言的诞生之前。那是一个一切似乎都有可能的时代。

00:01:46 - Jon Gertner

在上世纪 60 年代,贝尔实验室简直是研究人员的世外桃源。在今天,已经很难找到与贝尔实验室相似的企业研发实验室了。

00:01:56 - Saron Yitbarek

这是 Jon Gertner,他是《 创意工厂:贝尔实验室与美国革新大时代 The Idea Factory: Bell Labs and the Great Age of American Innovation 》的作者。我们采访了 Jon,让他大家解释当时贝尔实验室的情况。为什么在上世纪 60 年代,贝尔实验室能够成为他所说的“创意工厂”呢?

00:02:15 - Jon Gertner

我想今天我们都相信——“竞争带来伟大的科技革新”,但是我不能确定这种观点的正确性,并且,其实,贝尔实验室的成就在一定程度上是与这种观点相悖的。贝尔实验室的工程师和科学家们并没有特别大的压力,但是与此同时,由于贝尔实验室在诸多的研究实验室中的地位,它又确实可以雇佣到最优秀、最聪明的研究者,并给他们足够的时间去研究感兴趣的问题,同时提供大量的资助。如果你能证明你的研究项目符合这家电话公司(LCTT 译注:指 AT&T)的目标和理念,你就能够得到经费。

00:03:00 - Saron Yitbarek

而 Jon 强调,虽然贝尔实验室是一个商业公司的产物,但它的价值观还是比较接近学术界的。通过让员工自行决定工作方式及内容,贝尔实验室实践了类似于开源社区的开放式领导原则。

00:03:19 - Jon Gertner

这是诸如苹果、谷歌与微软这样的大公司出现前的时代。计算机的历史更多的聚焦在西海岸,聚焦于 自制计算机俱乐部 Homebrew Computer Clum 这样的组织,以及从其中发展而出的企业;但是我认为贝尔实验室和那些企业一样重要。贝尔实验室坐落于一个现在看来几乎不可思议的地方:新泽西的郊区。但是,这里曾聚集了对科技突破做出了巨大贡献的科学家、研究者和计算机工程师,他们的研究成果对全世界都有惊天动地般的显著影响。

00:03:54 - Saron Yitbarek

分时 time-sharing ”就是这些惊天动地的项目之一。它的核心概念很简单,实现难度却极大。他们能构建一个能够同时由成百上千的用户使用的操作系统吗?这样的发明将会使当时的计算机领域为之震动。从 1964 年起,贝尔实验室的天才们,与 通用电气 General Electric 和麻省理工学院(MIT)合作,试图集体推进这项工作的进展。实际上,麻省理工学院在一年前已经有了相关的研究项目,即 MAC 计划 Project MAC ;但是现在,所有这些顶级团队已经团结起来,开始着手钻研大型主机分时操作系统的构建方式。

00:04:40

实际上早在 1959 年, 约翰·麦卡锡 John McCarthy 就提出了分时操作系统的概念。请收听我们 第七集 的节目获知更多细节。他设想了一种可以在多个用户之间切换其“注意力”的大型计算机。麦卡锡认定,这样的一种机器有潜力极大地拓展现有的计算机文化。让我们来设想一下吧,如果一千名用户能够同时在一台机器上工作,你就完成了对整个编程与计算机世界的民主化。现在,这支群星荟萃的团队准备着手将麦卡锡的梦想变成现实,并为他们想象中的操作系统起了一个名字 —— Multics(LCTT 译注:Multi- 前缀代表“多人的”)。

00:05:23

Multics 团队为分时操作系统进行了多年的工作,但是该项目遇到了严重的资金困难,并且在十年之后,项目仍然看不到尽头。雪上加霜的是,项目的领导者 Bill Baker 是一个化学家,对贝尔实验室的计算机科学部门并不感兴趣。除此之外,我们仍然能找到一个新的问题 —— 自尊心问题。

00:05:46 - Jon Gertner

在贝尔实验室,人们每天习以为常的一件事情就是独自工作。我的意思是,贝尔实验室的人们有一种感觉:他们认为自己拥有一切他们所需要的的人才和构思,并且拥有最先进的科技,当他们遇到值得解决的问题时,他们有能力去解决这样的问题。这种看法可能有一定合理性;但是 Multics 项目在贝尔实验室没有进展,在某种程度上也可能是因为像这样更加复杂的、合作性的工作在贝尔实验室的体系中运转不良,也不能让那里的高管们满意。

00:06:20 - Saron Yitbarek

Jon Gertner 是 《创意工厂》 The Idea Factory 一书的作者,他刚刚发表的新书是 《世界尽头的冰》 The Ice at the End of the World

00:06:32

贝尔实验室于 1969 年四月正式宣布放弃 Multics 项目,但这是否就是故事的结尾呢?就贝尔实验室而言,分时操作系统 Multics 之梦已经破灭。但是这个梦真的结束了吗?结果却并不是这样,并非所有贝尔实验室的研究人员都放弃了分时操作系统。四个顽固的拒不退让者在所有人都已放弃之后,继续坚持这一梦想,而那就是下一个故事了。

00:07:08

说实话,有些梦想太美好了,这样的梦想是很难被人抛弃的。

00:07:12 - Joy Lisi Rankin

这是一件大事业。

00:07:14 - Saron Yitbarek

这位是 Joy Lisi Rankin,她是 《美国计算机人物史》 A People's History of Computing in the United States 一书的作者。Joy 将会和我聊聊分时操作系统的理想,以及为什么分时操作系统如此不可或缺。

00:07:27 - Joy Lisi Rankin

开发分时操作系统是一件重要且极富雄心壮志的事,直到该项目开始之前,大部分上世纪 60 年代早期的分时系统在一台主机上都约有 40 至 50 个终端。因此,提升终端的数量是重要性很高的一件事,贝尔实验室的雄心很可能超出了大部分人的认知,这也是这个项目在实现最初目的的过程中碰到了不少困难的原因。但是,尽管如此,分时操作系统继续以不同的形态发展,并真正地走向繁荣;分时操作系统不仅仅在麻省理工学院得到发展,也走向了其他的地方。

00:08:09 - Saron Yitbarek

是啊。那么,当我们谈起上世纪 60 年代,是谁在推动分时操作系统的需求?你提到了麻省理工学院、通用电气公司和贝尔实验室。那么我们的关注点是商业还是学术团体?谁才是真正的推动者?

00:08:23 - Joy Lisi Rankin

我认为学术团体和商业团体共同推动了发展的进程,除此以外,一些 科学 scientific 团体也参与了这项事业,因为,正如我之前所说,分时操作系统是一种更加一对一、富有互动性的计算体验。但是从另一个角度来看,我也会说教育工作者也同样在推动这件事的发展。并且,从国家的层面上讲,当时也在进行关于创建全国性计算设施的对话。那么,基本上来说,所谓的全国性计算设施指的就是全国性的分时操作系统网络。真的,美国的思想领袖们也有这样的言论,他们认为这样的系统会是与供电、电话、供水一样的基础性服务。

00:09:08 - Saron Yitbarek

哇哦。

00:09:08 - Joy Lisi Rankin

对啊,我知道的!这确实很……

00:09:09 - Saron Yitbarek

那可真是一项大事业。

00:09:11 - Joy Lisi Rankin

那是一项非常大的事业。

00:09:13 - Saron Yitbarek

Joy 让我想起了一件事。尽管这一期节目主要聚焦于创造了 C 语言和 UNIX 操作系统的团队,但是在贝尔实验室之外,对分时操作系统的推动是一项运动,比任何一个团队都大。将计算机视为公共设施是一个非常有意义的想法,在这项事业中,有许多优秀的人物,可惜我们不能请他们来到这里,比如 Bob Albrecht 和 Martin Greenberger ,以及其他的一些杰出人物。

00:09:37

好的,在进行了一些预先说明之后,让我继续和 Joy 的对话吧。

00:09:41 - Joy Lisi Rankin

那么,当约翰·麦卡锡在麻省理工大学的演讲上首次公开的谈论分时操作系统时,他明确的将其与电力进行了比较,并说:“这是一个让所有人都能使用计算机的方式,不仅仅是在学校里和商业活动中,还在每个人的家里。”回首过去,再阅读当时的文章与档案,许多人都确信,未来会出现一种能够被规范化管理的计算公共设施。因此,人们对这种全国性的分时基础设施充满了信心和支持。

00:10:22 - Saron Yitbarek

非常有趣的一点是,在 1970 年,IBM 实际上已经退出了分时操作系统这一产业。即使是通用电气也出售了他们的大型主机部门,不过他们还仍然保留了一部分分时操作系统相关的业务。让我们简单地谈一谈这些吧,1970 年发生了什么?

00:10:39 - Joy Lisi Rankin

我认为 1970 年已经一定程度上已经成为某种标志,这也许是人为假想的标志,这一年标志着公共计算设施与分时操作系统产业的失败。从某些角度上来说,这种观点是错误的。我认为在上世纪 60 年代末期,麻省理工和 Multics 项目明显在创建一个支持上千个终端的分时操作系统上遇到了困难,而这是一个知名度极高、影响力很大的项目。在同一时期,数十个基于分时计算模型的商业项目在美国兴起并繁荣发展。这是一个科技泡沫。随后,对于分时操作系统的热情走向衰落。这不完全是因为通用电气出售了他们的计算主机业务,他们在上世纪 70 年代至 80 年代间一直保留着他们的分时计算业务,并且这一业务盈利状况良好。除此以外,当时的大学,例如麻省理工学院,也继续运行着他们的分时操作系统,直到上世纪 80 年代。

00:11:52

因此,依我之见,“分时系统只是一个在上世纪 70 年代破碎的科技泡沫”的公共记忆之所以产生,一定程度上是因为人们过多地关注了 Multics 的困境。然而,事实上来说,如果我们回到过去,看一看当时的人们如何使用分时操作系统,以及分时操作系统赢得了多少利润,了解一下分时操作系统的成功,我们就会发现,其实上世纪 70 年代正是分时系统繁荣的年代。

00:12:17 - Saron Yitbarek

现在让我们把眼光放回到贝尔实验室,由四位技术专家组成的小组想要创造他们自己的分时操作系统。他们是 肯·汤普逊 Ken Thompson 丹尼斯·里奇 Dennis Ritchie 道格拉斯·麦克劳伊 Doug McIlroy 约瑟夫·欧桑纳 J.F. Ossanna 。不过他们并不想完成 Multics,他们想要越级跳过 Multics,制作一个不受过往拖累、功能更为强大的操作系统,他们称之为 UNIX(LCTT 译注:Uni- 这个前缀代表“单一的”)。

00:12:39 - Joy Lisi Rankin

我认为 Multics 是 UNIX 的灵感来源,其原因在于,许多在 Multics 上工作的程序员是如此享受分时操作系统在编程上的优点,以至于在 Multics 陷入困境时,他们便想要创造一个属于他们自己的分时环境。这些来自贝尔实验室的程序员,他们决定构建他们自己的编程框架与分时操作系统,这就是 UNIX 的起源。

00:13:20 - Saron Yitbarek

Joy Lisi Rankin 是 《美国计算机人物史》 A People's History of Computing in the United States 一书的作者。

00:13:29

丹尼斯·里奇 Dennis Ritchie 将自己和其他三名同事称为一个 团队 fellowship 。他们几个开发者想要作为一个紧密的四人小团体而工作,并且他们需要一种能够协调他们程序设计的硬件。但是贝尔实验室已经放弃了分时操作系统的梦想,即便它是一个学术研究的世外桃源,给已经放弃的项目拨款这件事也超出了他们的底线。因此他们拒绝了使用新硬件的提议。为此事购买新的硬件太过昂贵了,为什么要冒险呢?但研究员们还是坚持了下来。

00:14:05

汤普逊和里奇要求得到一种类似 GE645 的机器,这是他们一直用来进行 Multics 相关工作的型号。当他们得知无法得到经费时,他们刚刚在纸上潦草地写下一些关于文件系统的想法。最后,他们在一个他们称之为“太空旅行”的游戏中成功地实现了他们的一些想法,这个游戏运行在 PDP7 机型上,这种机型基本上与 Commodore 64 是同一个级别的。没有贝尔实验室的支持,他们的开发是缓慢的,至少开始是这样的,是一个字节、一个字节地前进的。这四人组复活了分时操作系统之梦,以他们称之为 UNIX 的形式。

00:14:47

不过这里就是问题所在了:UNIX 操作系统是用汇编语言写成的。也就是说,他们用纸带向 PDP7 传输文件;你可以想象到,他们在缺乏理想的工具与上级的支持的情况下,努力构建这个开创性的操作系统时所遇到的困难。UNIX 已经获得生命,但还没有一种合适的编程语言能够让它歌唱。

00:15:23

开发者们初次尝试为 UNIX 设计的语言称为 B 语言,由 肯·汤普逊 Ken Thompson 编写。

00:15:30 - Andy Tanenbaum

这是 BCPL( 基础综合编程语言 Basic Combined Programming Language )的一种衍生语言。

00:15:33 - Saron Yitbarek

这位是 安德鲁·塔能鲍姆 Andy Tanenbaum 。他是阿姆斯特丹的一位计算机科学教授,也是许多书籍的作者,包括经典教材 《计算机网络》 Computer Networks 。让我们听听他讲解汤普逊的 B 语言背后的故事。

00:15:48 - Saron Yitbarek

所以说, B 语言是 BCPL 的一种衍生物?

00:15:51 - Andy Tanenbaum

BCPL 源于一种构建 CPL 编译器的企图,这种语言编写的编译器确实能够起到作用,而 CPL 基于 ALGOL 60,ALGOL 60 语言又源于 ALGOL 58。ALGOL 58 则源于对 Fortran 进行改进的尝试。

00:16:01 - Saron Yitbarek

搞明白了吗?现在的问题就是,B 语言有许多历史包袱。B 语言和它的这些前身相比,并没有太多的突破性改变,因此,B 语言不能完成让 UNIX 歌唱的挑战。B 语言中没有变量类型,对于初学者来说这是一个问题。除此以外,B 语言对应的汇编代码仍然比 B 语言编译器的 线程代码 threaded-code 技术 [1] 要快。

00:16:31 - Andy Tanenbaum

BCPL 和 B 语言只有一种数据类型,就是 双字节类型 word 。双字节类型在基于双字节类型开发的 IBM 的 704 和 709、7090、7094 机型上效果不错,但是从 360 和其它所有的小型电脑开始的机型都是基于 单字节类型 byte 的。在这种情况下,双字节类型就不是一个好主意了,它和现代计算机的匹配程度极其糟糕。因此,显然 B 语言无法解决现有的问题。

00:16:57 - Saron Yitbarek

那么,该团队之前工作使用过的所有机器都是基于双字节类型的,但是在基于单字节对象的操作上,这种类型的机器就不够好用了。幸运的是,在这个时间点上,贝尔实验室的领导们又回来加入了 UNIX 项目,他们意识到了这个团队中正在产生令人激动的进展。他们资助了一台价值 65000 美元的 PDP-11,并且这台机器不是基于双字节类型的,而是面向单字节的。现在,装备上了 PDP-11,丹尼斯·里奇能够在处理编程语言的难题时更进一步。

00:17:36 - Andy Tanenbaum

丹尼斯,以及在肯的少量帮助下,决定编写一种更加结构化新编程语言,包含其它数据类型,比如说 字符类型 char 整数类型 int 长整数类型 long 等等。

00:17:47 - Saron Yitbarek

因此,在 1971 年至 1973 年之间, 丹尼斯·里奇 Dennis Ritchie 一直在调整 B 语言。他增加了一种字符类型,并且构建了一个新的编译器,这样就不需要再使用线程代码技术了。两年结束时,B 语言已经变成了一种崭新的语言,这就是 C 语言。

00:18:08

C 语言是一种功能强大的语言,结合了高级功能和底层特性,能够让使用者直接进行操作系统编程。它的一切都是如此的恰到好处。C 语言从机器层次中进行了足够的抽象,以至于它也可以移植到其他的机型。它并非一种只能用来写写应用的语言。它几乎是一种通用的编程工具,无论是在个人电脑还是超级计算机上都十分有效,而这一点极其重要,因为个人电脑革命当时已经近在眼前。

00:18:49

团队的成员们在确定了 C 语言就是正确的道路之后,就立刻用它重写了 UNIX 内核和许多 UNIX 组件。因此,只要你想使用 UNIX,你就必须使用 C 语言。C 语言的成功与 UNIX 的成功紧密的结合在了一起。

00:19:06 - Andy Tanenbaum

C 语言的流行,其实主要不是因为它是一门比 B 语言更优秀的语言 —— 当然它确实比 B 语言优秀 —— 而是因为,它是编写 UNIX 的语言,并且当 UNIX 广泛发行的时候,它自带了一个 C 语言编译器;甚至最后它还配备了两个 C 语言编译器。那么,UNIX 受到了广泛欢迎,每个使用它的人都有了 C 编译器,而且 UNIX 的一切都是由 C 语言写成的。而 C 语言是一种相当不错的语言,它又是与 UNIX 共同出现的,那为什么还要找其他的编程语言呢?

00:19:33 - Saron Yitbarek

从这里开始, C 语言的价值开始显现。

00:19:35 - Andy Tanenbaum

由于 UNIX 是用 C 语言写成的,并且带有一个 C 语言编译器,C 语言与 UNIX 从一开始就在一定程度上互相依赖,因此,它们也共同成长。在一个关键的时间点,C 语言在 UNIX 系统中已经足够流行时,像 Steve Johnson 这样的人开发了可移植的 C 语言编译器,这种编译器可以为其他型号的计算机产生机器码。最终,出现了面向其他操作系统的 C 语言编译器,人们开始用 C 语言编写各种各样的软件 —— 从数据库系统到……天知道什么奇奇怪怪的玩意儿,因为 C 语言在各种环境下都可用,并且十分有效,效率很高。

00:20:07 - Saron Yitbarek

因此,不久以后,人们也开始用 C 语言编写与 UNIX 无关的程序,因为这门语言的优点是显而易见的。Andy 将为我们讲述,C 语言如何完全接管了整个编程世界。

00:20:20 - Andy Tanenbaum

我想说的是,C 语言在正确的时间出现在了正确的地点。在上世纪 70 年代,计算机的普及范围远比现在要小。普通人不会拥有计算机,并且对计算机一无所知,但是在大学和大企业所拥有的计算机中,有许多都使用了 UNIX 操作系统以及随之而来的 C 语言,也就是说,这些大学和大企业都在使用 C 语言。这些大学与大企业发布了大量的软件,也产生了大量的程序员。如果一个企业想招聘一名 C 程序员,发布招聘广告后一定会有人来应聘。如果想招聘一名 B 语言程序员,没人会来面试。

00:20:49 - Saron Yitbarek

在 C 语言的世界中,有许多基础设施 —— 软件、函数库、头文件等,这一切编程工具都构成了一个完美的闭环。

00:20:59 - Andy Tanenbaum

因此,C 语言变得越来越流行。

00:21:02 - Saron Yitbarek

现在,互联网的兴起导致了人们对 C 语言安全性的关注,这些问题在变种中得到了部分解决,比如 C#。有些时候我们会觉得,好像所有的兴奋点都在 Python 或 Go 等新语言上。但是我们希望能在播客中试图做的一件事就是让大家回忆起当下的我们与历史的紧密关联,而 C 语言的影响至今仍然是不可思议的。

00:21:29

C 语言在现代最出名的产物就是 UNIX 的教子 —— Linux,而 Linux 的绝大部分都是用 C 编写的。就连 Linux 项目使用的标准编译器 GCC( GNU 编译器集合 GNU Compiler Collection ),也是用 C 语言写成的。虽然这一点可能不太引人注意,但是今天所有聚集在 Linux 上的开源编程者,都与一种在半个世纪以前的语言相联系,而 C 语言的统治也在年复一年的增强。

00:22:02 - Andy Tanenbaum

以上这些事情的结果就是世界上占支配地位的两种操作系统的诞生。一个是运行在 Linux 操作系统上的安卓,而 Linux 是重写 UNIX 操作系统的产物。而 iOS,本质上来讲是一种 4.4 版的 Berkeley UNIX。因此,安卓和 iOS 从本质上说都是 UNIX。我怀疑几乎所有的服务器都是运行在 UNIX 或 Linux 的某个版本上的。这些服务器在幕后发挥着巨大的作用,并且任何运行 UNIX 的系统都源于 C 语言,为 UNIX 所编写的一切程序都使用了 C 语言。C 语言确实是无处不在的。

00:22:41 - Saron Yitbarek

安德鲁·塔能鲍姆 Andy Tanenbaum 是一名计算机科学教授,他是《计算机网络》一书的作者。说点有趣的题外话吧,他同时也是 MINIX,一个免费、开源版本的 UNIX 的作者,而 MINIX 事实上也是 林纳斯•托瓦兹 Linus Torvalds 开发 Linux 的灵感来源。当然,Andy 使用 C 语言编写 MINIX。

00:23:03 - Saron Yitbarek

今天,C 语言存在于我们生活中的任何一个角落,从火星上的漫游车到台式电脑上的浏览器。它影响了许多我们在本季节目中提到的语言,例如 Go、Javascript 和 Perl。由于 C 语言与 UNIX 密不可分的联系,C 语言很可能是分布最广泛的编程语言。

00:23:28 - 发言人 7

1998 年美国国家科学奖的获得者是——来自朗讯科技公司贝尔实验室的 肯·汤普逊 Kenneth L. Thompson 丹尼斯·里奇 Dennis M. Ritchie 的团队。

00:23:40 - Saron Yitbarek

回望上世纪 60 年代,这四位贝尔实验室的员工—— 肯·汤普逊 Ken Thompson 丹尼斯·里奇 Dennis Ritchie 道格拉斯·麦克劳伊 Doug McIlroy 约瑟夫·欧桑纳 J.F. Ossanna ——他们那时还不得不向上级乞求关注和资助。但是在 1998 年,汤普逊和里奇就收到了美国国家科学奖,这是为了表彰他们在 C 语言和 UNIX 上的工作。他们也共享了一百万美元的图灵奖奖金。历史的眼光是公正的。

00:24:10

在一整季的节目中,我们一直在追寻那些我们最喜爱的编程语言的发展沿革与魅力。无论它们像 C 语言一样搭上了操作系统发展的便车,又或者是像 Go 语言一样在一种新的基础架构上发展,有一件事是永恒不变的:编程语言有它们自己的生命。它们是活着的。它们出生,成长,走向成熟。有时,编程语言也会变老,走向消亡。我们越多的了解这些语言,我们越会发现编程语言是一股重要的力量,它们总是在不断地变化,以切合时代的需要。我们的职责就是意识到这些变化,并且加以回应。我们的语言一直都是构建我们想要的世界的最佳工具。

00:25:00

以上就是我们所有第三季的《代码英雄》节目。我希望大家喜欢收听我们的节目。节目的第四季已经在制作中,即将推出,敬请期待。

00:25:13

《代码英雄》是来自红帽公司的原创播客。

00:25:18

如果你想深入了解 C 语言或者本季节目中我们提到的任何其他编程语言的故事,欢迎访问 redhat.com/commandlineheroes。我是 Saron Yitbarek ,下期之前,编程不止。


  1. 线程代码 threaded-code 技术:一种通过把一系列调用指令转换成一完整的地址表,然后使用恰当的方式调用的技术。线程代码最初被用来减少代码的占用空间,提高代码密度。通俗地讲,这种技术有点类似于在 C 语言中把一系列的 switch-case 语句转化为用函数指针数组实现的形式。 ↩︎

什么是 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-3/the-c-change

作者:Red Hat 选题:bestony 译者:QwQ2000 校对:Northurland, wxy

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