UNIX 发展史摘录: 关于BSD方面

一个重要的延续及发展 -- BSD UNIX

时间回到 1973 年 11 月, Ken Thompson 和 Dennis Ritchie 在印第安纳 Purdue 大学的一场操作系统原理的座谈会。会场上、坐着一位伯克利大学 (U.C. Berkeley)教授,名字叫 Bob Fabry。当天的 K&R 所发表的 UNIX 立 刻引发 Bob Fabry 的极度兴趣。当时的伯克利还是处在使用大型计算机主机、批次执行程序的阶段,并没有像 UNIX 这样的交谈式作业环境。会后,他便决定将 UNIX 带回伯克利。

于是伯克利的计算器科学、数学与统计三个系所合买的一台 PDP-11/45,准备用来迎接 UNIX。1974 年 1 月,Bell Labs 寄来了一卷 V4 的磁带,学生 Keith Standiford 便开始进行安装 V4 的工作。安装时 Standiford 碰到了问题,便转向 Bell Labs 求援。人在新泽西州的 Thompson 便透过伯克利这端速度只有 300-baud 的调制解调器在线进行侦错。

在 UNIX 的发展史上,这是 Bell Labs 与 伯克利的第一次接触。

完成除错后,V4 便顺利地在伯克利这台新买的 PDP-11/45 计算机上工作了。当时这台是三个系所合买的,计算器科学好不容易装上了 UNIX,却碰到数学与统计系所要使用 DEC's RSTS system,所以在一阵协调后,UNIX 与 DEC's RSTS system 以 8:16 小时的比例分配,供三个系所轮流使用。一段时日后,具交谈 式功能的 UNIX 在效能上的表现得到绝多数学生们喜爱,纷纷将自己的计划转向 UNIX 的时段。而一天占了 16 个小时的批处理时段却乏人问津。

当时 Eugene Wong 与 Michael Stonebraker 教授,看上了 UNIX 提供的便利性,便打算将他们的 INGRES 数据库计划从原先批处理的计算机环境转移到 UNIX 系统上面。在 1974 年,他们为这执行计划添购了一台新的 PDP-11/40 计算机,上面安装了 V5。这个计划也就是伯克利的第一个将作业环境转移到 UNIX 的案子。UNIX 作业环境的需求,在伯克利迅速地成长。为了应付需求, Michael Stonebraker 与 Bob Fabry 教授决定再申请购买两台 PDP-11/45。 1975 年初,DEC 推出 PDP-11/70,价格差不多等于两台 PDP-11/45,但功能强过 PDP-11/45,所以他们便决定改购买一台 PDP-11/70。

这台机器引来了 Ken Thompson、碰上 Bill Joy 以及日后产生了 1BSD。她就宛如是一块 UNIX 史上的地标,沿袭自 Bell Labs,竖立在伯克利,承先启后并开创新局。个人认为,她应该被供在博物馆。

当这台机器在 1975 年终运达伯克利时;同一时间,Thompson 受邀回母校(伯克利)当客座教授,科目就是 UNIX。Thompson 在校期间与 Jeff Schriebman 和 Bob Kridle 一起动手将新版的 V6 安装在 PDP-11/70。

Bill Joy1975 年,一位密执安州大学的毕业生来到了伯克利,他的名字就是 Bill Joy。当时 Joy 和同学 Chuck Haley (tar 就是他写的)喜欢一起泡在计算机房里面,Thompson 也时常插上一脚。他们成功地改善了 Pascal 的解译与侦错的能力,同时还提升了解译与执行的速度。另外换装上 ADM-3 的屏幕后,他们觉得 ed 文字编辑指令并不合用;于是根据另外一个相似的 em 指令,发展了自己的 觉得满意的文字编辑工具,也就是指令 ex。

1976 年夏天,Thompson 结束了他的休假回到 Bell Labs。此时的 Joy 和 Haley 已经开始着手探索 UNIX kernal,甚至还做了一些修改。1977 年初, Joy 制作了一卷磁带,上头写着 "Berkeley Software Distribution.",这就是 1BSD。其中包含新的 Pascal compiler 与 ex 编辑器。

