追溯往昔:UNIX、Minix 和 Linux
专栏作家 Dave Taylor 回忆了 UNIX 的早期,以及 Linux 如何从那个种子演变和成长。
《Linux Journal》创刊二十五年了。 这也是我在该杂志发表的第 161 篇专栏文章,这意味着我参与这份出版物已经将近 14 年了。 时间都去哪儿了?
为了纪念本期杂志的历史意义,我想分享一些我对 UNIX、Minix 和 Linux 非常早期的记忆。 如果您是我的专栏的常客,您会记得我正在开发一个邮件合并 Bash 实用程序,但这只能等到下次了。 我保证,shell 在这段时间内不会消失!
追溯往昔1980 年末,我第一次踏入加州大学圣地亚哥分校的校园,当时我申报的专业是计算机科学。 那时,我们计算机科学专业的很多课程都是基于 Apple II 系统上的 UCSD Pascal。 我仍然对软盘驱动器和那些笨拙的、像素化的——但非常有趣!——我们在实验室时间玩的 Apple II 游戏有着美好的回忆。
然而,对于更严肃的课程,我们有一些大型主机——一台带有账户的大型计算机和远程计算机实验室终端,设置在指定的房间里。 这些系统上的操作系统是什么? UNIX——我猜是早期版本的 BSD UNIX。 它具有使用调制解调器到调制解调器连接的网络,称为 UNIX 到 UNIX 复制协议,或 UUCP。 如果你想给某人发送电子邮件,你使用的地址是
unique-hostname ! unique-hostname ! account
我不记得我的 UCSD 电子邮件地址了,但几年后,我成为了主要 UUCP 中心 hplabs 的管理团队的一员,我的电子邮件地址很简单,就是 hplabs!taylor。
在某个时候,网络随着 TCP/IP 实现了飞跃(我们进行了 TCP/IP “烘焙赛” 来测试互操作性)。 一旦我们有了多对多的连接,很明显 “bang” 符号变得不可用且不必要地复杂。 我们不想担心路由,只关心目的地。 输入 “@” 符号。 我变成了 taylor@hplabs.com。
与此同时,UNIX 不断发展,来自麻省理工学院的 X Window System 作为 UNIX 命令行之上的 UI 层而普及。 事实上,X 是我在施乐帕洛阿尔托研究中心首次看到的窗口系统的公共领域实现。 PARC 的计算机在屏幕上同时显示多个程序在 “窗口” 中,并且有一个指针设备用于控制它们——太酷了。 Doug Englebart 也受到了启发; 他回到斯坦福研究所,发明了鼠标,使控制这些窗口变得更容易。 在苹果公司,他们也看到了 PARC 正在创造的东西,并受到启发创造了带有所有窗口优点的 Macintosh。
尽管如此,谁不喜欢 Ritchie 和 Kernighan 在 UNIX 早期最初设计的命令行呢? (顺便说一句,UNIX 这个词是对之前名为 Multics 的多用户操作系统的文字游戏,但那是另一个故事。)
谁拥有 IP?UNIX 的问题是知识产权所有权的旧软件难题。 UNIX 来自 AT&T 的贝尔实验室,因此 AT&T 拥有 UNIX。 我们学术界人士对此不太兴奋,因此 UC 伯克利计算机科学研究小组替换了一些部分。 他们发布了 BSD UNIX。 AT&T 因此提起了著名的诉讼,因此 CSRG 从头开始进行了完全彻底的重写。 我对 BSD 4.3 的自豪贡献(除了我流行的 Elm 电子邮件程序)是重写了Hunt the Wumpus。 是的,我就是那个人。
在这一切发生的同时,BSD 重新实现 UNIX 被证明对世界各地的人们都具有启发性,包括 Andrew S. Tanenbaum,他拼凑出了一个名为 MINIX 的东西,作为他的操作系统设计与实现一书的教学工具。 一位玩过 MINIX 并受到进一步启发的人是一位名叫 Linus Torvalds 的芬兰开发者,你猜对了。
与此同时,知识产权世界继续混淆商业方面的水域。 Sun Microsystems 和 Digital Equipment Corporation 是两家试图跨越专有商业开发和为了行业利益的公共领域软件之间界限的公司。 但是软件版权至今仍然困扰着我们,因此毫不奇怪,它是 Linux 演进过程中火上浇油的燃料——有时甚至是火本身。
从软件版权的混乱中衍生出了另一位色彩鲜明的人物:Richard Stallman。 他讨厌私有公司软件所有权和自由软件之间的混淆。 在数字世界的许多其他人的帮助下,Stallman 开始构建 GNU(字面意思是 GNU 不是 UNIX),并且在此过程中,他创建了自由软件基金会。
自由软件基金会最终负责构建 Linux 和现代 UNIX 系统的许多构建块,特别是编译器。 其中一个结果是 GNU/Linux(即带有 GNU 实用程序的 Linux)。 有一段时间,它被称为 Lignux,真是令人震惊。
由于现在没有 Linux 的 GNU 没有太大的帮助,它基本上已经被吸收到核心 Linux 中,并且几乎每个 Linux 发行版都包含 GNU 实用程序或 GNU 版本的常见 UNIX 衍生工具。 如果您好奇,请检查您系统上的 find
、cc
和 grep
,看看您是否拥有 GNU 版本。
我? 嗯,Hunt the Wumpus 很有趣,但每个人都对将我的 Elm 邮件系统包含在他们的 UNIX/Linux 版本中感兴趣,我记得参加了 USENIX 会议上最早的一些 FSF 会议。 我们基本上只是争论 IP 权利和 GNU 通用公共许可证(Copyleft)的细微之处。 我反对将其应用于我的软件,因为如果其他人要出售我的软件或从中获利,我认为我应该从中分一杯羹才是公平的。 这就是为什么从来没有 GNU Elm 的原因,如果您好奇的话。
哦,还有那些 USENIX 会议。 USENIX 是 UNIX 程序员和用户的专业组织(在很大程度上早于 Linux),我非常确定我们没有人知道我们正在创造什么。 我记得当时和 Larry Wall、Eric Allman、Bill Joy 以及大多数其他开发人员一起闲逛。 我们只是一群书呆子——有点像书呆子的复仇,但至少在当时,没有复仇部分!
我们 UNIX 人一直在听说 Linux 这件事,但说实话,普遍的态度是不屑一顾。 UNIX 非常庞大且难以复制,而且一群在地下室的孩子不可能公正地对待贝尔实验室和加州大学伯克利分校 CSRG 的非凡工作。 哦,我们是多么的错误。
随机历史记录:Linus 实际上想将他的 UNIX 版本称为 “Freax”,作为对 free 和 UNIX 的文字游戏。 幸运的是,几个月后,它改成了我们今天使用的名称——当然,这是一个更好的名称。
与此同时,即使 Linux 不断发展壮大,UNIX 也在失去客户。 一个免费的操作系统,甚至可以将破旧的旧 PC 变成体面的服务器? 它当然很受欢迎。 随着 X Window System 中不同窗口管理器的出现以及体面的图形应用程序的出现,Linux 突然可以与 Windows 和 Mac OS 竞争了。
我还记得在惠普公司时,我们讨论过昂贵的 HP 工作站,它带有我们专有的 UNIX 版本(称为 HP-UX),而客户则希望运行快速发展的 Linux。 像许多大型专有公司一样,惠普公司进入 Linux 世界的时间较晚,但该公司肯定已经弥补了这一点——这很幸运,因为许多专有 UNIX 操作系统公司此后已经倒闭和消失了。
今天,有各种各样令人眼花缭乱的 Linux 发行版,所有这些发行版的核心仍然是 UNIX。 甚至现在 Windows 和 MacOS X 都具有某种风格的 UNIX 内核,甚至提供完整的命令行。 您使用的 Bash 命令行? 那些带有神秘 “标志” 的命令? 您可以感谢 AT&T 贝尔实验室、加州大学伯克利分校计算机科学研究小组、麻省理工学院媒体实验室以及我们一大批爱好者创建了您了解和喜爱的系统。
警告:我确信在这篇回忆录中我犯了一些错误。 我对此提前道歉,但是,嘿,历史已经不是过去的那个样子了。
在我的下一篇文章中,我将 वापस 谈论 shell 脚本和编码,并且我将完成那个邮件合并程序。 我希望您喜欢这篇专栏文章,我非常欢迎任何和所有的反馈!