发信人: BraveHeart.bbs@bbs.njtu.edu.cn (穿江鼠●反思), 信区: cnunix
标  题: UNIX演义(五) ( Politics -- Part I )
发信站: 北方交大可爱的家 (Thu Jan  1 14:24:11 1998)
转信站: Lilac!ustcnews!ustcnews!sjtunews!njtubbs
出  处: 202.112.145.96

发信人: BlueOcean (Blue), 信区: Unix
标  题: UNIX演义(五) ( Politics -- Part I )
发信站: BBS 水木清华站 (Fri Dec 19 23:48:55 1997)

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)提供支持
。但DEC更愿意用户选择他们的专有操作系统,VMS,它被锁定在DEC的硬件上。DEC并不希望
拒绝大量的UNIX用户对DEC的硬件感兴趣。
截至1986年,在DEC的硬件上大约有6000个DEC ULTRIX的许可证,14,000 4.x BSD的许可证和
20,000 AT&T System V的许可证。从此DEC对不管是新旧机器都提供UNIX支持。有趣的是,
AT&T不在对基于DEC硬件的UNIX提供支持。

 其他

除了上述这些单位之外,许多大学和研究机构都独创了许多的UNIX应用和扩展。这些座落在
加拿大,澳大利亚,新西兰,欧洲和全美国的机构发行他们自己的版本或发行带有自己改进
的伯克利或AT&T版本。某些变化得太大了,以至于不能在称为UNIX了。UNIX被极大地丰富了。
许多单位并没兴趣发布自己的软件。他们将自己的改动寄给伯克利(而伯克利似乎来者不拒)。
由此伯克利无意间享受了这些荣誉。

-----------------------------------------------------------------------------
本文译自"Life with UNIX(R) -- A Guide for Everyone"
译者向次书的两位作者Don Libes, Sandy Ressler表示衷心的感谢,他们为人们更好地
了解UNIX作出了贡献。

中文翻译 BlueOcean ( para@cs.sebuaa.ac.cn )

我们希望这些文件中的资讯能对你有所帮助,但是并不保证是正确的,若发生损害请
自行负责 

--
                                  
    Buck barks in the darkness    
                                  

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: ns.nlsde.buaa.e]

--
※ 来源:.北方交大可爱的家站 bbs.njtu.edu.cn.[IP: 202.112.145.96] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.831毫秒