次年,来了几台新屏幕 -- ADM-3a,这种屏幕支持光标地址显示,Joy 在这种屏幕上完成了有人爱不释手;有人恨之入骨的文字编辑器 -- vi。接着不久,Joy 便发现了一个问题,老旧的屏幕装备,还是会被用在其它的计算机上。为了支持上的方便,Joy 针对此现象设计了一个接口,用来管理、支持不同的屏幕装备。这个接口就是现在的 termcap。1978 年中,包含了功能加强的 Pascal 与 vi 及 termcap 的 "Second Berkeley Software Distribution," 也就是 2BSD, 迅速的取代了原先版本。1979 年,至少有 75 部 PDP-11 的机器上安装 2BSD 在运作着。自此在 DEC PDP-11 系列上执行的 BSD 版本便一直以 2.xBSD 作为识别。由于 PDP-11 计算机实在相当长寿,持续到今日我仍然在网络上发现过关于 PDP 计算机的网站。似乎到今日它们仍旧在某些地方默默地工作着。 2.xBSD 最近的一次改版是在 1987 年,使用 4.3 BSD 为主架构改写,版本定为 2.10 BSD。


UNIX 与 DARPA 交会

1970 年代末,美国国防部先进研究计划机构(Defense Advanced Research Projects Agency -- 简称 DARPA)正在为 AI(Artificial Intelligence), VLSI 及计算器视觉等研究(vision research)找寻一个可共通作业的计算机环境。硬件方面的首选是迪吉多(DEC)的 VAX 主机。配合的操作系统是 VMS。这样的组合因拥有相当接近 DARPA 需求的功能被列入优先的考量,但在 DARPA 与 DEC 商谈对于 VMS 的支持事宜之后,DARPA 并没有得到满意的答案。这迫使他们考虑朝向 UNIX 发展。但当时 UNIX OS(指的就是32V) 搭配 VAX,最大的缺憾就是没有支持虚拟内存;但此时已经有人克服了。

当时,Bob Fabry 教授写了一份建议书给 DARPA,建议他们以伯克利支持虚拟 内存的 3BSD 为基础,发展成为计划所需。这份企划书引起了 DARPA 的高度兴 趣。随后 3BSD 也实际获得了 DARPA 相关计划成员们的良好风评,也因此最后伯克利大学打败了卡奈基梅隆大学与 BBN(Bolt Baranek & Newman, Inc.), 让 Bob Fabry 成功地获得了 DARPA 的资助合约。这份合约开始于 1980 年 4 月,为期 18 月。此后的 DARPA 便以 UNIX OS 为标准操作系统。Bob Fabry 教授在取得 DARPA 合约后,依约成立了一个支持机构,也就是 Computer Systems Research Group 简称 CSRG。Bob Fabry 找上了 Bill Joy 来负责 软件开发。Joy 迅速地以先前的 3BSD 为基础,整合新的功能。如 Job Contro l(作者是 Jim Kulp)、auto reboot、1K block file system。同时也整合入 Pascal compiler、Franz Lisp system、enhanced mail handling system。这就是在 1980 年所发表的 4BSD。没多久她便被安装在将近 500 台 VAX 上。

DARPA 采用了这个版本作为当时 DARPA 的标准 UNIX 操作系统。

树大招风,当时,有位在 Stanford Research Institute 的仁兄叫 David Kashtan,写了一份关于 VMS 与 BSD UNIX 在 VAX 上的执行效率评估。该份报告指出 BSD UNIX 在效率上不如 VMS 来的好。Joy 知道这件事之后,花了不 到一个星期的时间,重新调整 UNIX kernal。然后也写了一份报告,证明他们的 BSD 在 VAX 上要比 VMS 优越多多。1981 年 6 月,这个 Joy 调整过的系统, 加上了 Robert Elz 写的 auto configuration,以 4.1BSD 的版本发表了。

当时的 DARPA 对伯克利 4.1BSD 的表现相当满意,于是续签了两年的新约,金额更是先前合约的 5 倍。其中有一半的金额用在资助伯克利继续发展 BSD UNIX 。钱多的相对代价就是要求高。当时,DARPA 对 UNIX 的期望开出了明确的目标;更迅速、更有效率的档案系统、支持程序可执行地址达 multi-gigabyte、提供弹性的解译沟通能力、具整合支持网络能力。在此同时,为了达到计划的目标,DARPA 成立的一个指导委员会;主要的成员有伯克利的 Bob Fabry, Bill Joy, Sam Leffler、BBN 公司的 Alan Nemeth and Rob Gurwitz、贝尔实验室的 Dennis Ritchie、史丹佛大学的 Keith Lantz、卡内基.梅伦大学 Rick Rashid、麻省理工学院 Bert Halstead、信息科学协会 Dan Lynch、DARPA 的 Duane Adams and Bob Baker 以及加州.洛杉矶大学的 Jerry Popek。

