皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

《代码英雄》第四季(8):史蒂夫·沃兹尼亚克轶事

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(8):史蒂夫·沃兹尼亚克轶事音频脚本。

导语:史蒂夫·沃兹尼亚克Steve Wozniak(即沃兹Woz)对硬件世界产生了巨大的影响。第四季介绍了许多他设计、制造、参与,以及受到他的启发的设备。但对沃兹来说,最重要的往往并不是他所创造的设备,而是他如何建造它们。

沃兹讲述了他早期的黑客改造tinkering工作如何引发了他对工程的终生热情。他在高中时就开始在 GE 225 上学习计算机知识。很快,他就开始设计改进他想买的电脑,并最终确定了他的口号,即“简洁设计”。这种理念使得他在自制计算机俱乐部看到 Altair 8800 后完成了 Apple I,并为 Apple II 设计了软盘驱动器。但那时他最自豪的是他的工程成就得到了认可,并与世界分享了这些成就。

00:00:01 – Saron Yitbarek

大家好,我是红帽原创播客《代码英雄》的主持人 Saron Yitbarek。如果你在数的话,本季是我们节目的第四季。在这一季中我们带你踏上了一段具有历史性的旅程,走进硬件世界以及那些敢于改变硬件制造传统的团队。从 Eagle 小型机到 GE-225 大型机,从 Altair 8800 到软盘,从 Palm 的掌上电脑到世嘉的电视游戏机,虽然这些机器现在已经过时,被大家所遗忘,但它们为今天的硬件演变和开发者们的发展铺平了道路。

00:00:44

在此过程中,这些机器激发了个人计算机革命、开源软件运动和开源硬件运动,改变了计算机的历史进程。但在我们第四季结束之前,还有一件事要说。

00:01:03 – 史蒂夫·沃兹尼亚克Steve Wozniak

我是史蒂夫·沃兹尼亚克Steve Wozniak,苹果电脑公司的联合创始人。很高兴与您交谈。

《代码英雄》第四季(8):史蒂夫·沃兹尼亚克轶事

三十多年来,史蒂夫·沃兹尼亚克一直在帮助塑造计算机行业。他的早期贡献包括设计苹果公司的第一条产品线:Apple I 和 Apple II。他帮助创建了电子前沿基金会Electronic Frontier Foundation(EFF),并且是科技博物馆Tech Museum硅谷芭蕾舞团Silicon Valley Ballet圣何塞儿童探索博物馆Children’s Discovery Museum of San Jose的创始赞助商。2017 年,他共同创办了沃兹大学Woz U

00:01:08 – Saron Yitbarek

如果你回想一下本季的前面几集,就会发现史蒂夫·沃兹尼亚克的名字不止出现过一次、两次,而是很多次。这是因为沃兹(这是人们对他的亲切称呼),他不仅经历了那段历史,而且在其中发挥了重要作用。这个非常特别的代码英雄现在坐在这里,和我们谈论他在硬件历史上的亲身经历。让我们先从询问他钟爱的第一件硬件开始。

00:01:42 – 史蒂夫·沃兹尼亚克

在我很小很小的时候,大概是 10 岁,我爱上了一台晶体管收音机,很多年以来,我睡觉的时候都会把它放在枕边播放音乐。这算是第一个,在那之后还经历了许多,在我做过的科学展览中就有几百个不可思议的部件。现在,谈到计算机方面的东西、命令行的东西,在我 10 岁那年,不知何故发现了一本叫做《数字逻辑》的小册子,我用它在纸上涂鸦。在那时我就说,“计算机将会是我一生的挚爱”。

00:02:19 – Saron Yitbarek

20 世纪 60 年代,当史蒂夫·沃兹尼亚克还在上高中的时候,他有机会在通用电气公司(GE)放到他学校的一款电传终端机上试用分时系统,也就是我们在第二集中介绍 GE-225 大型机时讨论过的系统。

00:02:37 – 史蒂夫·沃兹尼亚克

当时既没有书,也没有杂志告诉你“计算机是什么?”。在高中时我得到了……我记得是得到许可……去参与一次测试,测试我们几天前才有的一个小装置。它是一种和分时系统相连的电传打字机teletype,在这上面可以运行一些用 BASIC 语言编写的程序。我在上面做了一些实验并且感叹道:“嗯,这个 BASIC 有点简洁。”

