Unix 40 周年:革命性操作系统的过去、现在和未来

四十年前的这个夏天,一位程序员坐下来,在一个月内完成了后来成为有史以来最重要的软件之一的工作。

1969 年 8 月,AT&T 子公司贝尔实验室的程序员肯·汤普森 (Ken Thompson) 将妻子和年幼的儿子长达一个月的离开视为将他的新操作系统想法付诸实践的机会。他用汇编语言为一台软弱的数字设备公司 (DEC) PDP-7 小型机编写了 Unix 的第一个版本,在操作系统、外壳、编辑器和汇编器上各花费了一周的时间。

自从今年早些时候贝尔实验室退出了一个陷入困境的项目,该项目旨在开发一种名为“多路系统(多路复用信息和计算服务)。他们不想坚持使用当时占主导地位的任何批处理操作系统,也不想重新发明 Multics,因为他们认为 Multics 怪诞且笨重。

在讨论了一些关于新系统的想法后,Thompson 编写了 Unix 的第一个版本,两人将在接下来的几年中在同事 Doug McIlroy、Joe Ossanna 和 Rudd Canaday 的帮助下继续开发该版本。 Multics 的一些原则被延续到了他们的新操作系统中,但当时(如果不是现在)Unix 的美妙之处在于其“少即是多”的理念。

“一个强大的交互式操作系统不需要昂贵的设备或人力,”五年后,里奇和汤普森在ACM 通讯(CACM),计算机协会的期刊。 “[我们希望]Unix 用户会发现该系统最重要的特征是它的简单、优雅和易用性。”

显然他们做到了。 Unix 将继续成为 IT 的基石,广泛部署在大学、政府机构和企业中运行服务器和工作站。它的影响力甚至比其实际部署还要广泛,正如 ACM 在 1983 年授予 Thompson 和 Ritchie 最高奖项——AM 图灵奖以表彰其对 IT 的贡献时所指出的那样:“Unix 系统的模型引导了一代软件设计人员思考编程的新方式。”

早期步骤

Thompson 和 Ritchie 在 Unix 的早期。

当然,Unix 的成功并不是一蹴而就的。 1971 年,它被移植到 PDP-11 小型机上,这是一个比它最初编写的 PDP-7 更强大的平台。添加了文本格式化和文本编辑程序,并将其推广给贝尔实验室专利部门的几位打字员,这是开发团队之外的第一批用户。

1972年,Ritchie编写了高级C编程语言(基于Thompson早期的B语言);随后,Thompson 用 C 语言重写了 Unix,大大提高了操作系统在计算环境中的可移植性。在此过程中,它被命名为 Unics(统一信息和计算服务),这是 Multics 的变形。这个拼写很快就变成了 Unix。

是时候传播这个消息了。里奇和汤普森 1974 年 7 月CACM文章“UNIX 分时系统”席卷了 IT 界。在那之前,Unix 一直仅限于贝尔实验室的少数用户。但现在有了计算机协会的支持——一位编辑称之为“优雅”——Unix 正处于一个转折点。

“这CACM文章产生了巨大的影响,”IT 历史学家 Peter Salus 在他的书中写道守护进程、Gnu 和企鹅。 “很快,Ken 就收到了大量对 Unix 的请求。”

黑客的天堂

汤普森和里奇是完美的“黑客”,这个词指的是那些将非凡的创造力、蛮力智慧和夜宵结合起来解决其他人几乎不知道存在的软件问题的人。

他们的方法以及他们编写的代码极大地吸引了大学的程序员,以及后来没有 IBM、惠普或微软那样巨额预算的初创公司的程序员。 Unix 是其他黑客所希望的一切,比如加州大学的 Bill Joy、卡内基梅隆大学的 Rick Rashid 和后来贝尔实验室的 David Korn。

“几乎从一开始,该系统就能够并且确实能够自我维护,”汤普森和里奇在CACM文章。 “由于所有源程序始终可用且易于在线修改,因此当其他人发明、发现或建议新想法时,我们愿意修改和重写系统及其软件。”

科恩如今是 AT&T 院士,20 世纪 70 年代曾在贝尔实验室担任程序员。 “Unix 的标志之一是可以编写工具,并且可以用更好的工具来取代它们,”他回忆道。 “这不是一个你必须购买所有东西的庞然大物;你实际上可以开发更好的版本。”他开发了颇具影响力的 Korn shell,本质上是一种指导 Unix 操作的编程语言,现在作为开源软件提供。

作家兼技术历史学家 Salus 回忆起 20 世纪 70 年代,作为多伦多大学教授,他在 IBM System/360 大型机上使用编程语言 APL 的经历。进展并不顺利。但 1978 年圣诞节后的第二天,哥伦比亚大学的一位朋友给他演示了在小型计算机上运行的 Unix。 “我说,‘天啊’,我就彻底皈依了,”萨卢斯说。