不久,Joy 便开始整合早先 BBN 的 Rob Gurwitz 所发表的 TCP/IP protocols,不过他对 BBN 这些程序的执行效率并不满意,于是 Joy 与 Sam Leffler 重新写的一版自己的程序。另外,并加入了一些支持网络的工具 rcp, rsh, rlogin, rwho。他们称她为 4.1aBSD,这个版本并没有正式发表,在 1982年 4 月开始供内部使用。虽是如此,在 4.2BSD 未正式发表之前,她还是 繁殖的到处都是。6 月,4.1aBSD kernal 加上了新完成的档案系统,版本更新 为 4.1bBSD。
rcp, rsh, rlogin, rwho 这群指令。因安全机制上的理由,逐渐被另一群新的指令群所取代,新的指令群叫 SSH (Secure Shell)。SSH 相关网址(http://www.ssh.org)。

1982 年的春季末,已厌倦了在伯克利环境的 Bill Joy ,答应受邀加入当年刚创 办的 Sun Microsystems,Inc.,成为SUN的第四号创办人。那年的整个夏季 他就在两地奔走。之后他对修改中的弹性解译沟通机制及改写 UNIX kernal 到一个段落之后,由 Leffler 接手了他的工作。由于合约期限的因素,Leffler 在 1983 年 4 月发表了 4.1cBSD ,提供给参予 DARPA 各项相关计划的成员试 用。6月,DARPA 的指导委员会第二次会议招开,验收与检讨最新版的 BSD 成果。继续整合 UNIX 系统的 Leffler,在 1983 年 8 月,发表了 4.2BSD。她达到了 DARPA 的预定的需求;足以应付 CAD/CAM 影像处理与 AI 研究的高速的档案系统及扩展强化的虚拟内存功能;提供能分散处理的解译沟通机制;支持 56-Kbit 的 ARPA Internet 网络连结,以及 10-Mbit/s Ethernet 的局域网络;还有经过重组架构已模块化的 kernal code ,提供更有效率的计算机平台移植。


让 UNIX 自由 -- Networking Release 2

自从UNIX走出贝尔实验室后,研究机构与学术界就扮演了继承与发展的双重角色。在1979到1984年这段期间,UNIX的拥有者AT&T,对于学术界的授权政策尚可用『大方』来形容;同时也对学术界做某种程度的资助与合作。当时的学术界,得助于AT&T的大方授权与分享程序原始码,研习UNIX这个分时操作系统开始在学术界蔚为一股风气,甚至可以说是一种潮流或一种流行。其中,像伯克利BSD对UNIX的贡献,就是一个公开的事实。但早期的BSD使用者,是必需向AT&T支付授权金的。这点,从产业界资助学术界的角度来看是一点也不值得惊讶的。因为资金的援助为了就是取得其成果。所以当时基于AT&T原始码所发展的成果,均归属AT&T所有。也因而AT&T掌控了UNIX的所有权。到了1984年以后,AT&T开始更积极地保护UNIX的原始码;AT&T甚至还要求各大学的使用人员签订保密条约,想藉此防堵UNIX的原始码从学术单位流出,以影响到商业利益。

在 DARPA 资助伯克利从事 BSD OS 发展的过程中,诞生了 TCP/IP 这项广泛影响现今计算机与因特网的通讯协议。由于 DARPA 对于资助开发的软件项目有明文规定接受资助者必须无条件地释出程序的原始码,所以 TCP/IP 的原始码与程序的版权并不属于 AT&T 所有。这点在现今看来其意义是不凡的。也正因为有此一条件,伯克利的 CSRG(Computer System Research Group) 因应 BSD Vendors 需求,在 1989 年 6 月发表了 Networking Release 1,她包含了 TCP/IP source code 以及一些工具,提供给当时正开始起步发展的个人计算机制造业者使用。Networking Release 1 授权收费仅 1000 美元,而且不需要 AT&T 的商业授权,取而代之的是伯克利大学的开放式授权。

伯克利的授权方式,几乎可以说是一种良心式授权方式,在实质的运用上她完全没有限制。她允许原始码或执行档在任何情况下修改并且允许将修改后的程序从事商业行为而无须任何回馈,当然也没有绝对要求开发者必须要释出原始码。如果你改都不改地加以贩售,她也没有意见。但有一点不可违反的限制,就是必须在衍生物的版权声明上提到伯克利的贡献。这种做法在日后,也没有多少改变,而这样的授权方式也成为了伯克利的授权精神。

Keith Bostic由于 Networking Release 1 所得到的响应实在远超过 CSRG 成员的预估。这个不算差的成果,让伯克利的 CSRG 觉得有必要释出更多属于 BSD 的程序原始码。于是激发 CSRG 的成员 Keith Bostic 开始组织志愿工作者从事一项就算不能够惊天也足以动地的程序写作计划。计划的主要目的在当时还真让人感到有点"乌扥邦"。我个人喜欢戏称她为『解放 UNIX 计划』。


谁是"老大哥" -- 侵权诉讼

AT&T 的 USL 在 1991 年正式转变了一家公司。当然,这意味着她将更重视 UNIX 在商业上的利益。当时的 UNIX OS 早以称霸高阶的计算机市场;从 Cray 超级计算机、IBM 的大型计算机主机、迷你级计算机到工作站,均是 UNIX 的天下(这一点,直到现在21世纪,仍旧没有多大的改变)。即使在 80 年代中期后开始迅速发展的个人计算机,虽然当时被戏称为是玩具计算机,但也仍旧有像 XENIX[注1], Interactive UNIX[注2] 等几种向 AT&T 缴过税的商业化版本。 UNIX 简直就是 AT&T 的一棵摇钱树。

但这一切在 Networking Release 2(以后简写为 Net/2)出现之后,起了变化!

首先,一位 i386 处理器的玩家名叫 Bill Jolitz,在拿到 Net/2 之后,很快地就 将 Net/2 kernal 缺少的程序补齐了。BSD kernal 这时可算是大功告成了。当时 Bill Jolitz 将他们放在因特网与其它人共享他的原始码,并且得到了不少正面的响应。由于这个版本是使用在 i386 微处理器的个人计算机上,所以就命名为 386BSD,在 1992 年 2 月正式发表。这该算是 BSD 首度功能完整且版权独立的版本。Bill Jolitz 是当时唯一的 kernal 维护者。在他离开这个计划之后,继起的 BSD 玩家们延续了这个版本,日后衍生了 FreeBSD,然后又从其分支中出裂 NetBSD 版本。

另一个将 Net/2 完整化的是一家叫 Berkeley Software Design, Incorporated 的公司,简称 BSDI[注3]。由于 Net/2 的版权声明中,宣称其源文件的合法性,并且允许使用者,从事衍生物的商业行为,所以 BSDI 将他们修改后的系统命名为 BSD/386。他们并将成果打包,刊登广告以 995 美金的售价贩售 BSD/386,而且含原始码,而且还提供免费服务电话的咨询,电话号码是 "1-800-ITS-Unix"。时间大约是在 1992 年 1 月。当时,USL 的 System V 含 source code 的价格大约是 BSD/386 价格的一百倍左右。这可惊动了老大哥 AT&T。并且正式地书面严重警告 BSDI 违反的注册商标法(电话号码里有 Unix 的字眼),并公开宣称 AT&T 拥有 UNIX 的注册商标。BSDI 再次刊登广告 公开反击 AT&T,声明她的商业行为完全合法。果不期然, BSDI 的博命演出让双方手牵手走上法庭。

AT&T 的 USL 控告 BSDI 剽窃他的 UNIX 原始码,要求法官还他公道。在听证会上,BSDI 祭出早已准备好的法宝;自己在无任何 AT&T source code 的条件下写出的合法档案,以及来自于 BSD 授权的 Net/2 source code。前面的证据 足以让 BSDI 立于不败之地,后者让 BSDI 置身在暴风圈外。BSDI 的辨证获得了法官的采信。但 At&T 岂会就此罢手,他们将焦点转移到 Net/2 的 BSD 授权 上面,并且重新提出控诉,被告的对象变成了 BSDI 与伯克利大学;同时 AT&T 还申请法庭禁止 BSDI 一切的 BSD/386 销售行为。就这样,伯克利大学也对号入座了。

我认为,毕竟 AT&T 是营利企业,她得维护她的商业利益,这点是天经地义的事。虽然伯克利大学与 AT&T 在 UNIX 发展上有着非比寻常的关系,但商业利益是现实的。企业资助学术界的研究计划,多半是基于商业上的考量;我相信,学术界的少数高层在寻求奥援时不会不明白这一点,即使这有可能让大部分的学术人士无法接受或不愿接受。不管如何,这一记醒棍倒再次挑起了这一点事实。

成为被告的伯克利大学,只好无奈地面对这场无情的商业诉讼。但他们也同样不甘示弱地对 AT&T 的 Systerm V 著作权提出质疑,因为在 AT&T 的 UNIX 授权声明中完全没有提及伯克利的贡献。所以伯克利反控 AT&T 违反 BSD 的授权条款。伯克利的反击让战况越演越烈,诉讼案一路从 AT&T 的老家新泽西州的联邦法庭打到伯克利大学的所在地加州法院,但依旧没有结果。

到了 1993 年,官司还在进行中,但 AT&T 却已经打包 USL 准备以一亿美元的 价格找寻买主了。最后 AT&T 将 USL 以八千万美元代价的卖给了 Novell。而新买主也当仁不让地加入了这场混战。但却也因此,战况露出了一线平息的曙光。 诉讼案在 1994 年 1 月宣告终结,以庭外和解收场。实际的协议内容仅有当事人知情。

如果从胜负的角度来看这场诉讼,或许伯克利与 BSDI 是胜利的一方。但如果从 UNIX 发展的脚步来看这场诉讼,就可能根本没有任何一方是胜利者了。

事件平息后的 1994 年 6 月,伯克利的 CSRG 风光地发表了 BSD 4.4 Lite。在 这个版本中,有 70 个档案引用一份新修改的版权声明,阐述了 AT&T 与 BSD 双方的贡献,并明确地给予档案自由散播的权利。但不知为何,应该有能力完整发表的 BSD 4.4 Lite 还是缺少了三的档案。当时,我也很高兴地买了一本 BSD4.4-Lite CD-ROM Companion,含一张光盘,现在拿在手上,看来总觉得有点呆。

掌握 UNIX source code 以及 UNIX 商标的 Novell,将 UNIX 商标交给 X/open 管理,自己则发展了一套命名为 UNIXWave 的操作系统。推出后市场的反应并不热络。不久,Novell 与 SCO 接头,在 SCO 保证继续支持 UNIXWare 的条件下,UNIX 在 1995 年二次易主,新主人是 SCO[注4]。


备注:
*1 Intel 在 1978 年发表 4.77 MHz 的 8086 微处理器。1980 年, Microsfot 便以 V7 为基础,发表了在微处理器(microprocessor-based computers)上执行的版本也就是 XENIX。到了 1982年,一家成立于 1979 年 的软件公司 Santa Cruz Operation,成为微软的合作开发厂商。之后她这家公司便一直致力于这个领域里延续到今日,缩写就是今日的 SCO。
*2 Interactive IS/1 (以 V6 为主体)。这个版本后来演化为比较让人熟知的名字 -- Interactive UNIX。后来因为 Sun Microsystems 致力发展 Solaris for X86,被财力雄厚的 Sun Microsystems 合并了,如今已经不见踪迹了。
*3 就在我反复修改这段文稿的时候,BSDI 这家公司已经被 Wind River 合并 了,改名为 iXsystems。2001/05/03
*4 2001 年 5 月 4 日,Caldera International, Inc. 正式并购了 SCO 的服务器软件部及SCO专业服务部这两个部门,新的控股公司名为 Caldera, Inc

简单的过程就是:
AT&T贝尔实验室发明了UNIX
Berkerley大学改进了它并发布BSD
Berkerley与美军DARPA合作发展了互联网和BSD
BSD被Berkerley开放
BSDI贩卖经过网友改良的BSD3
AT&T状告BSDI和Berkerley大学
自己的UNIX SYSTEM V 被AT&T出售并几经转手,最终该系统半死不活。
官司庭外和解,Berkerley大学发表了BSD4.4 Lite,开放发行
BSD也因这场官司晚了很长时间,最终两败俱伤。
各种商业化BSD开始流行
BSDI 这家公司被 Wind River 合并了,改名为 iXsystems
iXsystems 并购了PCBSD,没错,现在集成的PCBSD就是这家惹了麻烦的公司发行的。

 

来源:《網路農夫

posted on 2017-08-11 02:43  wpjamer  阅读(406)  评论(0编辑  收藏  举报

导航