00:02:58 – Saron Yitbarek

在他高中的最后一年,沃兹尼亚克的电子老师安排他去加州森尼维尔的一家当地公司 Sylvania 学习如何为他们的计算机编程。

00:03:10 – 史蒂夫·沃兹尼亚克

我的电子老师让我去一家公司,每周用 Fortran 语言在一台 IBM 1170 上编程一次,我想 1170 大概是这台计算机的编号。我当时还没有看到它的架构。但是当有一天我去那里的时候,在一个工程师的桌子上看到有一本叫做《小型计算机手册》的书,描述了 PDP-8 小型计算机minicomputer

00:03:33 – Saron Yitbarek

在第 1 集中,我们介绍了《新机器的灵魂The Soul of a New Machine》这本书中讲述的故事,该故事讲述了通用数据公司Data General的小型计算机 Eagle 是如何对抗数字设备公司Digital Equipment Corporation的小型计算机 VAX 的。PDP-8 是 VAX 的前身,并且也是数字设备公司第一款成功商用的小型计算机。

00:03:53 – 史蒂夫·沃兹尼亚克

他们让我那种那本手册,把它给了我。我把它带回家研究。我的天,这本手册上记录了所有的小寄存器中不同的 1 和 0 代表什么意思,它们意味着什么指令,以及数据是如何存储在内存中的。天哪。于是我开始坐着在纸上写到:“我想知道我是否可以设计一台电脑。”这对我来说是一个重要的开始。我得到了这本小册子,我可以订购手册来获得零件。此时的问题是怎么能找到一家电脑公司,并且得到这家公司的地址呢?

00:04:19

斯坦福直线加速器中心,我开车就能去,世界上最聪明的人都不锁门(所以那里会开着门)。我会在周日去,在他们的主楼里走走。我在那里的二楼找到了图书馆,坐了下来,那里有计算机方面的期刊和杂志,你也可以在图书馆中的小卡片上订购手册。我订购了一本通用数据公司的手册,它显示了总裁、运营主管、软件与工程主管的鼎鼎大名。但你知道那不是我想要的。

00:04:51

我想要知道 1 和 0 的含义。在最后一页,它展示了一条指令,那是一条算术指令。我习惯于每台电脑都有 56 条指令。每个指令,每一个小比特,都有各自小的含义。一个比特可能代表在加法之前设置进位。另外三位比特可能意味着你要做加法、减法、异或运算,以及其他一些操作。那么其他的比特就会问:等一下,你是要补码运算的结果还是移位运算的结果?移位运算有进位吗?每一个比特都有各自的含义。

00:05:21

我坐了下来,每个周末都在设计计算机,而那时小型计算机问世了。我坐下来设计它,每一个具有含义的比特,其实就是一根连接到芯片上的线,用来实现具体的功能,它的芯片数是我设计的其他小型计算机的一半,而且工作得一样好。我的墙上贴着那张他们和宣传册一起寄来的海报,就像普通的计算机设备一样,它是放在机架中的,因为它是前置面板,开关代表着 0 和 1,灯也代表着 0 和 1,全是些古怪的东西。

00:05:54

而他们还有另一张图片,就像那种放在桌面上的台式机那样。这引起了我的兴趣,你怎么能想象出电脑居然可以放在桌面上呢?我告诉我的父亲我爱上了它,肯定地对我父亲说:“总有一天我会拥有一台 4K 大小的通用数据公司的 Nova 牌电脑。”为什么大小是 4K ?因为需要 4K 的空间才能运行像我编程所使用的 Fortran,或是 ALGOL、PL/I 这样的语言、任何需要 4K 的编程语言。我之前从来没有用 BASIC 编程过,我把这个告诉我父亲的时候,他说这个电脑和房子一样贵,我回答道,“那我就住在公寓里。”当时我就决定:我要有一台可以真正使用的电脑,尽管要整天切换 1 和 0,用按钮来把它存入内存,但这就是我想要的,它甚至比房子更加重要。

00:06:42 – Saron Yitbarek