他说 Unix 对他来说的主要优势是 1973 年推出的“管道”功能,该功能可以轻松地将一个程序的输出传递到另一个程序。管道概念由贝尔实验室的 McIlroy 发明,随后被许多操作系统复制,包括所有 Unix 变体、Linux、DOS 和 Windows。

Unix 的另一个优点(第二个“哇”,正如 Salus 所说)是它不需要价值数百万美元的大型机来运行。它是为小型且原始的 DEC PDP-7 小型计算机编写的,因为这是 Thompson 和 Ritchie 在 1969 年所能接触到的所有东西。“PDP-7 几乎什么都做不了,”Salus 回忆道。 “我被迷住了。”

许多其他人也被迷住了。大学研究人员纷纷采用Unix,因为它相对简单且易于修改,对资源要求不高,而且源代码基本上是免费的。 Sun Microsystems 等初创公司以及 Multiflow Computer 等许多现已解散的专门从事科学计算的公司出于同样的原因选择了它的操作系统。

Unix的后代

Unix 是作为一个非专有系统成长起来的,因为 1956 年 AT&T 受到联邦同意令的禁止,不得偏离其提供电话服务的使命。开发软件是可以的,甚至可以以“合理”的费用获得软件许可,但该公司被禁止进入计算机业务。

Unix 的开发并没有受到管理层的鼓励,AT&T 最初将其视为一种介于好奇心和法律难题之间的东西。

然后,在 20 世纪 70 年代末,AT&T 意识到它手上有一些具有商业重要性的东西。其律师开始对 1956 年的同意令采取更有利的解释,同时寻找保护 Unix 作为商业秘密的方法。从 1979 年开始,随着版本 7 的发布,Unix 许可证禁止大学在其课程中使用 Unix 源代码。

阿姆斯特丹自由大学计算机科学教授 Andrew Tanenbaum 一直在使用 Unix V6,他说,没问题。 1987 年,他编写了一个在课堂上使用的 Unix 克隆版本,创建了在 Intel 80286 微处理器上运行的开源 Minix 操作系统。

“Minix 融合了 Unix 的所有思想,这是一项出色的工作,”Salus 说。 “只有一个主要的程序员,一个深刻理解操作系统内部结构的人,才能做到这一点。” Minix 将成为 Linus Torvalds 1991 年创建 Linux 的起点——即使不完全是 Unix 的克隆,也肯定是与 Unix 相似的。

回溯到大约十年前,Bill Joy 是 70 年代加州大学伯克利分校的研究生和程序员,他从贝尔实验室获得了一份 Unix,他认为这是他自己在 Pascal 编译器和文本编辑器方面的工作的良好平台。

他和 Berkeley 的其他人进行的修改和扩展产生了 Unix 的第二个主要分支,称为 Berkeley Software Distribution (BSD) Unix。 1978 年 3 月,Joy 发行了 1BSD 的副本,售价 50 美元。

因此,到 1980 年,Unix 出现了两条主要系列,一条来自伯克利,一条来自 AT&T,后来的 Unix 战争就这样拉开了序幕。好消息是,任何地方的软件开发人员都可以获得 Unix 源代码,并根据自己的需求和想法进行定制。坏消息是他们就是这样做的。 Unix 激增,并且变体也出现了分歧。

1982 年,Joy 与他人共同创立了 Sun Microsystems,并提供了一个名为 Sun-1 的工作站,运行名为 SunOS 的 BSD 版本。 (Solaris 大约在十年后问世。)第二年,AT&T 发布了 Unix System V 的第一个版本,这是一个影响巨大的操作系统,后来成为 IBM 的 AIX 和惠普的 HP-UX 的基础。

