"One half of the world must sweat and goarn that
the other half may dream."
----Henry Wadworth Longfellow
UNIX的历史展现了许多关于UNIX哲学的内容。从她为什么流行至今,到她为什么有
如此古怪的许可证制度,我们沿着UNIX走向成熟的道路讲述这段历史,研究UNIX
哲学及其演变过程。
1.1 创世之初
我们先谈谈UNIX的创世之初,有两点需要牢牢把握:
1) 虽然UNIX的许多部分和其实现过程是创造性的,但其几个重要的思想都可以追溯
到早期的操作系统发展,并且
2) 如果不是Ken Thompson,如果不是他心灵手巧,擅长摆弄当时那些身边触手可及
的工具,UNIX是不可能被写出来的。
那是1968年,Ken Thompson和同在贝尔实验室计算机研究小组的同事们一起进行关
于MULTICS项目的研究工作。MULTICS是一个误入歧途而又辉煌灿烂的计算系统。她提
供了非常复杂的功能,同时消耗大量的计算资源。她太大而且太慢,研究人员们不
得不一开始就缩减其初始设,进行简化实现。
尽管如此,几个可工作的MULTICS实现还是完成了,提供了非常好的计算环境。在贝
尔实验室的那个是在一台模拟GE635的GE645上完成的。系统提供分时服务,但她主
要是面向批处理的,其环境笨拙且不友好。Ken和他的伙伴们(特别是Dennis Ritchie
和Joseph Ossanna)不想放弃MULTICS提供的舒适环境,于是他们开始向AT&T的管理
部门游说,希望能获得一个交互式平台,诸如DEC-10,并在其上建造他们自己的操
作系统。
DEC-10是DEC公司(Digtal Equipment Corp.)推出的一系列机种的一种。该机有一个
非常灵活的交互式分时系统。很不幸,与那个时代的许多分时平台一样,DEC-10非
常昂贵。
我们应该庆幸,Ken的请求被拒绝了。这样的情性又发生了几次,这对Ken来说是太
不幸了。由于MULTICS的失败,AT&T管理当局被Ken的计划打动,他们也没有兴趣来
投资另一个仅仅是在不同的硬件上设计一个看起来与MULTICS一样的操作系统。
与此同时,Ken对一个成为星际旅行的游戏非常有兴趣。该程序模拟太阳系的几个主
要的星体和一艘可在不同对方着陆的飞船。Ken将其安装在GE系统上,GE系统忽快忽
慢的响应时间是Ken大为失望。而且根据后来Dennis的说法,在GE系统上运行一次该
游戏需要75美元,太贵了。Ken和Dennis后来找到了现在非常有名的"little-used
PDP-7 sitting in a corner",他们用GE系统生成了可在该机器运行的程序代码。
UNIX演义(二)
1.2 创世
有了星际旅行,Ken有了正当的理由去实现他曾在MULTICS计划中设计和模拟的理论
上的文件系统。很自然,一台有用的机器需要的不仅仅是一个文件系统。Ken和他
的朋友还完成了第一个命令解释器(或Shell)和一些简单的文件处理工具。开始时,
他们用GE系统来为PDP-7进行交叉编译。很快,他们写好了汇编器(assembler),系
统已经开始自支持了。
这时的系统已经有了象UNIX了(如用fork()来支持多任务)。文件系统与现在的文件
系统相对相似。它使用i-节点,而且有特殊的文件类型来支持目录和设备。那台
PDP-7可同时支持二个用户。
MULTICS其实是代表"MULTiplexed Information and Computing System"。1970年,
Brian Kernighan开玩笑称Ken的系统为"UNICS",代表"UNiplexed Information
and Computinig System",毕竟与Ken的系统相比,MULTICS过于庞大了。(某些人
称MULTICS代表"Many Unnecessarily Large Tables In Core Simultaneously"
而UNIX则是裁剪了的MULTICS。不久,UNICS变成了UNIX而且被流传下来。
计算机研究小组并不对PDP-7十分满意。其一是它是借来的一台机器,更主要的是它
能力有限,不太可能提供计算服务。于是小组再次提交申请,这回是一台PDP-11/20
来研究文字处理。该申请与前一次的显著的区别是PDP-10的价格只是DEC-10的凤毛
麟角。由于这次的申请十分具体,一个文字处理系统,AT&T的管理当局宽宏大量为他
们购买了PDP-11。
1970年UNIX被移植到PDP-11/20上。那可不是一件轻而易举的事,整个系统全是用
汇编写的啊!小组又将汇编写的roff(又称为runoff,troff的前身)从PDP-7移植到
PDP-11上。再加上一个编辑器就足以称为一个文字处理系统了。
与此同时,贝尔实验室的专利局正在寻找一个文字处理系统。他们选择了计算机研究
小组的基于UNIX系统的PDP-11/20。贝尔实验室专利局成了UNIX的首家商业用户。
这第一个系统有几点是很值得注意的。跑UNIX的PDP-11/20没有存储保护。它仅有
一个0.5Mb的磁盘。它支持同时三个用户,分别完成编辑,排版,再加上计算机研究
小组进行进一步的UNIX开发。该系统的手册被标为"First Edition",日期为1971年
11月。
现在都习惯在手册的版本后注明发行号。这样可能更清楚些,editions也可称为
versions,他们是一个意思。例如,Version 7和7th Edition是一回事。
第二版于1972年发行,增添了管道的功能。该版本还加上了除汇编之外的编程语言支
持。特别值得一提的是Ken曾试图用NB语言来重写核心。
NB是由B语言(由Ken和Dennis设计)修改而来的。B语言的前身是BCPL,BCPL(Basic
CPL)是Martin Richards于1967年在剑桥设计的。CPL(Combined Programming
Language)则是1963年伦敦大学和剑桥大学的合作项目。而CPL则颇受Algol60(1960
设计)的设计思想影响。
所有这些语言在控制结构上都和C语言相似,不过B和BCPL都是"无类型"的语言(尽管
有点用词不当),它们只支持按"字"来访问内存。NB演化为C,而C则很快称为新的
工具和应用的首选语言。
参与MULTICS(MULTICS用PL/I书写)的经验告诉Ken和Dennis,用高级语言来写系统是
合算的。由此,他们一直试图完成它。1973年,C语言加入了结构和全局变量。与此
同时,Ken和Dennis成功地用C重写了UNIX核心。Shell也被重写了。这增加系统的鲁
棒性,也使编程和调试变得容易了很多。
那时,大约有25个UNIX系统。在贝尔实验室内部成立了UNIX系统小组来进行内部维护
工作。几家大学都和贝尔实验室签定协议,获得了第四版的拷贝。协议主要是不泄露
源码,在那时还没有许可证这回事。Ken自己录制磁带,不收任何费用。第一卷磁带
由在纽约的哥伦比亚大学获得。
1974年,Ken和Dennis在Communications of the ACM上发表了论文介绍UNIX系统。
那时,Communications是计算机科学的主要刊物,那篇文章在学术界引起了广泛的兴
趣。第五版正式以"仅用于教育目的"的方式向各大学提供。价格也只是名义上够磁带
和手册的费用。第五版在许多大学用作教学。
这时Ken和Dennis仍在积极地投入UNIX的研究;然而,他们继续避免提供支持的承诺。
他们的小组被称为"Research"(或在贝尔实验室内部称为"1127")。他们的机器被命名
为research。你可以通过uucp向他们发送bug报告,打电话询问他们,甚至进他们的
办公室和他们一起讨论UNIX的问题。通常他们总能在其后的若干天内解决bug。
与research的在贝尔实验室的另一个小组被称为PWB,Programmer's Workbench。由
Rudd Canaday领导的PWB小组支持一个用于大型软件开发的UNIX版本。PWB试图向那些
并不对UNIX研究感兴趣的用户通过服务。他们做了大量的工作来强化了UNIX的核心,
包括支持更多的用户。PWB的两个非常有用的计划分别是SCCS(源码控制系统)和RJE
(使用UNIX作为实验室其它主机的前段)。PWB最终注册为PWB/UNIX1.0。
UNIX替代了越来越多的PDP-11上的DEC公司的操作系统。尽管UNIX不被支持,但她的
魅力远胜于她的问题而吸引了许多的用户。除了系统本身的许多优点外,源码是可以
获得的,而且系统从整体上也是易于理解的。进行修改和扩充很容易。这使得UNIX与
其同类的其它操作系统大不一样。
1975年,第六版UNIX系统发行了。这是第一个在贝尔实验室外广为流传的UNIX系统。
AT&T(通过West Electric Co.)开始向商业和政府用户提供许可证。
Mike Lesk发行了他的可移植C语言库。该库提供了可在任何支持C语言的机器上进行
I/O的库例程。这是用C书写可移植代码的重要的一步。Dennis后来重写了该库并称其
为标准I/O库(即所谓stdio)。
UNIX用户们首次在纽约市进行会晤,有纽约城市大学的Mel Ferentz作东。当时有40人
参加。从此以后该会议每两年举行一次,会议是极不正式的。如果你想进行演讲,你
就举手,并且讲就行了。这些会议是极好的交流bugs报告,修改和软件的方式。每个人
都带上两卷磁带参加会议,一卷是给别人的,一卷是用来录制新东西的。
Ferentz创办了一个称为UNIX News的实事通讯(newsletter)的服务,免费为用户发送消
息。后来冒出一个来自贝尔的家伙告知他不能使用UNIX的名字,于是他把它改名为
;login。随着越来越多的人想要实事通讯的服务,Ferentz不堪免费提供这些服务了。
于是创立一个组织来处理这些费用,它被称为USENIX。USENIX很快负起了其它的义务,
包括组织会议和软件的分布。
远在澳大利亚的新南威尔士大学,John Lions正在为操作系统课程准备教程。课程的
目的是UNIX实例研究,课程的笔记被出版为"A Commentary on the UNIX Operating
System"。笔记中包括了加上了Lion's注释的整个V6 UNIX核心。基本上每一行都被解释
了(包括那些被注明"无需理解(not expected to understand)的代码行")。
由于引用了大量的源码,该书的出版许可最终被撤回了。但因其已经销售,UNIX因此比
以往更易于获得。
1977年,Interactive Systems公司称为首家向最终用户出售UNIX的公司。UNIX终于成了
产品。
在同一时期有三个小组将UNIX移植到不同的机器上。Steve Johnson和Dennis Ritchie
将UNIX移植到一台Interdata 8/32机器上。澳大利亚的Wollongong大学的
Richard Miller和同事们将UNIX移植到一台Interdata 7/31上。Tom Lyon和其在普林斯
顿(Princeton)的助手们完成了到VM/370的移植。
每次移植都干的十分漂亮。具体点,所有这三台机器都与PDP-11有显著的差异。事实上
,这正是问题之所在。许多操作系统都没有被设计为能在多种机器上跑。类似地,许多
机器又为了某种特定的操作系统而设计。例如,如果硬件能完成进程之间的保护,操作
系统利用这功能就很有意义了。
随着厂家提供带有附加选项的硬件,操作系统被写成理解这些硬件的。它们为了利用这
些特殊的硬件大多是用汇编来写的。
Dennis和Ken的最大的突破在于他们清楚的认识到在效率和效用之间存在着折衷。如果你
能避免白手起家而完成移植的工作而且并不牺牲太多的性能,那么这是值得的。作这样
的决定并不困难,远在他们用C重写UNIX核心时他们已成功地使用类似的思想。如果用汇
编写,UNIX可能会更快和更小,但系统变得如此的易于修改,理解和移植,牺牲速度和
内存是值得的。
UNIX很快被移植到其它类型的PDP-11上。每个都有些很有趣的功能且不断地加大了UNIX
可支持硬件的复杂度(这些功能包括浮点处理器,可写微码,内存管理和保护,分离的
指令和数据空间等等)。
然而,PDP-11系列很明显地都是基于16位地址空间的,所有的程序都实现于64Kb的大小。
很滑稽的是这到促进了小程序的编写。有了支持合作进程的管道以及exec()之后,通过
它们将几个小的应用连接一个大的应用。这是UNIX编程的一个特点,也许我们要感谢
PDP-11有限的地址空间。
UNIX被移植到IBM的Series1小型机上(尽管有人认为这好比是将物质与反物质结合在一起
)。Series1有与PDP-11相同的字大小,但它的字节是颠倒的。因此当系统初次启动时它
打印出来的是"NUXI"而不是"UNIX"。从那时起,"NUXI"问题就成了字节顺序问题的代名词
。
1977年,加利福尼亚伯克利分校(the University of California, Berkeley)的计算机
科学系开始发行他们的Pascal解释器。其中还包括了一些新的设备驱动程序,对核心的
修改,ex编辑器,和一个比V6的Shell更好用的Shell("ascal Shell")。这就是所谓的
1BSD(1st Berkeley Software Distribution)。
UNIX演义(三)
1.3 思想
今天与UNIX相关的特地从那之后就大部分全有了。我们已谈过了她的可移植性。其它的
值得吹吹的特点有:1)一致的文件,设备和进程间I/O,2)启动异步进程的能力,3)用
其它Shell来替代默认Shell的能力,和4)层次化的文件系统。
还有些特点一样使UNIX流行,下述特点被普遍认为是绝对不容争辩的。使人惊讶的是,
70年代的许多系统并不是没有这些特点,但80年代的许多系统却抛弃了这些特点(诸如
IBM的CMS系统的flat文件系统)。
值得一提的特点是:
1) 命令和库的一致性。这使得堆积木的方法变得非常容易。因为程序员必须假设自己
的程序的输出是其它程序的输入,他们不能输出太多的空话,诸如其它系统工具中输出
的"麻点"。UNIX中大多数程序使用标准的输入和输出。
库和系统调用都似乎都提供一种做事的方法,即用最简单的方法去解决大多数问题。
这种方法一直在核心的构造中持续,UNIX的核心小得一个程序员就可以理解整个核心。
2) 主要的文件类型是文本。例如,/etc/passwd可以用一般的文本编辑器来编辑。在大
部分其它的系统上你不得不用一个特殊的工具来读写这些文件。而在UNIX中,你有了编
辑器你就可以控制每一样东西。
3) Shell可用来编程,它有着丰富的控制结构和参数传递机制。许多人不须为学C语言
而费心,因为Shell和已有的程序可以很容易的组合起来完成相同的功能。有趣的是
Shell
的控制结构(如goto,test)其实都是用独立的程序来实现的。
第六版的手册还不到300页,而且装成一卷正合适。sh的说明有三页长。
到1978底已有600多个UNIX安装。大部分是大学和政府机关。
UNIX演义(四)
1.4 1979 - 第七版
1979年UNIX的第七版发行了。Version 7包括了一个完整的K&R C编译器,它首次包括了
强制类型转换,联合和类型定义。系统还提供了一个更为复杂的Shell(称为"sh"或
"Bourne shell",取自它的作者之一,Stephen Bourne)。系统支持更大的文件。由于不
懈的努力移植的结果,核心更加鲁棒,系统有了更多的外设驱动程序。
第七版的程序员手册以达到了大约400页(仍然可以很合适地装在一卷里)。UNIX的其它
读物则成为了第二和第三卷,大约各有400页。
在贝尔实验室,John Reiser和Tom London将V7 UNIX移植到了VAX机上。这次移植称为
UNIX32V。在某种程度上,VAX是一个大一点的PDP-11,按这样的理解移植工作相对容易
些。为了让UNIX快速移植和跑得快点,VAX上的特殊硬件功能(换页)被忽略了。虽然如此
,
由于VAX比PDP-11有了相当大的地址空间(4Gb),不带换页功能的UNIX仍旧在实验室里广
为流传,且用了好一段时间。伯克利也获得了该版本并作为进一步研究的基础。
Whitesmith是第一个商业C编译器供应商。不幸的是由于在许可证问题上不够明确,C编
译器的库函数不得不故意使用不兼容的函数名和参数规范。之后,C语言的用户接口
(函数名)被裁决为不能拥有版权,现在Whitesmith的C与UNIX兼容了。
UNIX演义(五)
1.5 Politcs - 第一部分
在UNIX诞生时AT&T是一个由许多与电讯有关的公司的集合,包括Bell Telephone
Laboratories(经常称为BTL,Bell,Bell Labs,或The Labs)和Western Electric Co.
(WECo)。由于一项早期的反托拉斯法案,AT&T被禁止参加未规范的领域的商业活动。尽
管她可以基于UNIX进行研究但她不能基于UNIX去做市场。事实上不容许进入计算机软件
领域尚不明确,但似乎如果它有利可图AT&T就和那个反托拉斯法案相冲突。不管怎样,
作为商品,UNIX似乎是一个误区。很自然,管理当局是不会资助开发一个非盈利产品的。
这就是70年代Ken和Dennis所面对的情况。
处于莫雷山(Murray Hill)的贝尔实验室是整个UNIX开发的地点,Dennis和Ken就在这工
作,他们并不关心产品开发。他们有许多新奇有趣的玩意要和他们的新Baby玩呢!然而
这一切太别扭了,UNIX在实验室里如此流行,但你不能把它向外部发布。此外,没人对
UNIX的支持负直接责任。根据Tannenbaum所述:
BTL didn't really have a distribution policy in the early days, you
got a disk with a note:
Here's your rk05,Love,Dennis
If UNIX crapped on your rk05,you'd write to Dennis for author.
最终贝尔实验室屈服与发布UNIX的压力。她制定了一个简单的许可证策略:没有支持,
没有试用期,没有担保,没有广告,没有bug修改,并且先付款。
然而大量的试用UNIX的人都在贝尔实验室内部。为了支持这些项目,一个称为USG(UNIX
Support Group)的UNIX支持小组创立了。不过还是很不幸,USG只容许提供支持,绝不
能开发。这样的情况造成了,不管在贝尔实验室内外用户都在做自己的开发。而随UNIX
一起获得的源码更刺激了这种情况。USG发行了几个UNIX,它们中的大部分都只限实验
室内部使用。
与此同时,PWB正在基于UNIX的另一个版本同时提供支持和开发。此外,PWB能够既向内
部和外部同时发布软件。不言自明,这两个小组之间是多么厌倦对方。她们都认为自己
做的事是对的,而对方做的是错的。例如,PWB的Shell与USG的不同。
另一个UNIX的版本称为MERT(Multi Envrionment Real-Time)。MERT与虚拟机的概念十
分相似。UNIX(甚或是她的特殊版本)可以在其上运行,并且还可使用MERT的实时工具。
在实验室外面许多许可证获得者都选择使用PWB/UNIX或Ken和Dennis的研究版本的UNIX,
而在实验室内部则使用USG的UNIX,MERT或两者都用。(事实上还有许多的版本。例如,
LSX是一个用在LSI-11微处理机上的UNIX版本。)UNIX的多样性很是惹人烦恼。
这时的许多UNIX许可证用户都在PDP-11上安装了UNIX版本中的一个或将其移植到其它硬
件上。对大多数程序员来说在UNIX上工作使他们比在其它系统上感到更满意。这是因为:
1) UNIX自带了完整的源码和文档。她自支持。你与UNIX的开发者有着十分一致的环境。
你可以自己修改UNIX。
2) UNIX很小。你可以理解代码。大多数的算法都很简单。你修改UNIX时对自己做了什
么很清楚。
3) 没有什么要避免的担保。既然系统没有支持你就不损失什么。最坏时你不过就是拿
出你的备份磁带。而最好时你能使系统更快或加一个新功能。
4) UNIX的手册很易读。它们只有几百页,而且把它们全读了并不困难。一个人就能完
全掌握它。
几个成为UNIX温床的机构是:
. Rand,Hardvard and BBN
兰德(Rand)已经开发了第一个交互式分时系统并且很快就意识到了UNIX的价值。兰德与
BBN的Walt Bilofsky签定共同开发一个UNIX下的全屏幕编辑器。"Rand editor",这就
是第一个UNIX下的全屏幕编辑器,而且它成为第一个在实验室外部开发而又是必不可少
的程序。你可以想当然的认为在安装UNIX之后的第二步就是安装Rand editor。(说实话,
Rand editor有它自己的毛病,最可恶的是它极浪费CPU和带宽资源。)这种情况在继续。
你装上UNIX之后立即装入许多其它公共领域的工具(如,GNU Emacs,RCS,Usenet),它们
都是程序员的必备之物。甚至今天,人们也是对直接从工厂里出来的UNIX不满意。
在写兰德的编译器的那个时候兰德和BBN都没有UNIX系统。她们去哈佛租机时,哈佛有一
个Version 4系统。作为回报,哈佛可以使用Rand/BBN的改进软件。后来哈佛也开始加入
自己的改进,其中的一部分又反过来融入了Version 5。例如,Brent Byer为支持PDP-11
的分离映射而加入了分离的I/D(指令/数据)空间。
BBN继续履行合同,她后来在伯克利的UNIX开发中起了非常重要的作用。此时BBN已参加
了Arpanet计划(Arpanet是为美国国防部(DoD)开发的网络)。BBN利用她们的经验赋予
UNIX使用DoD协议来通讯的能力。这些工作后来在伯克利得到改进并捆绑在伯克利的软件
发布中。结果使用伯克利UNIX的公司都可以免费地进行网络互连。这导致了早期UNIX与
网络的亲密关系。
. Lawrence Berkeley Laboratory - 虚拟操作系统和软件工具计划
在丹尼斯山(Dennis Hill)的劳仑斯实验室里,Deborah Scherrer和Joe Sventek拜读了
有Brian Kernighan和P.J.Plauger合著的软件工具"Software Tools"一书,他们觉得次
书很有价值。他们实现了书中的所有工具,包括一个Shell。更有趣的事他们并没有在一
台跑UNIX的机器上实现了它们。
为了可移植所有的源码都是用Fortran66写的,Fortran66是当时在几乎所有的机器都能得
到的唯一语言。Fortran不适于系统编程,不久Ratfor("Retional Fortran")诞生了。
Ratfor试图用C语言的许多特点(如,控制流结构)来改进Fortran。Ratfor被实现为一个预
处理器,输入Ratfor代码产生Fortran代码。Fortran代码可由任何Fortran编译器来编译。
这样任何人都可以最小的代价在自己的机器上安装软件工具。
他们花了不多的时间就完成将Kernighan和Plauger的工具移植到其它几个操作系统的任务。
同时,他们也掌握了对不同机器的抽象什么是有效的什么不是。在1979年,随着软件工具
计划被认同,她与USENIX(最大的面向技术的用户组)联合举办了会议。他们的许多抽象都
与UNIX很相似,许多人都看好软件工具计划,并希望通过她来将UNIX引入他们已有的机器。
在会议之后又有许多的移植完成了,不久一份关于虚拟操作系统(VOS)的规范出台了。VOS
定义了一个软件工具可以栖身其上的逻辑层。如果一台机器可以支持VOS它就可以支持这
些工具。尽管VOS的某些抽象在某些机器上很难实现,一个非常好的易于移植的开发环境
--软件工具成形。
成就的一个例子就是软件工具支持进程间的管道--甚至是许多根本不提供进程间通讯和多
任务的系统都可以。怎么实现的呢?工具使用临时文件来模拟管道。并发并不是必要的。
它可由程序链来模拟。但最终的结果是一样的,用户最终得到与UNIX工具模式一样的结果。
VOS环境非常成功,至今我们还在用。VOS将UNIX的许多好的想法或思想带到了其它的操作
系统中。很多厂商都将VOS的一部分集成到他们自己的操作系统中。原始的VOS的源码是公
开的。
. 伯克利(Berkeley)
从很早以来加州大学伯克利分校计算机科学系(又称"伯克利"或"伯斯克利")就和UNIX打交
道。他们的许多工作就被发布到许多其他单位。1979间Ken曾在伯克利教授操作系统。在
他逗留期间他将UNIX移植到了PDP-11/70上,这是一台可以支持多用户的机器。他的演讲
和工作促使了许多学生参加到UNIX的开发中。
在同一时期,DARPA(DoD's Advanced Research Projects Agency)正在为进行AI,VLSI和
计算机视觉的研究寻找一个通用的计算环境,减少经费和方便开发当然也是追求目标。
UNIX的小巧灵活和业已证明的可移植性使其成为一个不错的候选对象。美中不足的是她缺
少网络、虚存和灵活的进程间通信机制。UNIX的主要竞争对手是VMS,她是由DEC公司为其
VAX系列开发的。VAX被认为是无可挑剔的,它是首款超级小型机,它提供对VMS虚存的支
持。
PDP-11系列在学术界是极受推崇的,许多人对DEC非常满意。然而VMS有不少缺点。DARPA
及其关注DEC公司是否能为他们提出的改动负责。毕竟那是个专用系统。最后他们选中了
UNIX。
DARPA寻求某个单位为进行他们的UNIX开发计划。除了伯克利,CMU(卡耐基梅隆大学)和
BBN公司也是重点考虑的对象。那时伯克利的Bill Joy已在为支持VAX上的换页机制而修改
核心了。伯克利最终成为主要的实现单位,同时贝尔实验室,CMU,MIT,Stanford和BBN
的代表组成DARPA指导委员会统观整个开发计划。这些机构的工作对伯克利的UNIX设计是
非常之重要的。
贝尔实验室答应伯克利,如果客户有从贝尔实验室得到的源码许可证,伯克利就可向他们
分布伯克利的源码。也就是说,如果你想获得伯克利的发布,你必须从贝尔实验室获得相
应的源码许可证。由于贝尔实验室有一大捆发布,为了获得相应的伯克利发布许可证不得
不更换好几次。
起先,伯克利并不重写UNIX,他们仅在一个称为32V的版本上做些功能的改动和增强。32V
是32位VAX上的UNIX。移植工作是有贝尔实验室的研究人员完成的。为简单起见,他们只
把VAX当作一台大的PDP-11来看,忽略了被称为"虚存"的机制。伯克利的研究人员不久就将
虚存加入到UNIX中,该系统称为3BSD(和1980年的4BSD)。VAX可以使程序访问多达1Gb的地
址空间,而物理存储才仅1Mb。
虚存对用户来说是无法抗拒。由于32V不支持虚存,贝尔实验室外的用户均采用伯克利的
UNIX。凭借这一系统伯克利的扩充广为人知,且被认为是UNIX的一个里程碑。特别值得一
提的是,C Shell,curses,termcap,vi和作业控制又被Version 7(以及后来的System
III)融入,现在在非纯贝尔实验室的发布中不难找到这些功能。这些程序被称为伯克利
扩充,如"我们的系统运行System III外加伯克利扩充。"更新一些的伯克利扩充(来自
4.2BSD)包括网络(DARPA Internet)支持和自动核心配置。
伯克利向UNIX中加入了许多很有用的东西,但有一件他们不可能完成的是提供支持。大学
并不想步入商界并向客户提供支持。这毕竟只是一个研究性项目(由纳税人的钱提供基金)。
向Dennis的友善的rk05s标注一样,早期的伯克利磁带也有Bill Joy的一句提示:"这是一
盒装满了二进制位的磁带,"暗示不提供任何担保并且所以的抱怨将被定向到/dev/null。
可事实上,伯克利的研究人员对修改Bug相当负责。他们通过电子邮件来维护一个Bug清单。
他们修改了无数Bug并将其他人的修改也融入了他们的代码。最后成立了一家公司来通过
对伯克利发布的支持,她称为Mt. Xinu。他们的口号是,"We know UNIX forwards and
backwards",它就是公司名称的来历,"UNIX(tm)"倒过来就是"Xt. Xinu。"
尽管不同的BSD版本有着明显的差异,但他们的软件发行一直被称为"4.x BSD"。如果不是
大学当局强制要求向所以"客户"重新发放许可证,BSD一定会重新标注4.2为5.0的。但既然
如此,BSD的代码包括了新版的AT&T的软件,BSD就不得不这样做了。
尽管AT&T最新的几个版本有明显的变化,但AT&T似乎也一直沿用"System V"。AT&T大概花
了太多的钱来说:"UNIX System V。从AT&T开始,从现在开始,把她当作标准吧。"换个
名字似乎是没有意义的事。AT&T将推出她的新的"主打"版本(即UNIX System V Release
4.0)。
. DEC(Digital Equipment Corporation,数字设备公司)
DEC一直处于非常尴尬的位置。所有的早期UNIX用户都在DEC的硬件平台(PDP-11和VAX)上
运行UNIX。然而DEC并不对UNIX提供支持。这对于硬件类的bug来说是个非常严重的问题。
常常都是DEC的检测程序和DEC自己的操作系统运行正常,但UNIX却不能。你得靠自己。
不管怎样DEC内部总有一伙人对UNIX感兴趣。而且这一情况越来越明显,即UNIX在利润报告
和损失估计中越来越不可忽略。至少有一件事用户是满意的,UNIX给用户选择软件和外设的
很大自由。DEC的系统则强制你必须使用为DEC设计的软件和终端。相对而言,UNIX的限制更
少一些。
当UNIX被移植到其他机器时,DEC受了最后一击。她认识到,如果可以选择的话,用户宁愿
买可以跑他们感兴趣的操作系统的机器。DEC现在全面对UNIX(在市场上称为ULTRIX)提供支持
UNIX演义(六)
1.6 Politics - 第二部分
UNIX的源码被视为商业秘密. 如果你不签定许可证就使用UNIX的源码, UNIX就不再是什么
商业秘密了, 你也就可以无视AT&T的皇权而发售UNIX了(当然, 你可能要付给你的律师比
签许可证更多的钱来打赢官司). AT&T警惕地保护着UNIX的源码, 使它保持商业秘密的状态
.
不过AT&T已经比仅是UNIX作为教育目的走得更远了. 用于教育目的的许可证非常便宜, 学
生不必签许可证和不在乎协议就可以阅读源码. 虽然如此, 作为鉴定许可证的一方, 如果
某人"unauthorized use or distribution of the code, methods, and concepts
contained in or derived fromt the UNIX product", 你和你的公司将为此而负法律责任
.哦, UNIX的手册也在其列.
AT&T的位置很古怪, 她虽然不是软件商但却发行软件许可证. 不用问, 这许可证与其他许
可证是不同的. 早期的许可证是由Western Electric Co.发行的, AT&T的许可证发行部门
就座落在那. 现在, 许可证由AT&T直接发行.
早期的许可证是源码许可证. 你可以得到所有的为不同的PDP-11而设计的完整源码. 对商
业机构的价格是$20,000. 如果你有不只一台机器, 你必须为每台机器再购买binary许可证
.
如果你不能再把他们发售的话, $8,000可是相当昂贵的. 相反, 教育机构只需付几百美元
就可买下源码许可证, 这笔钱仅够贝尔实验室支付管理费用和购买磁带.
在这一点上, UNIX被称为"as is". 简便AT&T发行binary许可证, 他们也不自己发售它. 某
家公司想运行UNIX就必须购买至少一份源码许可证并且找一些专家. 许多公司和顾问冒出
来填补这一空缺. 第一家对UNIX提供商业支持的是于1977年成立的Interactive Systems
Corp. 她的产品称为IS/1, 运行在PDP-11系列上(当然应该是它).
在1980年, AT&T最终发行了distribution binary许可证. 根据此许可证生产的二进制代码
可由开发商向其他公司发售. 该许可证比早期的binary许可证要便宜得多--大概花费
$1,500. 首家使用该许可证的是Onyx Systems公司.
很有趣, Oynx系统是用Zilog公司的Z8000构造的, 一台微处理器. 它也是第一台基于微处
理器的UNIX系统, 如果它使用早期的许可证, 可能它的价格就很贵, 它也就不可能卖出去
了. 一年内, 又有几家公司推出了基于微处理器的UNIX系统. 价格持续在很低的$10,000
左右, 以前不得不考虑CP/M, MP/M和其他便宜的基于微处理器的系统的公司也可以购买
UNIX了.
UNIX演义(七)
1.7 UNIX的克隆们
除了UNIX许可证之外还有UNIX克隆. UNIX克隆的核心都是重写的, 但保持了系统调用级
的兼容性.
这样一来, 厂商就不必支付高额的UNIX许可证费用, 也不必在乎AT&T的怪里怪气的签订
许可证的要求. 许多厂商开始这样做, 并且非常成功.
最早的可以称得上UNIX克隆的系统是IDRIS, 由Whitesmiths公司出品. Whitesmiths公
司雇佣了几个以前在AT&T工作的人员, 为此她很担心使用AT&T的专有信息. Whitesmiths
公司认识到许多UNIX的概念其本身并非专有, 但代码是专有的. 于是他们从头到尾地重
写了UNIX的核心. 而且还有意地选用了不同的库名称, 参数顺序, 等等. 这样就简单地
避免了法律上的纠葛. Whitsmiths公司还他们正在修改UNIX设计中的欠缺. 除此之外,
AT&T似乎不太想把UNIX商品化.
AT&T最终承认, 她不可能也不应该阻止那些使用相同调用的非许可系统上市.
Whitesmiths
最终被"宽赦"了, 他更换了大部分的系统和库调用, IDRIS与AT&T的UNIX兼容了. 从此许
多厂商也加入进来并且延续到今天.
除了价格之外, 还有许多避免使用"真的"UNIX的原因. AT&T不支持她. AT&T不讨论UNIX
的发展方向和未来, 也不清除AT&T是否对UNIX负责. 价格非常高, 而且价格结构频繁变
化. 更重要的是, 厂商们想加入修改和新功能, 是否该修改大量的AT&T的源码是值得考
虑的. 最后, 厂商们认为支付费用来使用UNIX的商标是很简单的一件事. 他们致力于制
定UNIX的标准来防止使用AT&T的商标.
UNIX演义(八)
1.8 UNIX商标
一开始, UNIX是贝尔电话实验室的非注册商标. 早期人们都在论文的第一次出现的UNIX
上标注一把短剑或一个(tm)标识来注明这件事, 脚注里再加上说明. (tm)其实就是非注
册商标的意思, 而且AT&T还在早期的troff里提供了自动显示UNIX及其脚注的宏. "UNIX"
现在是注册商标了, 用(R)才是正确的. 相应的脚注也出现在第一次出现UNIX的地方, "
UNIX是AT&T的注册商标." (UNIX也是日本的一家称为Marantz的生产音响设备的公司的商
标.)
严格地说, 商标可以使持有者防止他人在市场上使用该商标. 如果你提供UNIX产品, 你
必须遵守AT&T关于该商标的条例, 你需要获得他们的允诺才能使用它. AT&T出了一本小
册子来告知任何在使用UNIX商标, 包括字体, 语法, 公司名称等等("UNIX is an
adjective, not a noun").
如果你写一般的英语文章(如本书), 你可以把AT&T的要求视为他们的癖好而置之不理.
例如, 许多人喜欢用"Unix"而不是"UNIX". 实际上, 通常按英语惯例, 只要商标的字母
不全是取自首字, 一般都是将商标的首字大写. "UNIX"并不是首字的缩写.
随着UNIX的不断发行, 她的许可证也变得越来越复杂. AT&T已依据不同的用途, 用户,
机器和不同的版本制定了一套赋予不同限制, 用途和价格的复杂的许可证制度. 例如,
UNIX对政府, 商家和教育用户的价格是不同的. 多CPU机器上的UNIX要比单CPU的贵. 并
且你可以以不同的价格来单单购买核心, 应用或全部源码.
这就是我们谈及的许可证制度, 它对你及你的律师来说太复杂了. /usr/group, 一个
UNIX用户组已经刊出了关于这方面的比较全面的文章.
UNIX演义(九)
1.9 现代史: 1980-1986
随着UNIX不断的成熟, 它的市场份额也急剧的增加. 其中的一个催化剂就是/usr/group.
/usr/group起初是USENIX的一个小组. USENIX主要关注UNIX的研究, 很少注意到UNIX的
市场潜力. 市场分析家, 银行家, 会计师和其他非技术人员都很讨厌USENIX的这种态度,
似乎USENIX总以优秀人才自比, 而且他们似乎在说, "如果你没有UNIX的源码, 也没hack
过核心, 你就不值得一谈."
在1980年初, Bob Marsh在国家会议中心举办了称为CommUNIX的会议. 由于来自商业用户
和厂商的兴趣, 在其后的一年组出了称为/usr/group的小组, 创办了称为CommUNIXations
的实事通讯和一个每半年举办一次的展销会, 称为UniForum. /usr/group的这一系列活
动都着眼于UNIX的市场, 如制定标准, 发行许可证和产品信息等等. 1981年的首张UNIX
产品目录罗列了来自100个厂家的250中UNIX产品. 在一年里, /usr/group就有了1000多
个成员.
1980到1983年间UNIX公司如雨后春笋般出现. 造成这一现象主要有两个因素. 一个是越
来越多的毕业生不想放弃他们在校园里使用了很久的舒适的UNIX环境. 另一个因素就是
有几款低价位的32位CPU的出现, 这使得设计便宜的个人UNIX工作站成为可能.
这两个因素的哪一个单独都是没有意义的. 如果没有足够的UNIX工作站, 那些学生就不
得不去使用厂家提供的专有系统而外加VOS计划的产品. 如果没有这些毕业生的话,UNIX
的厂商就不可能向那些被专有系统所包围的用户提供自己的产品.
移植者
"It is easier to port UNIX to a new machine, than an application to
a new operating system." -- Dennis Ritchie
UNIX的一个迷人之处是她的可移植性. 她是用高级系统编程语言, C, 编写的, 如底层的
机型无关. 如其他操作系统比较起来, 移植UNIX是比较容易的. 然而, 一个有经验的移
植者仍需要几个月的时间来完成这项工作. 移植是一项专业的, 短期的任务.
在80年代初, 有许多成为porting house的专业公司来把UNIX移植到新的系统上. 他们用
较少的开发代价生产了许多变化不大的UNIX系统. 随着这一时期的硬件价格急剧下落,
设计一台计算机并把它投入市场变得容易了许多.
UniSoft公司诞生与1981年, 出品了成为UniPlus+的UNIX系统. 与XENIX不同, UniPlus+
与AT&T的各版UNIX保持很好的兼容性. 估计当时UniPlus+占有市场的65%.
与此同时, SCO(The Santa Cruz Operation)作为第一家基于Intel的8086和其他微处理
器实现UNIX的公司与Micro$oft联合推出了XENIX. 今天, XENIX仍就是微机上流行的UNIX
系统. Tandy公司把大约14,000个基于XENIX的系统卖给小公司之后, XENIX推进了一大步
第二大UNIX的供销商是Altos, 在同一时期卖了大约13,000个基于XENIX的系统.
由于这些和其他porting house的贡献, UNIX已可以在多得惊人的不同平台是运行了.
1983年底, 大约有100,000个基于不同硬件的UNIX系统在运作.
由于公司和产品的不断出增长, 已经很难判断什么是UNIX, 什么不是UNIX了. 产品X可以
在厂家Y的UNIX上跑吗? 是源码级的还是二进制代码级的? 两个用户还是10个用户, 或
100个用户? 有多少个UNIX克隆? 成为UNIX克隆意味者什么?
1981年, /usr/group第一个开始了UNIX的标准化工作. 1984年该标准完成了, 但很快就
被遗忘了. 至今, UNIX的标准仍就是由AT&T, IEEE(the Institute of Electrical and
Electronics), ISO(the International Standards Organization), 美国政府的NBS
(the National Bereau of Standards)和X/OPEN(一个UNIX厂商的财团)来开发.
Stanford和SUN
斯坦福大学曾有着丰富的施乐(Xerox)的Alto系统的经验. Alto是第一个有着和现代UNIX
工作站等价物的个人工作站. 尤其是它包括了一个带鼠标的高分辨率的位图显示器, 一
个高速(3Mb/秒)的网络和足够的内存, 本地磁盘和强大的处理能力. Alto比起其他的个
人电脑来说是太贵了. (尽管做了许多经销上的努力, 估计它的价格大概达$30,000.)除
了价格外Alto代表了未来的趋势.
随着摩托罗拉的68000 CPU的推出, 斯坦福的学生们可以设计一个相对便宜的, 又有许多
Alto功能的机器了. 与Alto不同的是, 它支持多处理器, 且用来跑UNIX.
斯坦福注册了该设计, 后来称为SUN(Stanford Unverisity Network)板. Codata(第一个
申请者), Fortune, Dual, Cyb, Lucasfilm, Sun和其他十多家公司购买了许可证并稍做
改动经销运行4.1BSD或System III的UNIX克隆. 那些机器起初的价格十分诱人, $10,000.
该价格促使UNIX在那些为非常昂贵的系统所占据的市场上得以推广.
由于市场非常的拥挤, 许多公司不堪竞争而倒闭了. 今天只有几家SUN板的厂家幸存下来.
(没有一家再使用最初的原始设计, 他们都用更强大的芯片代替了已有的.)有一家公司仍
就使用她原来的名字, Sun, 并且雇佣了原SUN板的设计师之一, Andreas Bechtolsheim.
这就是称为JAWS(Just Another Workstation)的年代. UNIX产品曾一度象市场上的商品
一样, 厂商们很快就提供具有可区别于产品特点的产品. 不管怎样, 价格还是一直比较
低, 大型机和小型机的公司开始看到他们正在失去市场.
虽然象DEC, Data General, Gould, Apollo和HP这样的大公司有自己的专有系统, 但逐
渐地他们也开始销售基于自己硬件的UNIX系统. 此外, 他们开始提供UNIX工作站来在桌
面系统市场上赢得一席之地.
与此同时, 象Amdahl和Cray这样的提供大型机和超级计算机的公司也深谋远虑地开始在
他们的机器上支持UNIX环境了. UNIX似乎无处不在了.
蓝色巨人的祝福
1983年, IBM加入到基于PC的UNIX竞争中. 这在技术上是没什么可提的, 毕竟UNIX最初是
在16位的机器上实现的. 重要的是IBM的公告是UNIX的一个里程碑. 现在很难描述它有多
么重要, 但是有许多人就是不买不是IBM的出品. (IBM PC以前的微机就是一个例子.)
现在, 你很难在找到一台UNIX不支持的机器. 象IBM PC-AT这样大众化的计算机已经有了
十多个移植了. 甚至象Apple的Macintosh和Atari的ST这样的有图形用户界面的系统都有
UNIX系统.
其实原因是非常容易理解.
. 有大量的UNIX程序员, 而且他们中的大部分是直接来自于大学的
. 将UNIX移植到一个新的系统上比白手起家要容易得多
. UNIX是一个业界标准的操作系统. 她是唯一的一个不依赖硬件的
. UNIX上程序员的效率比其他系统的要高
值得一提的是, 当IBM宣布PC上的UNIX时已经有70,000部计算机运行UNIX了, 它们中的
2500在Bell System公司内部. 大约有1,300家大学有UNIX的许可证, 其中有750家是美国
或加拿大的. AT&T估计大约有100,000程序员编写UNIX软件, 有大约来自90家公司的约
300个应用程序包.
UNIX演义(十)
1.10 Politics -- Part III USG和PWB间的竞争终于停止了, 他们合并在一起. 这两个组的许多成绩都被熔融了UNIX. 合并后的小组称为USDL(UNIX System Development Laboratory)并且于1982年推出了UNIX System III. System III借鉴了CB UNIX, 对事物处理提供支持, CB UNIX是由哥伦比亚 贝尔运筹公司设计的. System III是贝尔实验室经西电注册的最好的UNIX版本. 美国政府判决AT&T公司是美国史上空前的反拖拉斯案例. 由Greene大法官宣判AT&T于 1984年解体为若干子公司. 同时, AT&T也被允诺可以进入计算机市场. 经过一番装备, UNIX终于在AT&T信息系统公司, 她自己的家, 落户了. 1983年初, AT&T信息系统公司宣布了System V的诞生. 从此, AT&T从根本上改变了她的 运作风格. 她大大压低了UNIX的价格. AT&T第一次对UNIX提供支持. 而且更重要的是她 要保持未来的UNIX的向上兼容性. 这使潜在的许多用户更加有信心了, AT&T象IBM一样被 认为是最强大的, and with the chutzpa to sell coals to Newcastle. 在这之上, AT&T拥有所有用户们期望得到的出品的所有权, 许多用户希望AT&T能够将伯克利UNIX中 有用的功能加到System V中, 但AT&T的做法令人们失望. 在此后的几年内, AT&T在UNIX的市场上做的很糟. AT&T倒是让其他人更好的出售了UNIX. 而且AT&T也没能组织IBM在PC市场上大踏步地前进. AT&T开始放弃DEC的硬件, 包括那些 从前用来开发UNIX的机器, AT&T想开辟使用自己设计的专有硬件的市场. 然而, 来自 摩托罗拉和NSC等硬件厂商的强有力的竞争, AT&T的努力极不令人满意. 1986年, AT&T估 计在计算机相关市场上损失了$1 billion. AT&T分别在1984年和1986年宣布了System V R.2(Release 2)和SV R.3, 这两个版本都很 流行. 同时, AT&T与几个主要的芯片厂商达成协议, 保证UNIX的二进制兼容性. 此外, AT&T还同意将XENIX和Sun的基于伯克利的UNIX融入System V中. 事情变得清楚了, UNIX 的未来都寄托在AT&T的组合版本十分能成功. 我们将在以后的章节里更加详尽地谈到此 事.
UNIX演义(十一)
1.11 UNIX仅仅是历史吗? UNIX仅仅是历史吗? 不, UNIX就在这. IDC(International Data Corporation)报导, 1985年UNIX的市场大约价值$3.6 billion. 全世界大约有6%的预算是花在计算机上的. 根据1987年12月发行的UNIXWORLD, 该年度有大约$5.5 billion花在UNIX系统上, 其中 10%是花在人家方面. IDC估计该年度全世界有大约8%的预算是用于计算机的. Novon研究组宣称1987年间有大约300,300套UNIX系统出售. 在使用的UNIX系统达750,000 套. 估计有4.5 billion的UNIX用户, 而且用户花在UNIX上的机时高于DOS的. 预计1990年将销售的UNIX系统达450,000套, 大部分是商业用途. 到1991年, UNIX市场将 占整个计算机市场的20%, 而且还将不断地持续增涨. 很清楚, UNIX是成功的一例. Dennis和Ken曾说: "UNIX的成功并不是过分依赖于新的创意, 更重要的是她是从一组丰 富的概念中精选并充分发掘的产物."这可能不是人们问UNIX为什么如此成功所期望得到 的答案. 不管怎样, 不断增涨的UNIX发行数目和UNIX持续的健康发展是惊人的.
UNIX演义(十二)
1.12 名人录 我们不想罗列所有负责开发UNIX的人的名单, 这里仅罗列那些经常被谈及的人物, 尽管 他们可能只在UNIX会议的交谈中被涉及. 把每个参加UNIX开发的人都记下来是非常可能的. 许多人尽管其工作很重要, 但未留下 什么可以识别的手迹. 其他人则可能从整体上对UNIX做出了很大的贡献, 但讲不清到底 是哪一个具体的部分. (似乎所有的人都Hack了核心.)总之, 对遗漏的同志请你原谅. 参加UNIX的许多人是因为在其他非UNIX的领域做出的贡献而出名的. 我们没有列出这些 对世界作出贡献--不是因为我们狭隘--相反, 这些自有它们自己的颂功簿. 有些人的昵称也是出了名的, 大概是因为他们都随着早期发行的UNIX中的/etc/passwd文 件或源码中而传播的. 我们也列下了这些昵称, 所以当你听别人说, "dmr说..."的时候, 你就知道他们是指Dennis Ritchie.
Mike Accetta: 负责符号连接, key(后来成为man -k)和/dev/pty. (译者: /dev/pty就是虚终端)
Rick Adams: UUNET的骨干. 写了SLIP协议.
Alfred Aho: awk中的A. egrep和dbm库的作者.
Eric Allman: 编写了sendmail, trek, tset和-me宏. Ingres的主力. (译者: 今天你该把对sendmail的抱怨送给这位仁兄. 喂, 老兄, 做的什么东东, 看不懂, 还有好些漏洞.)
Ken Arnold: 编写了curses, fortune, 还包括许多的游戏.
Ozalp Babaoglu: 同Bill Joy一起负责伯克利UNIX的虚存.
W.O.Baker: 驳回Tompson, Ritchie和Ossana等人对DEC-10的请求. 这到导致了一个在更小的机器上的更小巧的系统的开 发.
Andreas Rechtolsheim: 设计了最初的SUN板.
Steve Rellovin: 编写了第一个Usenet.
Walt Bilofsky: 编写了Rand编辑器.
Biff: Heidi的小狗. (译者: 这可不是小话. UNIX里的biff命令确实就是这 条狗的名字. 它总是向这邮递员汪汪地叫个不停)
Irma Brien: 邮寄了所有的第六版UNIX的磁带.
Bruce Borden: 负责MH和Rand编辑器.
Steve("srb")Bourne: 创造了Bourne Shell. 编写了adb.
Steve Bunch: UNIX的APRA(NCP)代码的合作者.
Brent Byer: 加入了分离的指令/数据空间来支持PDP-11/45.
Ron Cain: 编写了Small C, 第一个public-domain的C编译器.
Rudd Canaday: 同Dennis和Ken一起设计UNIX的文件系统. 创建了PWB 小组.
Lorinda Cherry: Writer's Workbench(diction, style等等), bc个dc 的作者. 还编写了eqn和bwk.
Greg Chesson: Wood Hermen乐团的前任鼓手, mpx文件(select()的 前身), 最初的uucp packet驱动, Datakit, 行律和 dh驱动中的试配控制的开发者.
Douglas Comer: 写了Xinu. 同Paul McNabb一起实现了第一个UNIX的 X.25实现, 同Bob Brown和Keith Williamson编写了 System V的cron.
Dave Crocker: 编写了MMDF, MS.
Bill Croft: 编写了第一个UNIX的网络实现(在PDP-11系列上).
Ted Dolotta: 编写了-mm宏. USG的第一任董事.
Robert Elz: 编写了伯克利的quota和自动配置. (译者: 真讨厌, 害得我总得删东东, 烦)
Robert Fabry: 伯克利CSRG的原任系主任, 争取到了DARPA的资助.
Stu("sif")Feldman: make, f77和efl的作者. 有非常好的酒窖.
Mel Ferenz: 主办了第一个UNIX用户组会议. 创办了UNIX News (a.k.a ;login.
David Fiedler: 创办和编辑了许多的UNIX和C的杂志, 时事通讯等等, 包括The UNIX Software List, The C List, Unique, UNIX Review, The C Journal, 和The C Users Journal.
John Foderero: 编写了Frenz Lisp.
Herb Gills: 编写了xargs.
Jim Gettys: 与别人合作负责X窗口系统. (译者: 一眼就看出来和UNIX有缘了, 名字上都写着了, getty吗)
George Goble: 完成了极有影响的非对称多处理机(两台VAX-11/780s) 的UNIX移植.
James Gosling: 编写了UNIX的emacs. 同David Rosenthal合写了NeWS.
Gary Grossman: 与别人合写了UNIX的Arpanet(NCP)代码.
Bob Gurwitz: 写了BBN的TCP/IP实现, 后来成为伯克利发行中的一部分.
Doug Gwyn: 编写了BRL的BSD上的System V的模拟.
Teus Hagen: 建立了美国(decvax)和欧洲(mcvax)和其他一些国家 的首次连接.
Dick Haight: 编写了find, cpio, expr. 将shell中加入了有名变量. PWB的主力.
Chuck Haley: 编写了tar. 同Bill Joy一起实现了早期的ex和Pascal编 译器.
Dennis Hall: 在劳伦斯伯克利实验室时合作实现了VOS. 创建了软件 工具用户组.
Robert Henry: 编写了error.
Steve Holmgren: 合写了UNIX的Arpanet(NCP)的代码.
Peter Honeyman: Honey DanBer uucp中的Honey. 编写了pathalias.
Mark Horton: 编写了curses, terminfo并对uucp映射和Usenet做了很大 贡献.
Stephen("scj")Johnson: 编写了yacc, pcc(Portable C Compiler), lint和早期的 spell. 辅助Dennis完成了UNIX的首次移植之一 (Interdata8/32).
Bill("wnj")Joy: 编写了伯克利发行中的许多软件, 包括虚存, 网络, Pascal, vi, csh和termcap. Sun Microsystem创建者 之一. 设计了NFS. 由于伯克利UNIX的出色工作获得了 1986年ACM Grace Murray Hopper Award. (译者: 就是William N. Joy. 你在许多早期的UNIX文 章中发现的就是他. Bill Joy, 你太COOL了!) (译者: 是不是开了公司的就都是Bill(帐单), 象那个 Bill)
David Kashtan: 编写了Eunice.
Howard Katseff: 编写了sdb和last.
Lou Katz: USENIX的第一任.
Brian("bwk")Kernighan: K&R和awk中的K. The C Programming Language的作者 之一, 现在大部分的编程风格都是源自这本书. 还编写 了ratfor, ditroff, eqn和pic. Version 7的负责人 之一.
Andrew Koenig: 编写了varargs(a.k.a. stdargs).
David Korn: 编写了ksh.
Ted Kowalski: 负责现在的fsck.
Bob Kridle: 创立了Mt.Xinu.
Jim Kulp: 开发了早期的作业控制和csh的目录堆栈.
Peter Langston: 举办了USENIX的go联赛. Eedie和Eddie是他的朋友, 你 可以打电话, (201)644-2332找他们.
Sam Leffler: 同Bill Shannon一起编写了tip. 4.2BSD和伯克利TCP的骨干.
Mike Lesk: 编写了lex, tbl, refer, -ms宏, uucp和可移植C库, stdio的前身.
Don Libes: Life With UNIX的作者之一. 没啥好提的. (译者: 老兄, 你也太歉虚了,
John Lions: 编写了第一本描述UNIX的书. 经常被误拼为"Lyons".
Tom London: 32V的作者之一, 第一个VAX版的UNIX.
Brian Lucas: 第一个分布式文件系统的设计者之一, 该分布式文件 系统由1台PDP-10做Server, 4台PDP-11做Client.
Heinz Lycklama: 同Dong Bayer完成了MERT. 编写了第一个微处理器版的UNIX, 在LSI-11上的LSX. 参与了早期的UNIX标准化工作, 包括 第一个UNIX标准(/usr/group).
Tom Lyon: 完成了UNIX的最初移植之一(VM/370).
Joe Maranzano: 负责USG.
Bob Marsh: /usr/group的创办者和第一任. 创立了Onyx, 第一个 提供非PDP的, 基于微处理器的UNIX的厂商.
John Mashey: 编写了Mashey Shell, 后来被融入了Bourne Shell. PWB的 主力.
Doug McIlroy: 提出了管道的概念. 编写了tmg. 还编写了diff和spell. 他对 语音处理的研究导致他写的grep.
Kirk McKusick: 完成了伯克利的快速文件系统(FFS)和可移植的目录访问 例程. 4.3BSD的骨干. 同Peter Kessler共同写了gprof. (译者: 现在还在做BSD呢. BSD4.4完了之后是不是有 BSD4.5.)
Lee McMahon: 编写了sed.
Al McPherson: 编写了fsdb.
Richard Miller: 完成了最早的UNIX移植之一(Interdata7/32).
Robert Morris: 同Lorinda Cherry完成了dc和bc.
Bill Munson: 负责Ultrix.
Mike Muus: 负责JHU/BRL UNIX.
Alan Nemeth: 负责BBN的C machine, 第一台UNIX的微码实现.
Landon Noll: 国际最糟糕的C程序比赛的创立者和裁判.
Dan Nowitz: Honey DanBer中的Dan. 对最初的uucp作出了巨大贡献.
Joseph Ossanna: 负责troff. (译者: 前面提到的-mX的宏均为troff或nroff的宏包.)
Rob Pike: Blit位图终端的开发之一.
P.J.Plauger: 写了第一个商业C编译器. 创立了Whitesmiths公司. 负责Idris.
Dave Presotto: 同Bill Joy合写了vgrind.
Rick Rashid: 负责Mach. 设计了CMU的IPC(Interprocess Communication) (译者: 新思想的起源人之一.)
Brian("ber")Redman: Honey DanBer中的Ber.
Bill Reeves: 同Tom Duff和Mike Tilson合写了vcat.
John Reiser: 32V的作者之一.
Sandy Resseler: 谁啊??????
Dennis("dmr")Ritchie: 他经常拒绝别人说他和Thompson做的一样多, 但他确实是 UNIX个另一半. 主要负责C语言. 由于和Thompson对UNIX 的巨大贡献, 获得了许多有声望的大奖, 包括1982年的 IEEE Emmanuel award和1983年的ACM图灵奖.
Marc Rochkind: 编写了SCCS和bfs. PWB的主力.
Rob Rosenthal: 第一个分布式UNIX文件系统的作者之一.
Steve Schaefer: 负责CPATH, LPATH和MPATH.
Deborah Scherrer: 在劳伦斯伯克利实验室时合作实现了VOS. 创建了软件 工具用户组.
Eric Schienbrood: 编写了more.
Eric Schmidt: 编写了BerkNet.
Jeff Schriebman: 创建了Unisoft公司.
John Seamons: 完成了首例SUN板上的UNIX移植.
Donn Seeley: 对f77, Ritchie的编译器和pcc做了很多贡献.
Bill Shannon: 同Bill Jolitz在PDP-11上实现了可覆盖的核心. 编写了 早期的BSD printer spooler程序.
Dick Shapazian: 设计了起初的UNIX许可证制度.
Kurt Shoens: 编写了伯克利的Mail(a.k.a. mailx), fmt.
Richard("rms")Stallman: 编写了emacs. GNU和FSF(Free Software Foundation)的 创始人之一.
Armando("aps")Stettner: 花了几年的时间来让DEC承认UNIX的存在.
Bjarne Stroustrup: 编写了C++.
Joe Sventek: 在劳伦斯伯克利实验室时合作实现了VOS. 创建了软件 工具用户组.
Andrew Tanenbaum: 编写了MINIX. (译者: 不必说了, 这么可爱的小老头.)
Rebecca Thomas: 同Jean Yates共同编著了第一本关于UNIX的商业用书.
Ken("ken")Thompson: 该谴责他, 他发明了UNIX. 因为同Dennis的在UNIX方面的 工作获得了许多有声望的大奖, 包括1982年的IEEE Emmanuel award和1983年的ACM图灵奖.
Walter Tichy: 编写了RCS.
David Tilbrook: 创立了HCR.
Michael Toy: 两个很有名的游戏, rogue和/etc/shutdown.
Michael Ubell: 编写了第一个历史原型, 后来融入了csh.
Larry Wall: rn, patch和perl的作者.
Larry Wehr: 提出了现在使用的命名管道的概念.
Peter Weinberger: awk中的W. 编写了lcomp.
Peter Weiner: 从Rand公司获得了第一个商业UNIX许可证. 创立了 Interactive Systems Corp.
Lauren Weinstein: 负责Stargate.
David Willcox: 编写了ideal.
Dave Yost: 对Rand编辑器和MH做出巨大贡献.
Walter Zintz: 创立Uni-Ops用户组.
Steve Zucker: 创立了早期的命名管道. |