通用数据公司的 16 位 Nova 牌小型计算机是 32 位计算机 Eclipse 的前身,就是第 1 集中代号为 Eagle 的那个。实际上,正是 Nova 小型计算机启发了沃兹的工程设计理念。

00:06:59 – 史蒂夫·沃兹尼亚克

这台计算机教会了我,应该始终用现有的部件来设计东西,以使用最少的结构和零件。那是我非常擅长的事情,我一直在从事设计工作,总是试图使用芯片更少的架构。如果围绕已有的芯片进行设计,那么从某种意义上讲,可以理解为用更少的部件、更干净、更少的工作量。后来这也成为我设计的口头禅,始终寻求简单、直接、易懂,不要构建出这样复杂化的东西:来让一项工作在 20 个芯片上运行,实现正确的功能、得到正确的信号,而是寻找简单、直接的方法。

00:07:39 – Saron Yitbarek

沃兹的设计理念让我想起我们在第 5 集中提到的 Palm 公司用来开发应用程序的 Palm 之禅:让它简单。

00:07:51

还记得第 3 集中我们谈到的 Altair 8800 和个人计算机的诞生吗?史蒂夫·沃兹尼亚克参加了自制计算机俱乐部具有决定性的第一次会议,当时他一直制作自己的版本的计算机。

00:08:07 – 史蒂夫·沃兹尼亚克

在那里,我展示了各种电子游戏的设计,比如 Altair 游戏,我甚至为 Altair 设计出了“越狱”。我还看到了当今互联网的前身:ARPANET,它开始时全国大概只有五六台计算机。我看到有人在那上面,在那时我已经知道如何设计点东西了。可以使用我的电视作为输出,我曾为电子游戏做过。所以我做了一个带键盘的小终端,花了 60 美元。在当时,这是这些东西中最昂贵的部分。我有了一个键盘和一个视频显示器,我可以通过电话线与 ARPANET 联系,在那些日子里,通过非常慢的电话线调制解调器发送文本非常缓慢,我可以在波士顿的一台电脑上打字,可以打字回给我。我还可以切换到加州大学洛杉矶分校的电脑上,在上面读取文件、运行程序。这太不可思议了!

00:08:57

我听说有一家俱乐部要成立了,还没有取名,只是一群技术爱好者。我想,“哦,天哪!我要炫耀一下,我有个小设计,没人知道其实可以使用自己的电视来进行显示。我要去炫耀我的设计,把它传播出去,我将成为一个英雄。”我到了俱乐部后,那里的每个人都在谈论这个叫做 Altair 的东西。它曾出现在《大众电子Popular Electronics》杂志的封面上,但我对此一无所知。有一些在这个俱乐部里的人去那个公司参观过,他们都在谈论现在你可以花 400 美元购买一台计算机。这是一台只有 256 字节内存的机器,它使用了静态内存。用的是英特尔的数据手册、英特尔的微处理器,英特尔展示了用这种方式具体连接到这些开关和灯,然后你可以有一个小系统来输入 1 和 0。

00:09:39

在那之前,我用自己五年前买的芯片设计制造了自己的计算机。我曾经做过这些事,所以很清楚这些人在看什么,400 美元对一个人来说是负担得起的。设计师必须围绕静态存储器进行设计,这是计算机中最昂贵的部件,这也是为什么它只有 256 字节内存的原因。但如果你必须拥有 4K 的内存才能使用一种编程语言,那这些静态内存的成本就太高了,超出了任何正常人的能力范围,所以我们甚至不会认为它是一台能做有用事情的电脑。什么是有用的事情?遇到问题,输入程序,解决问题。

00:10:14

现在,我坐在那里思考。我在惠普公司工作,研究能让人使用的计算器,而我有可以与 ARPANET 上的计算机进行通讯的小机器。我说,“等一下。”我发现微处理器的价格终于降下来了。英特尔的那款单个微处理器是 400 美元,我负担不起,Altair 就是基于它的。作为一名惠普的员工,我可以花 40 美元买到一个摩托罗拉 6800。因此,我设计出了具有微处理器和内存的计算机,不是那种买不起的昂贵的、价值 32 个芯片的静态内存。它只需要 8 块动态内存芯片,然后还有 5 块其他芯片帮助它循环,使它不致于丢失数据,这就是所谓的刷新。