Unix 家族树。信用:橡皮头1(抄送-sa-3.0,GFDL

Unix 战争

在 80 年代中期,包括联邦政府在内的用户抱怨说,虽然 Unix 理论上是一个单一的、可移植的操作系统,但事实上它根本不是。供应商口头上回应了投诉,但夜以继日地努力通过定制的 Unix 功能和 API 来锁定客户。

1987 年,当时隶属于贝尔实验室的 Unix 系统实验室开始与 Sun 合作开发一个系统,该系统将统一两个主要的 Unix 分支。他们合作的产品称为 Unix System V Release 4.0,于两年后发布,结合了 System V Release 3、BSD、SunOS 和 Microsoft Xenix 的功能。

其他 Unix 供应商害怕 AT&T/Sun 联盟。各方组成了相互竞争的“标准”机构,名称包括 X/Open、开放软件基金会、Unix International 和 Corporation for Open Systems。这些团体的论点、反驳和成就可以写满一本书,但他们都声称通往统一 Unix 的大道,同时互相攻击。

在 1988 年为国防高级研究计划局 (DARPA) 撰写的一篇未发表的论文中,著名的小型计算机先驱戈登·贝尔 (Gordon Bell) 对于刚刚成立的开放软件基金会,其中包括 IBM、HP、DEC 和其他反对 AT&T/Sun 合作伙伴关系的公司:“OSF 是 Unix 穷人进入不断发展的市场的一种方式,同时保持他们的高利润代码博物馆。”

Unix 战争未能解决分歧或为操作系统设定真正的标准。但在 1993 年,Unix 社区收到了来自 Microsoft 的警钟,Windows NT 是一种企业级 32 位多处理操作系统。专有的 NT 直接针对 Unix,旨在将 Microsoft 的桌面霸权扩展到数据中心和 Sun 服务器等公司拥有的其他地方。

微软用户鼓掌。 Unix 供应商惊慌失措。所有主要的 Unix 竞争对手联合起来发起了一项名为“通用开放软件环境,第二年,AT&T/Sun 支持的 Unix International 组织与开放软件基金会合并,或多或少地放下了武器。那个联盟演变成了今天的联盟公开组,Unix 系统的验证者和所有者单一 Unix 规范,现在是“Unix”的官方定义。

实际上,考虑到供应商的竞争习惯,这些发展可能会尽可能地“标准化”Unix。但它们可能来得太晚了,无法阻止 Linux 的浪潮,Linux 是一种从 Tanenbaum 教授的 Minix 中发展而来的开源操作系统。

Unix 的未来

最近的一项研究表明,Unix 竞争版本之间持续缺乏完整的可移植性,以及 Linux 和 Windows 在 x86 商用处理器上的成本优势,将促使 IT 组织从 Unix 迁移出去。Gartner 集团的民意调查

2009 年 2 月发布的民意调查报告称:“结果再次证明了人们对 Linux 作为主机服务器平台的持续热情,Windows 也同样在增长,而 Unix 将经历长期但逐渐的衰退。”

“Unix 有着悠久而充满活力的过去,虽然它不会消失,但它将面临越来越大的压力,”Gartner 分析师 George Weiss 表示。 “Linux 是战略性的‘Unix’选择。”他表示,尽管 Linux 没有 Unix 那样的长期开发、调优和压力测试传统,但它在性能、可靠性和可扩展性方面正在接近并将很快与 Unix 相媲美。

但一个这表明任何从 Unix 的迁移都不会很快发生。在对 211 名 IT 经理中的 130 名 Unix 用户进行的调查中,90% 的人表示他们的公司“非常或极其依赖”Unix。略多于一半的人表示,“Unix 对我们来说是一个重要的平台,并将无限期地保持下去”,只有 12% 的人表示,“我们预计将来会放弃 Unix。”主要通过服务器整合来节省成本被认为是迁移的首要原因。

Weiss 表示,由于硬件成本优势,向商用 x86 处理器的迁移将会加速。 “水平、可扩展的架构、集群、云计算、x86 上的虚拟化——当你结合所有这些趋势时,首选操作系统就是 Linux 和 Windows,”他说。

“例如,”Weiss 说,“思科最近宣布其统一计算架构,您在结构中拥有网络、存储、计算和内存链接,并且不需要 Unix。您可以在 x86 上运行 Linux 或 Windows。因此,英特尔正在代表 Linux 战胜 Unix 的战争。”

Open Group 是单一 Unix 规范的拥有者和 Unix 系统的认证者,它对 Linux 几乎没有做出任何让步,并称 Unix 是“关键任务应用程序的高端功能、可扩展性和性能”的首选系统。它说,Linux 往往是较小、不太关键的应用程序的标准。

AT&T 的 Korn 是仍然看好 Unix 的人之一。 Korn 表示,从 1973 年添加管道开始,多年来 Unix 的优势在于它可以轻松地分解成碎片并进行分发。这将推动 Unix 向前发展,他说:“[管道]哲学在云计算中运作良好,您可以构建小的可重用部件,而不是一个大型的整体应用程序。”

Unix 的遗产

不管 Unix 的最终命运如何,这个 40 年前诞生于贝尔实验室的操作系统已经建立了一个可能持续数十年的遗产。它可以说是一长串流行软件的出身,包括 IBM、HP 和 Sun 的 Unix 产品、Apple 的 Mac OS X 和 Linux。它还影响了几乎没有直接根源于 Unix 的系统,例如 Microsoft 的 Windows NT 以及 IBM 和 Microsoft 版本的 DOS。

Unix 为许多初创公司提供了一个低成本的构建平台,从而使其取得了成功。它是互联网的核心构建模块,也是当今电信系统的核心。它催生了许多重要的架构思想,例如流水线,而 Unix 衍生品 Mach 对科学、分布式和多处理器计算做出了巨大贡献。

ACM 在 1983 年为纪念 Thompson 和 Ritchie 的 Unix 工作而颁发的图灵奖颁奖典礼上说得最好:“Unix 系统的天才在于它的框架,它使程序员能够站在其他人的工作之上。”

下一个:

加里·安西斯是前计算机世界国家通讯员。