经历了很长时间以后,人们最终开始接受了基于System V上的 Solaris系统,它取代了 SunOS 4。尽管六年是一段很长的时间,但是如果 Sun当初继续维护SunOS 4 ,那也许会花费更长的一段时间。人们为什么会对旧系统如此忠诚呢?毕竟它们都是属于Unix家族呀。
我绝不是想在这里重新点燃 SunOS与Solaris 的争论,但是我想让大家注意下 SunOS 4与 SunOS 5的最大一点区别,今天的Solaris 操作系统的组件:SunOS 4 是基于4.2 BSD的,这是由加州大学Berkeley分校开发的Unix版本,也是第一个支持TCP/IP的操作系统。相反,SunOS 5 (通常称为Solaris ,虽然这种称呼不太准确),是基于AT&T的Unix System V.4 的。BSD和System V的显著差异使得就算是在 SunOS 4“死亡”六年以后,它仍然拥有大量的支持者。它不能在现代硬件上运行实在是太可惜了。
当 SunOS 4不能在现代硬件上运行的时候,其它种类的BSD却可以。此外,它们还是免费的。最近的对 Linux的宣传似乎
有意模糊存在着其它的免费操作系统的事实。早在1991年,在Linux 计划尚未付诸实施之时,Berkeley人就在准备发布运行于Intel 平台上的免费的4.3 BSD了。另外,Berkeley软件设计公司(BSDI)也在写一个商用的版本。但是Unix系统实验室(USL)对BSDI的起诉,说他们非法使用了AT&T的源码,使得这些努力受到了严重的阻碍。
这件案子在1994年得到解决。解决办法中只有一项条款为公众所知:BSDI请求将它的codebase移至4.4 BSD Lite,这是Berkeley的计算机科学研究小组解散前发布的最后一个BSD系列的版本。AT&T认可这个版本不包含它的源码。就这样,免费BSD项目也移至4.4 BSD-Lite的基础上。
● 现代的BSD
大家停止使用 SunOS 4的一个主要原因是因为它过时了,特别是它不支持现代的硬件。那么4.4 BSD的家族成员呢?它们各自拥有各自的重点:
BSD/OS
BSD/OS是BSDI的产品。尽管曾尝试将它引入 SPARC结构,但是它目前只能在Intel 上运行。看起来BSDI已经认定 SPARC的版本已经越来越不值得做了。作为唯一一种商业销售的BSD产品,它提供优良的售后服务。
FreeBSD
FreeBSD是目前最流行的BSD产品。与其它成员相比,它更注重用户安装和使用的方便。它原来只是面向Intel 平台,但是最近又发布了Compaq/DEC Alpha结构的版本。其它项目包括UltraSPARC的版本,不过这个版本还没有显著进展。
NetBSD
NetBSD从一开始发展方向就不一样,它希望能支持尽可能多的硬件平台。在写本文的时候,它支持几乎任何你能想到的平台,包括从 Sun 3开始的所有Sun 的硬件,虽然有些是有限的支持。比如,写本文的时候,UltraSPARC版本尚不支持基于PCI 的主板或多处理器,不过它在不久的将来就很可能支持这些硬件了。
OpenBSD
OpenBSD在1995年由NetBSD分化而来。它比其它成员更多重视安全方面,它支持多种平台,但比NetBSD要少一些。例如,现在它还没有UltraSPARC版本。
● 为什么有这么多版本?
看下这些操作系统的目录,你也许会问,为什么有这么多相似的操作系统。难道有一个不就够了吗?
历史上,每个项目的建立都是由于在组建一个好的操作系统时产生了意见分歧。因为这个软件是免费的,任何人都可以决定根据自己的需要建立自己的操作系统。如果它行不通,人们可以到此为止。实际上,所有现在的BSD成员,包括BSDI,都来源于Bill Jolitz 的386 BSD 项目,它到1994年时就逐渐被淡忘了。
表面上看来,分化瓦解不是一种好的趋势,为什么不能敢于行动,大家相互妥协呢?实际中,BSD系统表现出了很明显的“自治”趋向:所有成员中只有 386 BSD关门大吉,而它的后代都很健康并且积极地相互借鉴。每个版本都有一个不同的内核就意味著适者生存同样适用于内核代码,而对Linux 来说,这只适用于用户代码。例如,年轻的FreeBSD SPARC 版本并非白手起家:它始于NetBSD的实现并且直接提出以下的问题:我们在哪些地方可以做得更好?这个过程自然提高了要成功所必需的标准。结果是,许多这样的尝试失败了,而那些没有创造“世界级”代码的却成功了。
当选择一个BSD版本的时候,你应该首先考虑平台。很多情况下,平台将决定所选择的操作系统。象在所有BSD都支持的PC平台上,作出选择也许更难,但是实际上没有一种选择是绝对错误的。
● 它们的感觉如何?
BSD成员间最大的区别和系统本身无关,而在于你使用它的方式。现在所有工作站都使用某种形式的图形界面(GUI)。所有的BSD都包括 XFree86,这是一种 X11实现,Linux 中也有提供。一方面,这个界面有很强的统一性:仅从屏幕上看过去,很难讲系统运行的是BSD,Linux 或甚至是 Solaris。另一方面,选择PC硬件的广泛性使得可靠安装X变得相对困难,花一些时间来为XFree86 选择显示硬件是值得的。
除了硬件的选择之外,XFree86 令人在选择软件时感到迷惑,特别是显示和桌面管理器,这就使通过看屏幕上的显示来猜测下面的平台变得更为困难。有关更多window管理器的讯息,请看“开放目录项目”.http://directory.mozilla.org/Computers/Software/X_Windows/Window_Managers/你甚至可以使用OpenLook Window Manager 让它看上去象是个OpenWindows 。http://www.plig.org/xwinman/screenshots/olwm.gif
尽管很多时候你可能不想用到GUI。BSD系统特别适合于域名服务器,网页服务器,邮件服务器,新闻服务器,等等。这些系统不需要图形界面。实际上,它们可能连显示器都不用。
● 你会得到什么?
所有的免费BSD都可以从光碟获取,包含了完整的源码和工具。许多工具和Linux 中使用的工具都是基于同样的GNU工具的,还有一些是基于旧的BSD工具的。所有版本都包括完整的软件开发工具,这些工具也是以GNU工具为中心的。前面已经提到,它们还包括了 XFree86对X11 的实现,并且很多平台可以执行 Linux和SCO的可执行代码。
此外,我们将在下面看到,BSD还附带有大量的第三方软件。
● BSD能干什么?
首先,BSD/OS和FreeBSD 看上去可能不如NetBSD和OpenBSD 那样具有吸引力,因为它们不能在SPARC硬件上运行。事实上,在SPARC硬件上运行的能力有点被夸大了。这可能是BSDI决定停止支持SPARC版本的原因。我们已经有了一个在SPARC上得到很好支持的操作系统 Solaris, Sun对其孤注一掷。尽管NetBSD和OpenBSD 在某些地方比 Solaris表现更好,但是很难与它全面竞争,而且目前的UltraSPARC支持中也有一些不足。特别是,PCI支持仍在研发中,现在也还不能支持多处理器。
事实上,很多对BSD家族的兴趣都来自PC硬件的低价位。比如说,如果你想建立一个大型的FTP服务器,你大概有四种选择:
·买一台带有 Solaris 7的Sun SPARC 机。它很贵,不过它工作上没问题,而且你不会遇到很多麻烦。
·买一台PC并为其安装微软的软件。如果是一台大型服务器,你需要NT。对于这种应用来说,你只需要基本的NT服务器软件,它的$809的价格相对比较便宜。微软的解决方案和最佳作法的网页(网址见文尾)上面,声称你可以从三台Compaq的ProLiant 5000s或5500s 上每天转移6GB数据,三台机器每台都装有Pentium Pro 处理器和512 MB的内存记忆体。为保证服务不中断,微软建议你安装多套备用系统。
·买一台PC并为其安装 FreeBSD。硬件上的价格可能一样,但是你无须为该软件花费一分钱。正如 wcarchive.cdrom.com的硬件配置所显示的,ftp://ftp.cdrom.com/archive-info/wcarchive.txt微软的说法是误导。wcarchive 只是一个单一系统,只有一个CPU,也是 Pentium Pro芯。和微软每天6GB的传输量相比,wcarchive 一般每天的传输量确高达700GB以上,并可同时接待 3,600个用户。这样的表现比三台大型的NT机加在一起还要高100倍以上。1998年12月 2日,wcarchive 共传送了 820,097,694,368 bytes的数据,使其成为世界上最忙的FTP服务器。
·买一台PC并为其安装商用的Unix系统。在很多方面,适用于 FreeBSD的优点也适用于这样的配置。但是商用的Unix实现非常昂贵,而且很多证据显示他们在性能上比不过BSD的。
wcarchive 不是唯一的BSD成功的实例。另一个杰出的用户是Yahoo!,它几乎用 FreeBSD来做所有的事情。此外,至少有两台Internet根域名服务器运行BSD,而且大多数ISP用BSD来完成某些功能。
除了这样的高级应用以外,NetBSD和OpenBSD 也是老式 Sun硬件的很好选择,包括早期的不堪运行Solaris 2 和 7的 SPARC硬件,以及 Sun 3系统。支持的水平各异:NetBSD和OpenBSD包含有为Sun 3 设计的代码,但是OpenBSD 说它的代码没有得到积极维护。两种BSD都积极支持 Sun 4,Sun 4c和Sun 4m系统。
为什么要在 Sun机器上运行BSD呢?很多情况下,旧的硬件更适合完成一些功能;你可以方便地使用一台旧的 Sun 3或是SPARCstation I作为邮件服务器或域名服务器。这虽然也可以用 SunOS去做,但是内核的陈旧将在网络堆栈的某些方面表现出来,然后你必须将所有现在版本的网络客户程序移植过去,这显然将比安装BSD和BSD的最新客户端软件要多花成倍的时间。具有讽刺意味的是,这些“返老还童术”对PC硬件来说更甚。常常见到的是,一台跑不动单一微软桌面系统的旧386 机在安装BSD以后可以集Internet网关,邮件服务器,域名服务器和网页服务器于一身而重获青春。
● 移植软件
是我刚说过“移植”吗?几十年来,移植是Unix系统管理员的生活方式之一,但是过去移植可不容易了。而 FreeBSD的移植软件库,它也被 OpenBSD采用了,完全改变了这种情况。比如说,你想在自己的系统上安装 xarchie吗?这很简单:
# cd /usr/ports/net/xarchie# make install
你会说,“不错”,只要你把源码装到了你的机器上,一切就很简单了。但是直到你发现在/usr/ports/net/xarchie下只包括六个文件——最大的也不过 691 bytes,你才会意识到其中定有非常复杂的内涵。
FreeBSD 移植软件库目前包含近2,000种移植的软件产品。它们中的任何一个都不包含软件本身,而只有一个如何获取这个软件,如何建立和如何安装的说明。这让BSD用户可以轻易得到用于任何平台上的最多的可安装软件,所有这一切的花费仅仅是两行命令和从Internet上传送该软件时的一段短暂时间。
人们可能低估了这套方法的优势。你运行的Sendmail是什么版本的?很可能是你的系统附带的版本,如果你最近有升级系统的话,也许是 8.8.8。而当前的版本应该是 8.9.1,它包含了一系列为阻止邮件乱用所做的改进,特别是防止非法转发和封杀某些域名的设计。但是移植Sendmail始终是一件苦差,哪怕是对Sendmail原本面向的BSD平台也是一样。而利用软件移植库的话,一切都很简单。
再说说 named吧。几个月前,CERT发布了的一个建议里说http://www.cert.org/advisories/CA-98.05.bind_problems.htmlnamed ,name daemon 有可能带有影响Unix系统的几个薄弱点。当这个建议发布的时候,BSD项目已经发布了针对这一问题的补丁;而 Sun公司仅仅是有说要在未来发布针对不同系统的补丁。
● 为什么要BSD,不要 Linux?
Linux 比BSD更广为人知。如果你想安装免费的Unix,为什么不要随波逐流地去选择 Linux呢?
这个问题没有一个很好的答案。Linux 适合的很多工作BSD也一样适合。有些人说BSD比 Linux更稳定——那种说法在面向服务器的应用方面更合适,而 Linux更适合于桌面系统。FreeBSD 的标语词是“服务的实力”。
其他人则说BSD的纯正Unix血统使它比新兴的 Linux更加成熟。还有人说,BSD的开发人员中包括了来自Berkeley的计算机科学研究小组的知名人物,这意味著它的codebase更好。
但这只是其中的一部分原因,而且没有确凿的根据。事实是,Linux 同样是一个好的操作系统。象其它操作系统一样,它也有它的弱点和它的强项。有些人说 Linux的弱点包括它的虚拟内存系统,而这方面是FreeBSD 和NetBSD的长处,但是对此目前还没有进行过结论性的性能对比试验。
BSD和 Linux的一点不同在它们的立足点。Linux 和BSD一样,一开始都是平民发展项目,但是近两年来它变得越发商业化了。你听到那么多关于 Linux的消息的一个主要原因在于有人通过销售 Linux而获利。而BSD在商业销售上比较不受到关注。
那么为什么要选BSD呢?哦,其中一个原因是,BSD来自和运行于你的 Solaris机上的相同的codebase,所以感觉上会比较熟悉。此外,尽管没有确凿的证据证明BSD比 Linux更稳定或表现更好,但是来自于 Linux阵营的相反的指称也异乎寻常的少。
● 获取BSD
FreeBSD ,NetBSD和OpenBSD 都是免费发行的,能从Internet下传。因为软件很大,而且网络问题可能使这种形式的安装很麻烦,所以这或许不是最佳方案。所有三种操作系统都有光碟版本,而且 FreeBSD的版本还附有一本书《完全FreeBSD 》,http://www.cdrom.com/titles/os/bsdbook2.htm它覆盖了在系统安装和维护中 FreeBSD不同于Unix家族的所有方面。
● 技术支持怎么样?
在商业环境中使用免费操作系统的一大争议就是技术支持。一旦出现问题,你该去找谁呢?在这方面,免费的BSD家族和Linux 没有太大差别。确实存在一些商业性的技术支持,而且还会有更多的支持。然而另一个不同是还有一种商业性BSD,BSD/OS,它可供选择的技术支持不逊于其它Unix成员。
传统上,免费的操作系统的技术支持是通过在邮件组中由志愿人员回答问题,通常回答都是正确的。这里的问题是“通常”。你怎么能判断你得到的建议是正确的呢?另一个方案是加入商业性的技术支持组织的帮助,可以通过这些独立项目的网站保持联络。
总而言之,现在就去亲自尝试一下BSD家族吧。
·BSD/OS是可以从BSDI http://www.bsdi.com/ 得到的商用产品,该公司也为它提供技术支持。
·FreeBSD 可以从Internet下传ftp://ftp.freebsd.org/pub/FreeBSD 也可以从Walnut Creek CDROM公司购得光碟版 http://www.cdrom.com/titles/os/bsdthree.htm FreeBSD 的咨询人员提供技术支持。 http://www.freebsd.org/commercial/consulting.html
·你可以从Internet下传NetBSD http://www.netbsd.org/Sites/net.html 或是获得光碟版 http://www.netbsd.org/Sites/cdroms.html NetBSD没有正式的顾问名单,但很多 FreeBSD和OpenBSD 的咨询人员也支持NetBSD。
·你可以从Internet下传OpenBSD http://www.openbsd.org/ftp.html 或索取光碟版 http://www.openbsd.org/orders.html 也有商业性的技术支持 http://www.openbsd.org/support.html
———————————————————————————
◆ 资源目录
·Berkeley Software Design Inc. (BSDI) http://www.bsdi.com
·BSD/OS http://www.bsdi.com
·FreeBSD http://www.FreeBSD.org
·NetBSD http://www.NetBSD.org
·OpenBSD http://www.OpenBSD.org
·XFree86 http://www.xfree86.org/
·Open Directory Project http://directory.mozilla.org/Computers/Software/X_Windows/Window_Managers/
·OpenLook Window Manager http://www.plig.org/xwinman/screenshots/olwm.gif
·Microsoft's Solutions/Best Practices page http://www.microsoft.com/misc/backstage/solutions.htm
·Hardware configuration for wcarchive.cdrom.com ftp://ftp.cdrom.com/archive-info/wcarchive.txt
·The FreeBSD Ports Collection http://www.freebsd.org/handbook/ports.html
·CERT advisory http://www.cert.org/advisories/CA-98.05.bind_problems.html
·CERT advisory on named http://www.cert.org/advisories/CA-98.05.bind_problems.html
·The Complete FreeBSD http://www.cdrom.com/titles/os/bsdbook2.htm
·FreeBSD download ftp://ftp.FreeBSD.org/pub/FreeBSD
·FreeBSD on CD-ROM http://www.cdrom.com/titles/os/bsdthree.htm
·FreeBSD's consultants http://www.freebsd.org/commercial/consulting.html
·NetBSD download http://www.netbsd.org/Sites/net.html
·NetBSD on CD-ROM http://www.netbsd.org/Sites/cdroms.html
·OpenBSD download http://www.openbsd.org/ftp.html
·OpenBSD CD-ROM http://www.openbsd.org/orders.html
·OpenBSD commercial support http://www.openbsd.org/support.html
·"Getting help with free software," December 1998 SunWorld feature story http://www.sunworld.com/swol-12-1998/swol-12-support.html
·"The story on FreeBSD," December 1998 LinuxWorld feature story http://www.linuxworld.com/linuxworld/lw-1998-12/lw-12-freebsd.html