00:10:56

我围绕着摩托罗拉公司的 6800 设计计算机,之后一家公司在旧金山的一次展览上推出了 6502 微处理器。我买了那个微处理器,你知道的,整个设计计算机的公式都在我的脑海里,我很快就会拥有自己的计算机,而且我确实做到了。

00:11:17 – Saron Yitbarek

沃兹并不是 BASIC 语言的忠实粉丝。但是,随着微软软件业务的起步:Altair BASIC 的推出,他意识到比尔·盖茨和保罗·艾伦的 BASIC 版本将会广泛使用。

00:11:31 – 史蒂夫·沃兹尼亚克

Altair 一出现在我们俱乐部,我们就得到了这个消息。比尔·盖茨和保罗·艾伦已经为它开发了 BASIC。我的嗅觉告诉我,家用计算机的关键作用不再是传统意义上的计算机那样,也不再是库存量、销售数据、就业率,这些所有大公司用大型机在做的事情。不,它将会是游戏。它的关键是游戏、是 BASIC。我使用 Fortran、ALGOL 和 PL/I 以及一些汇编语言和科学计算的语言进行编程。除了高中的那三天之外,我一生中从未接触过 BASIC 语言,因为我觉得这是一种孩子的语言。

00:12:08

这不是我们科学家真正使用的语言,我说:“这台机器上必须装有 BASIC 环境。”问题是没有其他人协助我的工作,这意味着,我不仅要开发硬件,还必须编写 BASIC 语言。我从来没有上过编写语言的课程,所以我写了自己的 BASIC 语言。我晚上去了我工作的惠普公司,打开 BASIC 手册,在纸上记录下 BASIC 的所有指令。我没有意识到此 BASIC 非彼 BASIC,和在所有的书中提起过的数字设备公司Digital Equipment Corporation(DEC)所使用的那种 BASIC 语言、比尔盖茨也编写过的那种,在处理字符串和字的方式上完全是一种不同的语言。

00:12:45

它们处理字的方法和惠普公司完全不同。那时候我认为,你编写了一个 BASIC 语言,你用你的计算机来运行 BASIC,这在哪儿都是一样的。但事实并不是这样。所以这是一个关键,Altair 意识到现在必须要有一种自己的语言,这种语言必须是 BASIC 语言,否则人们不会把它放在家里。

00:13:03 – Saron Yitbarek

在第 4 集中,我们了解到软盘是如何产生的,但是这种便携式存储方式是随着 Apple II 的磁盘驱动器的发明才变得无处不在。史蒂夫·沃兹尼亚克在巨大的压力下,用两周的时间创造出这个漂亮的硬件。这是他的故事。

00:13:25 – 史蒂夫·沃兹尼亚克

实际上,苹果公司遇到了一个问题。我们的 Apple II 计算机最初使用的是盒式磁带。这意味着你要进行手动操作,如果需要某个特定程序,要在盒式磁带中搜索,在磁带中找到这个程序,将其放入磁带播放器中,然后再把它读入计算机。这不像你可以输入 “run checkbook” 命令来运行一个支票薄程序那样。我希望有一天能够达到那个水平,我们召开了一次员工会议。他们允许苹果公司……刚成立还不到一年的苹果公司,和 Commodore 和 Radio Shack 这三家个人计算机公司参加内华达州拉斯维加斯的 CES 展览。

00:14:00

哇哦!除了在电影里,我从来没有见过拉斯维加斯。我想去那里,在我们的员工会议上,“嗯,我们只打算派三个营销人员去。”Mike Markkula 说,他负责市场营销,是我们的投资人,与我和史蒂夫·乔布斯Steve Jobs拥有同等的股份。史蒂夫·乔布斯会去,我们的销售人员 Gene Carter 也会去。我当时在想怎么去,只是不好意思说 “嘿!我是创始人之一,让我去看看拉斯维加斯!付钱让我去吧。”所以我举起了我的手,我也不知道那时为什么这么做。这场展览在两周以后开始。举手后我试图找个话题:“如果我们有了软盘,可以在展览上面展示它吗?”Mike Markkula 回答道:“当然可以!”他是我们公司中可以做主的人。这下球又踢到我这边了。

