全部博文(168)
分类: BSD
2007-02-08 11:35:57
1.3 BSD向开放源代码的转变
# 直至发布4.3BSD Tahoe为止,所有取得BSD的个人或机构都必须获得AT&T源代码许可证。因为伯克利从不单独以二进制形式发布BSD系统;软件发布始终都包含系统每个部分的完整源代码。UNIX系统的历史,尤其是BSD系统的历史又显示出了向用户提供源代码所爆发出来的巨大能量。用户不只是被动地去使用系统,他们会积极地修正缺陷、提高性能、扩充功能,甚至会增加新的特性。
# 随着取得AT&T源代码许可证的费用越来越高,那些想使用BSD代码,为PC市场开发基于TCP/IP的网络产品的厂商发现,为每份二进制代码所付出的成本太高了。于是他们要求伯克利把实现网络功能的那部分代码和工具分离出来,采用新的许可证条款,在不需要AT&T源代码许可证的情况下就能提供给他们。TCP/IP连网代码显然在32/V里没有,因此它完全是由伯克利以及其他无私奉献的人们开发的。1989年6月,BSD的连网代码和支持工具发布了,它叫Networking Release 1,这是伯克利第一次提供可以自由地重新发布的代码。
# 这次的许可证条款相当慷慨,它允许以源代码或二进制代码的形式发布已修改或者未修改过的代码,而且不用向伯克利支付费用。唯一的要求是,保持源代码文件中的版权声明不动,并且在采用了这些代码的产品文档中说明该产品包含了加州大学和许多无私奉献者提供的代码。虽然人们从伯克利获得代码,伯克利要收取1000美元的费用来提供一盘存有代码的磁带,但是任何人都能从其他有代码的人手里免费或得一份代码拷贝。实际上,在伯克利的源代码刚发布不久,网上便有几个大的站点把代码放到匿名FTP上。虽然代码是可以免费拿到的,但还是有数百家机构购买了磁带,卖磁带的钱资助了CSRG,激励着他们把开发工作进行下去。
1.3.1 Networking Release 2
# 有了第一个开放源代码版本的成功经验,CSRG决定看看他们到底能让BSD在多大程度上变成免费软件。Keith Bostic负责征募志愿者,要求仅仅根据他们所公布的描述来从头开始写UNIX的工具程序。给予志愿者的补偿只是把他们的名字列在为伯克利做出贡献的人名单上,放在他们重写的工具程序名字的旁边。这项工作开始时进展缓慢,而且重写的几乎都是微不足道的小工具。但是随着重写过的工具名单慢慢变长,加上Bostic不断在Usenix这样的公共场合积极宣传,工作进度开始加快了。重写完的工具很快就超过了100个,在18个月里,几乎所有的重要工具和苦都已经重新写过了。
# 事实表明,重写内核是一项比较大的任务,因为很难白手起家从头开始写一个内核,所以要把整个内核一个文件接一个文件的检查一遍,去掉其中取自32/V的代码。检查完毕后仅剩六个内核文件仍然还有32/V的代码,它们不能被轻易地重写。虽然曾经考虑把这六个文件都重写一下,从而可以发布一个完整的内核,但是CSRG还是决定只发布不会引起争议的部分。CSRG向大学的高层进行争取,希望得到允许发行扩充过的版本。在对检测专有代码所用的方法进行了大量的内部辩论和审查之后,CSRG获准可以发布该版本。
# 伯克利最初想给第二个能够自由重新发布的版本起个新名字。然而,要让校方的律师拟定和核准一份新的许可证要花费数月的时间。因此新版本干脆就叫Neteorking Release2,这样只要对已获准的Networking Release1的许可证稍加修改就行了。1991年6月伯克利开始提供第二个,也是自由度更大的可重新发布版本。这一版的重新发布条款和费用与第一个网络版本的相同。和以前一样,又有数以百计的个人和机构支付了1000美元从伯克利那里买回了新的发行版本。
# Networking Release2距离一个功能完善的系统之间的沟壑并不需要花太多时间就能填平。在该版本出台不到6个月的时间里,Bill Jolitz就写好了替代所缺6个文件的代码。他在1992年1月迅速推出了一个全编译好的、能自启动的系统,该系统用在基于386的PC机上,称为386/BSD。Jolitz的386/BSD几乎全是在网络上完成的。他把它放到了FTP上,让任何想得到的人免费下载。短短几周之内,他就有了大量的追随者。
# 遗憾的是,Jolitz有一份全职工作,这意味着他不可能有那么多时间应付得了潮水般涌来的针对386/BSD的缺陷报告和改进需求。在发布386/BSD后的几个月里,一群热诚的386/BSD用户组成了NetBSD小组,他们团结集体的力量来维护并改进这个系统。到了1993年初,他们发布的系统被称为NetBSD。NetBSD小组致力于支持尽可能多的平台,并且继续开展CSRG那样的研究性开发工作。直到1998年,他们的版本还都只是在网上发布,没有以介质的形式出现。该小组仍然主要面向铁杆的技术性用户。
# 在NetBSD小组成立之后仅几个月,FreeBSD小组就诞生了,小组的章程宣布只支持PC体系结构,并且开始像Linux那样面向数量更大,技术水平更低的用户对象。1993年12月,他们编写了精细的安装脚本,开始通过一张廉价的CD-ROM提供自己的系统。易于安装的特点加上在网上和主要商业展示会(比如Comdex)上的大力推介,让FreeBSD的知名度和用户数量迅速攀升。
# FreeBSD迅速崛起,成为Networking Release2的衍生系统之中安装数量最多的版本。FreeBSD通过增加一种模拟Linux的模式,让Linux的可执行程序能够在FreeBSD平台上运行,也借助Linux的流行壮大了自己。这一功能让FreeBSD用户在获得FreeBSD系统的健壮性、可靠性以及高性能的同时也能用上日趋丰富的Linux应用软件。
# 1995年,OpenBSD小组从NetBSD小组中脱离出来。他们在技术上着眼于提高系统的安全性能。他们关注的市场焦点放在了使用更广泛和更方便上面。因此,他们开始制作和销售CD-ROM盘,这些光盘在易于安装方面从FreeBSD的发布版那里借鉴了许多思路。
1.3.2 法律诉讼
# 自发组织的很多开发小组,以Networking Release 2版本为基础又自由发布了多种系统,除此之外,BSDI(Berkeley Software Design Incorporated)公司的成立则是为了开发和发布能够获得商业支持的代码版本。同其他组织一样,BSDI公司也是从加上Bill Jolitz为自己的386/BSD版本所写的的缺少6个内核文件为起点开始工作的。1992年1月,BSDI以995美元的价格开始销售自己的系统,其中既包含源代码也包含二进制程序。该公司还打出广告,宣传自己的产品比起System V的源代码加上可执行系统来说,在价格上只及后者的百分之一。对广告感兴趣的人士可以拨打电话1-800-ITS-UNIX。
# 在BSDI公司展开它的销售攻势之后不久,就接到USL(UNIX System Laboratory, UNIX系统实验室,几乎完全为AT&T所有的下属机构,专门开发和销售UNIX)的一封信[Ritchie, 2004]。信中勒令BSD停止已UNIX为名推销其产品的行为,并特别强调它必须停止使用具有误导性质的电话号码。虽然这个电话号码被迅速撤换掉了,而且BSDI也改变了广告内容,解释说其产品并不是UNIX,可是USL依然对此感到不快,并继而提起诉讼,要求禁止BSDI的发布版本继续存在,那么USL就会因自己的商业秘密被泄漏而遭受无可挽回的损失,同时USL据此谋求获得法院支持,在法律诉讼判决之前停止BSDI的销售行为。
# 在案件的预审过程中,BSDI反驳说自己只是使用了加州大学发布的源代码,又加上了6个文件。BSDI愿意探讨所加的6个文件的内容是否有问题,但是并不认为自己应该为加州大学发布的文件负责。法官支持BSDI的立场,要求USL必须只依据那6个文件重新提起诉讼,否则案件将不予受理。USL意识到它仅仅为6个文件而起诉肯定是大费周折,于是决定同时起诉BSDI和加州大学。和从前一样,USL要求禁止制作销售加州大学的Networking Releas 2和BSDI的产品。
# 在距离日渐迫近的诉讼只有短短几周的时间的时候,准备工作开始进入白热化状态。CSRG的所有成员,以及BSDI的几乎所有雇员都被要求提供证据。律师之间的辩论、反辩以及对反辩的反驳你来我往激烈异常。CSRG的人员都从写代码转行干起了写数百页材料支持法庭辩论的工作。
# 1992年12月,新泽西地区法院法官Dickinson R.Debevoise听完了对封禁BSD发行版本一案双发的法庭辩论。虽然通常对此类禁止案的请求会立即做出裁决,但是这一次他决定要深入考虑一番再作裁决。大约六个星期之后的一个星期五,他发表了一份内容长达40页的意见,否决了封禁申诉,并且对除去两项之外的其他指控一律予以驳回[Debevoise, 1993]。剩下来的两项指控内容之缩小到近期的版权问题和泄露商业秘密的可能性上面。他还建议案情应该提交给联邦法院之前,先由州立法院进行审理。
# 加州大学理解了其中的暗示之后,火速在接下来的星期一上午向加利福尼亚州立法院提交了对USL的反诉。由于先在加利福尼亚立案,所以加州大学就为接下来的所有的州法院审理工作确定下来了审理地点。宪法规定,任何案件在所有州一级的案卷必须集中在一个州完成,以防有钱的诉讼人通过在50个州里每个州提起一次诉讼的方式拖垮对手。这样一来,如果USL想要在州法院对加州大学采取任何诉讼,都必须在加利福尼亚州而不是在自己的老家新泽西州来开庭。
# 加州大学宣称USL没有按照他与加州大学签署的许可协议所要求的那样,为在System V中使用BSD的代码履行给与加州大学权益的义务[Linzner & MacDonald, 1993]。如果这项控经确认有效,那么加州大学要求USL必须重印它的文档,加入适当的给予权益的内容,完成所有其以前忽略的版权声明,并且在诸如华尔街日报、财富杂志这样的重要出版物上刊登整版广告,向商业界坦白它在无意间所犯下的疏忽错误。
# 在加州大学完成州法院立案之后不久,USL就被Novell从AT&T那里买了下来。Novell的首席执行官(CEO)Ray Noorda公开发表声明表示,他更愿意在市场上而不是法庭上展开竞争。于是双发在1993年的夏天开始了和解对话。遗憾的是,双方的分歧很深,对话进展缓慢。Ray Noorda对USL方面做了进一步动员之后,统一了许多有分歧的意见,双方最终在1994年1月达成了协议。结果是从构成Networking Release 2的18000个文件中删除3个,并且对其他文件做轻微的修改。此外,加州大学同意在大约70个文件里加入USL的版权声明,但这些文件继续可以自由的重新发布。