FreeBSD的现状和未来
作者:王波
最近几年,很多Linux/Unix的使用者,都知道有这么一个操作系统:FreeBSD。但是,其中大部分人对这个系统还只是比较简单的了解,还没有机会真正尝试使用、安装、管理它,这样无形中这个操作系统就被笼罩着一层神秘的面纱。事实上,这个操作系统本身并不神秘,它的实际应用事实上是非常普遍的,并且其本身也非常易于使用。
1.FreeBSD是Unix吗?
在众多BBS上,比较常问到的一个问题就是“FreeBSD是不是Unix”,to be or not to be?,回答这个问题并没有这个问题本身看起来这么简单。
假如回顾Unix的历史发展的话,我们可以简单的整理出一个脉络,AT&T发明Unix,伯克利大学对Unix进行研究改进,大家觉得伯克利大学的Unix更好,因此纷纷买伯克利的Unix发行版本。这种做法就好比现在大家都找RedHat买Linux一样,没有人直接到AT&T买Unix。
因此,在70年代、80年代,最流行的操作系统就是BSD Unix,我们作为一个无法领略那个黄金时代的年轻Unix使用者,很难了解到BSD在Unix领域中的威望,只有沉浸在他人写的文章中,看他们以尊敬的口吻谈起BSD。那个时候,很多流行的Unix,如SunOS4等等,统统都是BSD Unix在某个硬件平台上的具体发行版本,就好比当前RedHat、Turbo等等,都是Linux的具体发行版本一样。可以想象,那个时候的BSD Unix就好比当前的Linux一样炙手可热。
不可否认,由于AT&T起诉BSD造成的法律纠纷,商业公司Sun、HP等纷纷转向AT&T的Unix System V,目前BSD Unix已经盛况不再。设想一下,某一天Linus起诉诸多Linux厂商,那将是一种怎样的悲剧!当然目前由于许可权的完善,这种情况很难发生了。直到1994年,不含任何AT&T Unix代码的4.4BSD-Lite发布,法律问题才完全结束,然而,长达数年的法律纠纷已经给市场留出空间,乘着Internet普及的大潮,Linux趁势崛起,代替BSD Unix成为各个商业公司追捧的对象。而AT&T的Unix也没有象想象的那样得到成功,几经转手倒卖,目前系统的全称为Caldera Unixware,和Caldera OpenLinux一样,属于一家Linux公司Caldera。
在这些倒卖过程中,原来属于AT&T的Unix商标,也被Novell赠送给一家Unix组织X/Open,这个组织是由多家商业Unix公司,如IBM,HP,Sun等组成的,这样,所有X/Open的成员都可以宣称他们的操作系统是Unix。反过来,如果一个公司不是X/Open的成员,那么在法律上,它就无权享用Unix商标,称自己的操作系统为Unix。
FreeBSD系统是BSD Unix的直接继承者,但正如其名字暗示的,这个系统是由一个非赢利组织来维护、开发的,显然也不是X/Open的成员。至于FreeBSD到底是不是Unix,聪明的读者,我想你一定有了自己的答案了吧!
2.谁在使用FreeBSD?
初步接触FreeBSD的用户,可能最大的问题还是关心FreeBSD的应用范围问题,因为不象Windows, Linux, Solaris这些系统,商业公司有众多的市场费用对它们进行包装宣传,例如最近的Windows XP就是一例。而FreeBSD则只是默默的在后台承载着具体的工作任务,通过它本身的优秀特性,由一个技术人员告诉另一个技术人员,逐渐得到更广泛的应用。
最愿意使用FreeBSD的用户是互联网服务提供商ISP和网站ICP,著名yahoo并没有应用昂贵的专业Unix服务器,它们的服务器是由多台运行FreeBSD的PC组成,Internet上最繁忙的ftp服务器ftp.cdrom.com(目前为ftp.freesoftware.com),单台服务器支持的每天传输量都在700GB以上,也是由FreeBSD构成的,甚至包括属于微软的hotmail,其大部分的服务器原本也FreeBSD,Microsoft曾多次想将它们迁移到Microsoft平台上,最早是想迁移到Microsoft NT上,但直到Windows 2000出现之后,Microsoft才获得成功,目前hotmail仍然还有部分服务器仍然运行FreeBSD。
毫无疑问,如果仅仅从技术角度考虑问题,FreeBSD系统无疑是用作Web、Ftp、Email、DNS等互联网服务器的最佳操作操作系统。这是因为BSD Unix就是TCP/IP协议的最初实现者,目前大部分TCP/IP的实现代码,都来自于BSD Unix,包括Windows系统中也包含BSD Unix的代码,同样大多数网络应用软件也是从Unix上最先开发的,这样就导致几乎所有的网络应用都支持FreeBSD,并且在FreeBSD上会有最好的性能表现。这也是在没有任何市场努力下,FreeBSD得到ISP/ICP支持的根本原因。
另外一些用户,可能其本身没有意识到在使用FreeBSD,实际上每天都在使用FreeBSD处理工作。这是因为FreeBSD作为技术核心出现在系统内部,一般用户不需直接接触到它。这个例子最明显的就是使用Mac OS X的桌面用户。Apple公司最新的OS X本质上就是FreeBSD的核心加上Apple公司的图形界面接口和应用系统。正如,Windows NT/2000的用户不需要知道其系统内核是来自VMS一样,OS X的用户一般也不知道其实他使用的系统其核心是FreeBSD。
在桌面系统来讲,Mac OS X独有的图形界面确实更受欢迎,但FreeBSD系统本身也提供了X Window支持,从而可以使用KDE、gnome等图形用户接口,使得FreeBSD系统也能用在桌面系统中。然而,在后台使用FreeBSD,而加以定制、开发,而以另外一个名字出现的情况,Mac OS X并不是一个仅有的特例,很多系统从本质上来讲根本就是FreeBSD系统,再加上为了适应特殊硬件和特殊需求进行的定制开发。但一般用户并不了解这一点,事实上也不需要了解这一点。这种情况在专用设备上特别明显,例如路由器、防火墙、存储服务器等等。
路由器方面最为著名的是Juniper,仅次于cisco的第二大路由器厂家,Juniper的JUNOS就是基于FreeBSD的系统,当然Juniper的路由器有专用的网络处理芯片。防火墙方面有Nokia,它就是使用FreeBSD 2.2.x的系统。而Maxtor、AMI等厂家在他们的存储系统中也是使用的FreeBSD。此外,IBM的InterJet也是使用的FreeBSD。其他不太著名的厂家,使用FreeBSD的更是比比皆是。因此,可能你还没有意识到你所使用的网络其实与FreeBSD密切相关,事实上,也许你每天都在和一个FreeBSD系统打交道呢!
3.为什么选用FreeBSD?
然而,在使用FreeBSD完成这些任务的同时,使用其他种类的Unix,包括Linux,同样也能完成这些任务。特别是目前Linux正处于众人关心的焦点,同为PC平台上的免费Unix,有什么理由去选择FreeBSD而不用Linux呢?那么,让我们首先看看专业厂家的理由吧!
这些专用设备厂商和ISP选择FreeBSD的原因一方面是高性能,很多证据表明,即使是商业Unix,在性能上也比不上FreeBSD,尤其是网络性能。例如AT&T Unix System V系列的商业Unix,其IP堆栈基于stream,这样灵活性虽强,但效率就大打折扣了,以至于Sun在Solaris 2.6之后,又将其网络功能移入内核,不再通过stream实现TCP/IP了。
另一个选择FreeBSD的原因是稳定性,虽然没有办法确切的找出证据来说明FreeBSD比其他Unix更稳定,然而无论是从Internet上关于系统崩溃的报告,还是诸多Unix使用者的个人使用经验,都得不到FreeBSD不稳定或FreeBSD不如某种Unix稳定的结论。原因就在于BSD Unix的代码经过了几十年的时间和多种不同硬件平台的考验,更为成熟。事实上,稳定性对于全天候运行的系统至关重要,因此这一点对于专用设备和服务器系统来讲,尤其重要。而FreeBSD正由于其特别的稳定性,得到了一致的认可,被誉为“象岩石一样稳定”。
专用设备厂商选择使用FreeBSD的另一个理由是许可权方式,基本上,Linux是使用了GNU许可的方式,我们都知道这种方式对于进行再次开发有更大的限制,要求对GNU软件的改动也要开放源代码。原则上来讲,GNU许可是合理的,应该得到支持,但是在某些领域内由于涉及到商业利益、相关软件硬件代码保密的需要等等,采用GNU许可有一定的障碍,这样采用BSD许可方式就更受欢迎了!这是因为FreeBSD遵循的BSD许可比常用的GPL许可更为宽松的原因,它允许保留改进过的源代码,而直接发布二进制形式的软件。
对于专业厂家、ISP/ICP来讲,采用FreeBSD显然是比较自然的,因为他们有专门的系统管理员去提供支持,而网络管理员事实上是希望采用FreeBSD的,因为这个系统一经安装完毕正常运转,几乎就不再需要任何额外的管理负担,例如Windows系统经常发生的当机、死锁等需要重新启动等等,系统的安全性也非常高,也不必担心黑客攻击。但是对于普通用户,选用这个系统时,常常就会考虑,“谁来提供服务?”。基本上,对于Linux、FreeBSD这些依赖于互联网发展起来的系统来讲,非常重要的一种模式就是用户群体的自组织和自服务性,这就是说用户之间可以相互提供有限的技术服务,例如解答问题,提供指导等等。这种自服务方式经实践证明是非常有效的,但是,普通的企业经理也许更关心商业服务,希望能得到更可靠、稳定、全面的服务。例如,对于Windows来讲,Microsoft的工程师会提供服务,对于Solaris来讲,Sun的工程师会提供服务,对于Linux来讲,RedHat、Turbo以及国内的蓝点等等厂家会提供商业服务。
对于FreeBSD,应该找什么人或公司提供商业服务呢?由于FreeBSD的用户群的技术层次比较高,对于商业服务的需求就小一些,但事实上商业服务还是存在的,在国外,这种高层次的商业服务一方面这种服务可以从一些有丰富经验的系统专家那里获得,企业通过聘请他们担任技术顾问提供技术服务,另一方面可以从专业技术服务公司获得,提供技术服务已经是目前IT企业的一个趋势,如IBM、HP都在转型作服务,而FreeBSD商业服务可以从Daemonnews等公司获得。国内的情况也是类似的,例如共创软件等一些公司和一些个人都可以为FreeBSD提供商业技术支持。