00:14:38

如果对磁盘,它的软件和硬件一无所知的我能开发出一张软盘,在这张软盘上实现 “run checkbook”,在两周内做到这一点,他们就得带我去维加斯。如果他们要在展览会上介绍软盘,就得带上我。为此我每一天都在工作,不分昼夜、元旦、圣诞节,每一天都在工作。

00:14:59

最开始我把视线聚焦在 Shugart 公司的五英寸软盘上,我注视着它,在脑海中对它进行逆向工程,把所有的东西都拆开,并且说道:“它需要的是大块数据,0 和 1,每个 4 微秒,我可以使用一根线来从我的计算机上提供这些数据。”所以我取出了所有的 Shugart 数字芯片,所有步进轨道的芯片,轨道之间切换使用所谓的步进电机,有 A、B、C、D 相位,每个相隔一个相位。A 是第一轨道,然后是 B-C,现在是第二轨道,再之后是 D-A,第三轨道。我一开始就去掉了他们的 20 块芯片,对自己说,“我只需要使用尽可能少的电路。”

00:15:36

最后,我想到使用 7 块 1 美元的小芯片,可以在 4 微秒内一次写入这些数据位,以满足软盘的规格。我的计算机可以通过软件以不同的数据编码形式来计算出我需要发送的 0 和 1 。但更困难的是,当我把它放到我可以写入它的地方时,我可以用示波器看到信号高高低低变化,但我不知道它在哪里开始和停止。现在我必须要读取它。

00:16:04

为了读取它,有一个比特进来,然后你需要做的就是等待…它将会在 4 或 8 微秒内切换,所以时间大约在 6 微秒内,你可以内置计时器然后说道:“在那段时间内信号从高到低还是从低到高?”我需要很多的芯片,可能是 10 到 20 个,这谁又知道呢?这里面的计时器会确定什么时候真正做出信号翻转的决定。然后我说:“我有一个 7 MHz 的时钟,我做一个所谓的状态机。”我在大学三年级的时候就上过一门状态机课程,状态机一般会有一个地址,来标识着现在所在的位置,或者是一个状态号。我只是想到了进入一个小 ROM 芯片的地址,我现在手里有这个 256 * 8 的 ROM 芯片。

00:16:48

我会把地址放在那个状态,这就决定了它现在的位置,然后放入软盘读取头的读到的比特。我把那个读取到的比特放进去,ROM 决定我的下一个状态,然后下一个状态就出现了这些比特。我可以在 7 MHz 的条件下翻转 28 个周期,这相当于是 4 微秒的时间,可以让它进入阶段 1、阶段 2、阶段 3 … 阶段 28,最后在阶段 40 左右,它将做出决定:我有没有得到脉冲?我是要把一个 0 还是一个 1 移到寄存器中放入计算机中。

00:17:23

整个过程只需要两块芯片就可以读取所有的数据。回首往事,我不知道当年脑海中奇妙的想法是如何涌出的。我只是在观察问题出在哪里,做这项工作的最小零件数量是多少,而不是它曾经 …… 因为我以前不知道这是怎么做的。我有一个名叫 Randy Wigginton 的高中生程序员,那些日子一直在协助我工作。当我完成了全部的工作以后,不禁说道:“为什么他们卖给 Altair 和 S-100 这些计算机的电路板体型都这么大?”

00:17:51

我拿出来一样东西,我想那是 North Star 的 8 英寸软盘什么的。我看了看他们的电路板,上面有 50 个芯片。而我的只有 8 个,我可以控制两个软盘驱动器,并且正常工作。我们在展会上介绍了它。我去了拉斯维加斯,我要教我的高中朋友 Randy 玩骰子,他还赢了我 35 美元。这是一个很大而且重要的区别,因为对于用户而言,能够运行程序是一个巨大的进步。

00:18:21 – Saron Yitbarek

在第 6 集中,我们了解了新一代的创客,即开源硬件运动背后的人们。这一运动被比作“自制计算机俱乐部”以及当时进行的所有合作与创新。我们问沃兹,他对硬件领域再次产生的创造力和开放性有何看法。

00:18:44 – 史蒂夫·沃兹尼亚克

是的,我也是这样认为。你应该总是制作一些东西,并且分享你所拥有的东西,让别人能够运用他们自己的技能和经验对它加以拓展,做出比你原先想象的更新颖的事情,并将其应用到世界上不同的领域中,而不仅仅是一个你所理解那个小小的应用。我完全赞成。现在很多嵌入式处理器,有人做了这样的微处理器,实际上更像是制造了一张名片,它的厚度薄到像是上面只有一块扁平芯片的名片。你应该不知道,它还可以插入 USB 接口中。他花 2 美元建造了一台完整的 Linux 计算机。

00:19:17

这些太令人兴奋了。我做了一个小的 PDP-8 套件,他们称之为 PiDP-8。树莓派是计算机,而这个套件有旧式 PDP-8 小型计算机所有的灯和开关,它还可以运行当时的一些 PDP-8 程序。PDP-8 最大内存只有 4K,这就是你如何让它与其他东西连接的方式。现在的处理器是树莓派里面的软件。你现在可以把树莓派与传感器和输出设备连接起来,人们就会想要进行实验和探索。

00:19:52

回到构建某些复古计算机的过程中,肯定会教你如何将硬件连接到硬件,如何将其连接,以及如何使用它来做更多的事情。我能做什么还没做的事情?可能有点不同。这就是我喜欢的。独立的人,往往是学生。我想要学习,想尝试一些对生活没有任何价值的东西。我回顾这一系列的项目,可能有 10 或 15 个项目,没有任何价值。它们当时只是我觉得有趣的事情:“也许我可以做这个,我会尝试把这个放在一起,我会把这个构建起来。”如果你知道芯片的内部的构造方式,就可以弄清整个电路是如何工作的。

00:20:28 – Saron Yitbarek

作为苹果公司的创始人之一,史蒂夫·沃兹尼亚克是现代科技的象征。但是对他来说,成功与名气无关。最重要的是让他的工作被看到,而工作始于命令行。

00:20:45 – 史蒂夫·沃兹尼亚克

在我的一生中,甚至在苹果公司之前,我为公司做了很多项目,比如有史以来第一个酒店电影系统,电视台的使用一英寸磁带卷的时间码。我在做各种电路,一直以我的工程为荣。我希望其他工程师也能看到我的作品,因为一个工程师能看到普通人看不到的东西。不是它做什么,它是如何构造的。我想让他们看到它,为我的工程技能而发出惊叹。

00:21:14

最近,我获得了 IEEE 奖金。这是你一生中能得到的其他工程师对电子工程的最高认可。我的意思是,它几乎让我热泪盈眶。这就是我想要的。不是创办一家公司,不是开创一个行业,而是想以一个伟大的工程师而闻名。现在工程师们可以看到我做了什么,他们看到了它的效果,但他们不能看着我的原理图和代码说,“你是怎么写这些代码的?”

00:21:41

这是我一生中获得的最有意义的奖项之一。因为那是我一直想要的,没有人知道。每个人都认为,“哦,我的第一台电脑是 Apple II ,我在上面做这个做那个,在学校里运行这些程序,哇,是你设计了它!”那很酷。但他们不是从工程的角度来看的。

00:21:58 – Saron Yitbarek

谢谢你,史蒂夫·沃兹尼亚克,感谢你参加我们的《代码英雄》访谈。在这一季结束之前,我想请一位特别嘉宾来告诉大家第五季的情况。

00:22:10 – Clive Thompson

我是克莱夫·汤普森Clive Thompson,《程序员Coders》一书的作者。在第五季中,我将会是 Saron 旁边的嘉宾,讲述开发者的职业生涯。不要错过它。

00:22:21 – Saron Yitbarek

《代码英雄》是红帽的原创播客。请访问 redhat.com/commandlineheroes 来看看我们对你在上一季听到的硬件的所有出色研究。我是 Saron Yitbarek,

00:22:34 – 史蒂夫·沃兹尼亚克

我是史蒂夫·沃兹尼亚克。生命不息,编码不止。


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

作者:Red Hat 选题:bestony 译者:xiao-song-123 校对:pityonline, wxy

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

转自 https://linux.cn/article-13900-1.html