当前位置: 技术问答>linux和unix
FreeBSD是什么?(最好是详细的资料)
来源: 互联网 发布时间:2014-10-30
本文导语: rt | FreeBSD的起源 在计算机领域,Unix一直是作为高端平台而出现的。几年以前,只有在大型机构的专用机房中才能接触到它们,甚至稍小一些的机构也负担不起购买Unix工作站的费用。只有很少...
rt
|
FreeBSD的起源
在计算机领域,Unix一直是作为高端平台而出现的。几年以前,只有在大型机构的专用机房中才能接触到它们,甚至稍小一些的机构也负担不起购买Unix工作站的费用。只有很少的使用者才有机会接触和使用Unix,能管理和维护 Unix系统的计算机专业人员就更少了,这就使得Unix总是披着一层神秘的面纱,在普通使用者面前,Unix属于一种难于使用、十分昂贵的操作系统。然而,当运行在个人电脑上的自由Unix系统出现之后,这种情况已经改变了。
事实上,今天的Unix已经不能说是一个单一的操作系统,它包括了非常多的种类,有高端的HP、SUN服务器,也有中、低端的运行在Intel平台上的Unix系统。Unix不再是普通使用者可望而不可及的操作系统了,每个喜爱Unix的人都可以在自己的PC机中安装上一套Unix系统,学习它、使用它。而中小企业也可以使用PC服务器来运行Unix系统,充分利用Unix系统的强大处理能力。
FreeBSD就是一种运行在Intel平台上、可以自由使用的Unix系统,它可以从Internet上免费获得。而它又具备极其优异的性能,使它得到了计算机研究人员和网络专业人士的认可。因此,不但专业科研人员把它用作个人使用的Unix工作站,很多企业,特别是ISP(Internet服务提供商)都使用运行FreeBSD的高档P C服务器来为他们的众多用户提供网络服务。
FreeBSD的起源
自从1969年AT&T Bell实验室研究人员创造了Unix之后,Unix就不断发展,逐渐成为了主流操作系统。虽然当前Windows系列已经占据了桌面计算机的领域,其中Windows NT服务器也在网络服务器领域得到了部分用户的承认,但在高档工作站和服务器领域,Unix仍然具有无可替代的作用。尤其在用作Inter net服务器方面,Unix的高性能、高可靠性、以及高度可扩展的能力仍然不是其他操作系统所能够代替的。
虽然Unix由AT&T创造,但它如此流行却并不能完全归功于AT&T自己的功劳。现代Un ix不是一个厂家的单独产品,在它长期的发展过程中形成了多种不同的版本。惟其丰富多样,才使得Unix具有强大的生命力。FreeBSD正是Unix众多分支中相当优秀的一支,它的发展历史也相当悠久,是著名的BSD Unix的一个继承者,因此要了解FreeBSD发展的历史,首先就要了解Unix发展的历程。
Unix的历史发展
Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT& T贝尔实验室实现的,运行在一台DEC PDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操作系统最基本的一些特性。后来Ken Thompson和Dennis Ritchie使用C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。从那以后,Unix系统开始了令人瞩目的发展。
由于此时AT&T还没有把Unix作为它的正式商品,因此研究人员只是在实验室内部使用并完善它。正是由于Unix是被作为研究项目,其他科研机构和大学的计算机研究人员也希望能得到这个系统,以便进行自己的研究。A T&T以分发许可证的方法,对Unix仅仅收取很少的费用,大学和研究机构就能获得Unix的源代码以进行研究。Unix的源代码被散发到各个大学,一方面使得科研人员能够根据需要改进系统,或者将其移植到其他的硬件环境中去,另一方面培养了懂得Unix使用和编程的大量的学生,这使得Unix的普及更为广泛。
由于操作系统的开发相当困难,只有少数的计算机厂商,如IBM、Digital等大型公司,才拥有自己的操作系统,而其他众多生产计算机的硬件厂商则采用别人开发的操作系统。因为Unix不需要太多的花费,因此很多厂商就选择了Unix作为他们生产的计算机使用的操作系统。他们把Unix移植到自己的硬件环境下,而不必从头开发一个操作系统。
到了70年代末,在Unix发展到了版本6之后,AT&T认识到了Unix的价值,成立了Unix系统实验室(Unix System Lab,USL)来继续发展Unix。因此AT&T一方面继续发展内部使用的Unix版本7,一方面由USL开发对外正式发行的Unix版本,同时AT&T也宣布对Unix产品拥有所有权。几乎在同时,加州大学伯克利分校计算机系统研究小组(CSRG)使用Unix对操作系统进行研究,因此他们的研究成果就反映在他们使用的Unix中。他们对Unix的改进相当多,增加了很多当时非常先进的特性,包括更好的内存管理,快速且健壮的文件系统等,大部分原有的源代码都被重新写过,以支持这些新特性。很多其他Unix使用者,包括其他大学和商业机构,都希望能得到CSRG改进的Unix系统。因此CSRG中的研究人员把他们的Unix组成一个完整的Unix系统──BSD Unix(Berkeley Software Distribution),向外发行。
BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础,而AT&T与其同时存在的Unix版本的影响就小得多。同时很多研究项目也是以BSD Unix为研究系统,例如美国国防部的项目─ARPANET,ARPANET今天发展成为了Internet,而BSD Unix中最先实现了TCP/IP,使Internet和Unix紧密结合在一起。
而AT&T的Unix系统实验室,同时也在不断改进他们的商用Unix版本,直到他们吸收了BSD Unix中已有的各种先进特性,并结合其本身的特点,推出了Unix System V版本之后,情况才有了改变。从此以后,BSD Unix和Unix System V形成了当今Unix的两大主流,现代的Unix版本大部分都是这两个版本的衍生产品。
Unix的版本号表示方式比较复杂,各种不同的Unix版本有自己的版本标识方式,如最早AT&T开发的内部Unix使用简单的顺序号来标识版本,从V 1到V 7。
BSD使用主版本加次版本的方法标识,如4.2BSD,4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2。
AT&T使用罗马数字来标识他们的对外发布的Unix版本,用Release来表示次版本。如Sys tem V Release 4(简写为SVR4)标识AT&T的Unix System V的第四次发布的版本。
其他商业公司的Unix使用自己的版本标识,如Sun的Solaris 2.6,IBM的AIX 4.0等。
虽然AT&T的Unix System V也是非常优秀的Unix版本,但是BSD Unix在Un ix领域内的影响更大。AT&T的Unix系统实验室一直关注着BSD的发展,在1992年,Unix系统实验室指控BSDI── 一家发行商业BSD Unix的公司,违反了AT&T的许可权,发布自己的Unix版本,并进一步指控伯克利计算机系统研究组泄漏了Unix的商业机密(此时的4.3BSD中来自AT&T Un ix的代码已经不足10%)。这个官司影响了很多Unix厂商,使他们不得不从BSD Unix转向Unix Sys tem V,以避免法律问题。以至于当今大多数商业Unix版本都是基于Unix System V的。
这件有关Unix版权的案子直到Unix系统实验室被AT&T卖给了Novell公司后才得以解决, Novell不打算陷入这样的法律纷争中,因此就采用了比较友好的做法。伯克利的CSRG被允许自由发布BSD,但是其中来自于AT&T的代码必须完全删除。因此CSRG就对他们最新的4.4BSD进行了修改,删除了那些来自于AT&T的源代码,发布了4.4 BSD Lite版本(该系统是不完整的,尤其对于英特尔386体系的计算机系统)。由于这个版本不存在法律问题,4.4BSD Lite成为了现代BSD系统的基础版本。
Novell的比较友善的做法还不止对BSD,他把自己的Unix改名为Unixware, 而将Unix商标赠送给X/Open── 一个由众多Unix厂家组成的联盟,这样这个联盟内的所有成员均可使用Unix商标。从此之后,Unix不再是专有产品了。后来Novell由于自身的经营问题,又将Unixware卖给SCO公司。同时,由于BSD系统已经十分成熟,作为对操作系统进行研究的目标已经达到,伯克利计算机系统研究组(CSRG)在发布了4 .4BSD-lite2之后就解散了,小组的科研人员有些进入了Unix商业公司,有些继续进行其他计算机领域的研究。此时,严格意义上的Unix System V和BSD Unix都不复存在了,存在的只是他们的各种后续版本。
回顾Unix的发展,可以注意到Unix与其他商业操作系统的不同之处主要在于其开放性。在系统开始设计时就考虑了各种不同使用者的需要,因而Unix被设计为具备很大可扩展性的系统。由于它的源码被分发给大学,从而在教育界和学术界影响很大,进而影响到商业领域中。大学生和研究者为了科研目的或个人兴趣在Unix上进行各种开发,并且不计较金钱利益,将这些源码公开,互相共享,这些行为极大丰富了Unix本身。很多计算机领域的科学家和技术人员遵循这些方式,开发了数以千计的自由软件,包括FreeBSD在内。正因为如此,当今的Internet才如此丰富多采,与其他商业网络不同,才能成为真正的全球网络。开放是Unix的灵魂,也是Internet的灵魂。
由于Unix的开放性,另一方面就使得存在多个不同的Unix版本。由于不同的Unix使用稍有差别的文件、目录结构,提供略有不同的系统调用,因此对系统管理、以及为Unix开发可移植的应用程序带来一定的困难。例如Sys tem V和BSD的很多系统调用就存在不同。在Unix历史发展中也存在将Unix完全统一的努力,例如POSIX 规范就是各个Unix厂商经过协商,达成的Unix操作系统应该遵循的一套基本系统调用的规定。然而由于存在多个Un ix系统,各个厂商的意见很不统一,因此POSIX规范制定的很宽松,甚至Windows NT中也存在一个POSI X子系统。事实上,只要各个Unix之间协调发展,不故意为了商业目的而人为的制造系统差异,就能够保持各个Unix 之间不致具有太大的差别,保持Unix系统的多样性比只有唯一的一个Unix系统更能够促进技术的进步和发展,企图人为的统一Unix的想法只能是某一个Unix厂商的一厢情愿。
有时为了避免法律纠纷,表明自己的程序代码是完全重写的,一个软件厂商会故意将一些函数声明的与其他系统的中的同类函数不同,例如使用不同的函数参数或改变函数参数的顺序等。Unix System V中的很多系统调用与BS D Unix不同的部分原因也在于此。这些差异人为造成了不同系统的源程序的差异。
FreeBSD的起源和发展
Unix的魅力不仅在于其功能的强大性,还在于其优秀的可扩展性,它提供了高级语言C和各种解释语言可用于编写程序。利用这些系统提供的工具,使用者就能按照自己的需要和兴趣对原有系统进行扩展,满足相当一部分计算机研究人员和使用者的需要,这样Unix就具备更强大的能力,完成各种复杂的任务。一旦用熟了Unix,体会到Unix 的强大功能,使用者就会希望一直使用它,而不是仅具备有限能力的其他计算机系统。企业也希望能在其可以承受的条件下,利用Unix系统的强大处理能力。
由于Unix是多用户操作系统,作为系统的普通使用者只能使用系统提供的有限功能,而只有Unix系统管理员才能充分利用其的全部能力。因而拥有自己的Unix系统也是一个普通Unix使用者的愿望。但是在那些时候,能够满足这些愿望的计算机并不是每个人都能买得起的。昂贵的硬件,以及Unix逐渐商业化趋势,都使得拥有自己的Unix对大多数人只是美好的愿望,而使用Unix的地方主要为一些要求较高的科研和大中型公司机构。
到80年代,个人计算机的出现,使得硬件的价格能被个人和小企业接受了,给拥有一个Unix系统的愿望带来了一线曙光。但是使用8086芯片的个人计算机能力比较差,在其上不能实现真正正常工作的多用户系统。进入九十年代之后,英特尔公司推出的80386芯片使个人计算机的计算能力大大提高,在个人计算机上构建一个可以真正使用的Unix也成为了可能。
事实上此时能运行在X86平台上的Unix相当有限,Mircosoft的Xienx是一种(后来发展成为S CO Unix),但不能指望能自由、免费使用这个商用系统。要移植Unix到PC平台上便需要Unix的源代码,而此时受AT&T的许可权的限制,Unix代码还不能被自由获得(但在BSD与AT&T的法律纠纷之后的4.4 BSD Lite不再受这个限制了,可以在BSD许可下自由使用)。很多计算机爱好者为了实现一个可以自由使用的操作系统,不但进行着努力。自由软件基金会的GNU计划的目的就是打算创建一个自由的、与Unix类似的操作系统,为了实现这个目的,GNU开发了很多非常有效的工具、包括编译器和很多系统命令,然而GNU计划中的操作系统内核 ──HURD,却进展缓慢,从而无法构建一个完整的操作系统。很快,就有计算机爱好者开始考虑在个人计算机平台上构建一个Unix内核。芬兰一位计算机研究生Linus Torvalds开始了这个工作,他通过学习Minix──一个用于教学目的的简单Unix系统,在x86平台上构建了Linux内核,这个内核和GNU的系统工具结合起来,取得了相当大的成功,成为当前非常流行的GNU/Linux系统。
与这些努力相比,BSD方面的研究人员的行动则比较迟缓,一个原因是Unix技术上已经相当成熟,计算机系统研究组的大部分成员已经把注意力转向了其他研究项目,另外AT&T与BSD的法律纷争也使得BSD发展受到了阻碍。但是还是有两个将BSD移植到80386平台的开发工作同时进行,一个是BSD/386小组,他们的研究结果为商业版本的BSD/OS,属于商业公司BSDI。另一个就是386BSD计划,后来发展成为FreeBSD。
CSRG研究人员的条件比较优越,拥有足够的Unix系统,因此对个人计算机平台上的Unix系统没有太急迫的要求。
386BSD计划由Bill Jolitz等研究人员发起,将4.3BSD Net/2移植到80386平台上,并使用386BSD的名称发布。但是移植工作是一个复杂的任务,直到386BSD 0.5版本,系统中仍然存在相当多的问题没有解决。于是在1993年,另一些研究者决定加入这个计划,打算和Bill Jolitz一起修正系统中存在的问题。但是这时计划的组织者Bill Jolitz突然决定退出,使得386BSD计划面临停止的危险。Bil l Jolitz作为计划的发起者和负责者并没有对这个计划以后该如何发展给出具体意见,因此386BSD计划是到此为止还是继续发展,就取决于其他开发者的决定。幸运的是,该项目的另三个参与者Nate Williams, Rod Grimes和Jordan K. Hubbard决定继续这项非常有意义的工作,他们采用由David Green man创造的名字FreeBSD作为系统的新名字,从此有了一种任何人都可以自由使用的Unix操作系统 ── Fr eeBSD。
BSD Unix使用一个神话中的精灵形象作为其吉祥物,这个吉祥物标志被FreeBSD、NetBSD继续使用,但不同BSD系统的精灵略有不同,右图为FreeBSD的BSD精灵形象。当用户浏览Internet时,会在很多与FreeBSD相关的网站上看到这个可爱的精灵标志。
1993年12月对于FreeBSD来讲是非常重要的日子,FreeBSD 1.0版本于这个月正式发布。这次FreeBSD的开发者找到了一家出版商Walnet Creek提供支持,来发布FreeBSD的光盘和提供高速 Internet网络服务,使得任何人都可以通过购买光盘或者通过Internet下载的方法,自由获得FreeBS D系统,使得FreeBSD取得了很大成功。而Walnet Creek也使用FreeBSD建成了Internet 上最大、最繁忙的匿名文件服务器──ftp.cdrom.com。
FreeBSD虽然可以自由获得,然而BSD与AT&T的法律纠纷仍然威胁着FreeBSD系统的合法性。就在FreeBSD得到相当多用户欢迎的时候,Unix系统实验室(此时已经卖给了Novell)与伯克利计算机系统研究小组的法律纷争有了结论。虽然最后不必进行赔偿,但是BSD Unix系统中必须去除原来来自AT& ;T的源码。伯克利计算机系统研究小组去除了这些不到10%源码,发布了4.4BSD Lite,其他基于BSD的U nix,包括FreeBSD在内,都被要求立即转换到4.4 BSD Lite上去。
这对FreeBSD是一次相当严重的打击,虽然4.4 BSD Lite只删除了一小部分代码,但尤其对于英特尔80386平台,缺乏这些代码,系统就不能正常运转。FreeBSD小组必须解决两个任务,首先是将FreeBS D从原本的4.3BSD迁移到4.4BSD上,再将删除的源码完全重写。这些任务相当于将4.4BSD Lite重新移植到80386上,因此这花费了FreeBSD核心小组很大的精力。因此直到1995年1月他们才发布了FreeB SD 2.0,这次就是一个完全的4.4BSD Lite的系统了。但是在大约一年时间之内,FreeBSD不能在原有1.0基础上进行改进并推出新版本,而这个时期正是Internet进一步发展的阶段,FreeBSD错过了一个发展壮大的好时机。而其竞争对手,如Linux,则取得了巨大的成功。
接下来,FreeBSD加快了开发节奏,2.1、2.2、3.0相继推出,这个系统在Internet上的应用也越来越多,尤其是对于要求高性能、高可靠性的网络服务器系统,FreeBSD提供了一个极具诱惑的选择。
由于Unix商标属于X/Open组织,而FreeBSD只是一个自由操作系统,从法律角度上看FreeBS D不能被叫作Unix(不能使用Unix做商标)。但是基于Unix本身的历史,FreeBSD可以算最原汁原味的U nix,在有的方面,它更具传统特色──或者说BSD Unix的学院特色。当前,Unix商标其实是只具有象征性的含义,没有人介意到底那些系统是X/Open的成员,可以被称作Unix,那些不是。Unix已经成为一个广泛的概念,只要是按照Unix为模板进行开发,所有的应用程序在C源程序级与其他Unix相互兼容,也同样被所有使用者承认为 Unix系统。因此这里的Unix包括BSD和System V在内的各种系统,也包括像Linux这样的兼容系统。
当前FreeBSD的版本
由于FreeBSD十分关心系统的性能和稳定性,同时FreeBSD的开发又非常活跃并十分开放。因此在系统开发中支持几个版本的FreeBSD系统并行发展,一些版本用于提供一个最具稳定性的操作系统,另一些版本逐渐融合进各种新特性,使FreeBSD不断发展。当前主要使用的FreeBSD有三个分支版本:
FreeBSD2.2.x-stable:这个分支是当前Internet上大部分网络服务器上使用的FreeBSD版本,经过无数实践验证,具有高稳定性的特点。但是由于3.0版本已经正式发布,FreeBSD的开发者已经于1999年1月决定停止对这个版本的开发,这个FreeBSD的分支版本进入维护状态,将仅仅进行修补一些可能存在的系统漏洞等工作。因此除非是现存的FreeBSD系统,或者为了特殊目的要使用一些基于2.2.x开发的特殊软件,新安装的FreeBSD系统应该使用FreeBSD-3.x版本。这个系列中最后一个正式发布的光盘版本为F reeBSD 2.2.8-release。
FreeBSD3.x-stable:这个版本的第一个正式版本3.0-release,它于199 8年10月正式发布,随后就成为了稳定版本。它与2.2相比增加了对很多新硬件的支持,并进一步提高了性能。对于安装新的FreeBSD系统来讲,应该选用这个版本。当前已经发布了FreeBSD 3.2-release。
FreeBSD4.0-current:于1999年1月产生,同时FreeBSD 3.x-cur rent分支转变为FreeBSD 3.x-stable分支。当前还没有任何正式发布版本,需要通过Interne t获得源代码进行安装。
可以看到,FreeBSD的版本使用current或stable后缀进行修饰,其中使用stable修饰的版本是一个稳定的版本,它不是FreeBSD的最新版本,主要关心系统的性能和使用的连续性,同一个stable分支中的下一个版本主要是修订系统问题,因此stable分支得到很多商业用户的欢迎。current表示这个版本是正在开发的版本,还不成熟,它更关心新特性,每种可能的特性都被开发者尝试加入进FreeBSD中,但并不保证以后的正式发布版本会支持所有的特性,一些特性会因为不成熟或对大部分用户无益,即使曾经加入也可能从正式版本中去除。通常Fr eeBSD的爱好者和开发者使用这个分支,或者一些需要某些FreeBSD的新特性的用户,就必须使用这个分支。
FreeBSD选用current和stable来修饰FreeBSD不但是因为FreeBSD是一个不断发展、更新的系统,而且FreeBSD还是一个由Internet上的用户参与开发、使用Internet交流开发工作的系统。这与商业软件不同,商业软件的开发工作在公司内部,外界不能访问正在开发的版本,不能对要开发的软件发表意见和提出建议。而FreeBSD则相反,任何人只要通过Internet,都可以访问到FreeBSD的源码,并且Fr eeBSD开发者鼓励别人访问当前正在开发的源程序,鼓励提建议和进行自己的FreeBSD开发计划,如果这个计划的确不错,那么这个开发者就能被邀请进入FreeBSD开发组,他的计划就能被合并到正式的FreeBSD开发中去。但是,如果一个系统老是处于不断开发的过程,没有一个稳定的版本,显然得不利于希望将FreeBSD用在日常业务处理任务的普通用户。因此FreeBSD并存着两个同时发展的版本,stable版本为稳定版本,相当于商业软件中的对外发行的版本,current版本为正在开发的版本。当一个current版本已经足够稳定,这个版本就转变为stabl e版本,而FreeBSD开发组将转入下一个current版本的开发工作。
除了current和stable之外,还有另外两个后缀用来修饰FreeBSD的二进制发行版本。一个是r elease,如FreeBSD 3.0-release,表示这是一个正式发行的FreeBSD版本,但这个版本可以处于current分支或stable分支。但如果一个FreeBSD的current分支发布了release版本,这将表示它离进入stable状态不远了,此后该版本实际上不会再作太大的改动,已经是一个完全可用、足够稳定的 FreeBSD版本了。另一个后缀是snapshot,如FreeBSD 4.0-snapshot,表示这是一个预览版本,用于FreeBSD爱好者提前查看current分支当前的开发状态,尝试新特性用的。FreeBSD的光盘发行版本常常使用这两个词进行修饰。
因此对于FreeBSD用户,需要根据情况选择使用不同的版本。对于正式使用,应该选择stable版本,而对于进行学习、研究、开发FreeBSD,可以考虑使用current版本。
FreeBSD的功能特点
FreeBSD的运行环境是使用英特尔x86系列处理器的个人计算机,当然在AMD和Cyrix等公司的兼容芯片上运行也毫无问题(FreeBSD也被移植到使用sparc和alpha芯片上的RISC工作站环境上,然而这些平台不是FreeBSD的主要运行平台,相应的移植版本也不太完善)。
从FreeBSD的起源和发展过程可以看出,FreeBSD是一种自由Unix系统,它是由计算机科学家、软件工程师等志愿者通过Internet合作开发的,目的是为所有的使用者提供没有任何附加条件的自由Unix操作系统。初次接触自由软件的人,也许会怀疑软件的应用功能、性能等问题。但免费获得的方式和使用个人计算机硬件环境并不意味着FreeBSD系统仅仅是个人用户的玩具,事实上FreeBSD能够完成几乎所有其他Unix能完成的工作,应用范围十分广泛,并且性能非常优秀。在网络上使用FreeBSD用作网络服务器操作系统非常普遍,FreeBSD也是使个人计算机成为高性能Unix工作站的一条捷径。
FreeBSD的特点和应用范围
FreeBSD主要特点是它的高性能和高可靠性,除了BSD Unix本身已经是一个非常成熟的操作系统,F reeBSD开发小组也基于实际工作任务,花费了相当多的时间进行系统调试,以取得最大性能和最高可靠性。它的性能和可靠性并不逊于任何商用Unix系统,甚至更为优秀。
--FreeBSD是真正的32位操作系统,不是任何16位操作系统的升级版本。它是十分成熟的BSD Un ix向英特尔386体系的处理器进行移植的结果,系统核心不包含任何16位代码,也不需要兼容任何16位软件,从而提高了系统稳定性。
--FreeBSD具有可调整的动态优先级抢占式多任务能力。使多个应用程序能够十分平滑的共享系统资源,即使在高负载下仍然能在不同任务间平缓切换,而不会发生由于个别任务独占系统资源,其他任务因此而发生停顿、死锁现象,也决不会造成整个系统死锁。
--FreeBSD是多用户操作系统,可以支持多个使用者同时使用FreeBSD系统,共享系统的磁盘、外设、处理器等系统资源。每个用户也可以同时启动多个任务,使得工作效率更高。
--FreeBSD全面支持TCP/IP协议。FreeBSD能够十分方便的和其他支持TCP/IP的系统集成在一起,用作Internet/Intranet服务器,提供NFS,ftp,email,www,路由和防火墙能力。
--其操作系统内部的存储器保护机制使每个应用程序和用户互不干扰。一旦一个任务崩溃,其他任务仍然照常运行。由于FreeBSD中不存在任何16位代码,这使得这一点能够真正实现,保证了系统的强壮性。
--FreeBSD中使用另一个著名自由软件,XFree86,来提供工业标准的X窗口系统(X11R6),在X上可以运行多种图形界面软件提供方便用户使用的图形界面和应用软件。
--它也支持在英特尔的386芯片上运行的其他Unix操作系统的二进制执行文件,包括SCO Unix,B SD/OS,NetBSD,Linux等。能够直接运行这些系统的二进制应用程序而不需重新编译,这极大的丰富了Fr eeBSD下的可使用的应用软件。
--FreeBSD的Ports Collections包括了成千个立即可以使用的应用程序,使得安装应用程序十分简便。FreeBSD与其他多种Unix在源码级兼容,并且由于BSD在Unix和Internet发展中的巨大影响,大多数软件是在类似BSD的系统下开发的,因此FreeBSD是最容易移植的平台,在Internet上有很多的软件很容易移植到FreeBSD上。
--高效的虚拟存储器管理结构,可以按照需要合理分配内存空间,只有在必要的时候,内存中的数据才被交换到交换设备上去。并且磁盘缓冲区不是单独划分出来的,而是和虚拟存储器结合为一体,使FreeBSD既能够高效的满足要求大量内存的应用程序,又能最大效率的利用内存来缓冲硬盘数据,提高读、写硬盘效率。
--具有动态共享连接库的能力,使应用程序能够共享库函数(类似Windows下的DLL),充分利用内存和磁盘空间。
--FreeBSD下包括了各种高级语言和各种开发工具,C, C++, Fortran, perl, T cl/Tk, cvs 等。这使得软件开发和移植非常方便。
--FreeBSD提供系统的全部源代码,这样可以按需定制系统和进一步更改系统,提供了对应用环境的最大控制。另一方面这些源代码会经过世界范围内的程序员的检验和测试,避免系统中内嵌未知的恶意病毒代码。
--提供了在线文档和手册等丰富的技术资料。
FreeBSD的主要应用范围可以在网络服务器方面,但是FreeBSD的应用并不局限于此,具体怎样使用F reeBSD完全依赖于用户的目的,FreeBSD能够满足各种不同的需要。
网络服务器
Internet应用是FreeBSD使用最广的领域之一,因为Internet的前身,APPRNET的开发者,正是使用BSD Unix来实现的TCP/IP协议。因此FreeBSD具有最成熟、最稳定的TCP/IP实现,非常适合用作FTP服务器,WWW服务器,电子邮件服务器,域名服务器,USENET新闻服务器以及电子公告牌系统等网络服务器系统,此外,FreeBSD也能将廉价的个人计算机改变为软件路由器,防火墙设备。
用做网络服务器最重要的要求是稳定性,因此一般要安装FreeBSD的stable分支。FreeBSD 2 .2.x-stable分支在实际使用中已经证明了它具备非凡的稳定性,在网络上关于操作系统崩溃的调查中,对Fre eBSD崩溃次数的报道却很少,因此被称为 ”Rock-stable performance” (坚如磬石)。考虑到大部分个人计算机硬件的稳定性比专用的Unix网络服务器硬件的稳定性要差,就可以看出FreeBSD操作系统的稳定性是如何优秀了。FreeBSD 3.x-stable分支继承了2.2.x-stable的优点,虽然还没有经过足够时间的考验,但也可推断其性能和稳定性相当优秀。
个人工作站
FreeBSD的另一个方面的应用是将FreeBSD作为个人工作站的操作系统。专业Unix工作站价格昂贵,但FreeBSD充分利用了个人计算机硬件价廉的优势,以自己具备的优秀性能,使个人拥有高性能的Unix工作站成为可能。个人工作站要求工作在图形环境下,这需要运行X服务器软件,FreeBSD下有免费的XFree86和另一些商业X服务器软件,此外还包括X Window操作环境,例如免费的KDE或商业操作环境CDE等。
使用FreeBSD个人工作站时,除了性能要求之外,还必须有合适的应用软件进行支持。FreeBSD下可以运行大量的Unix程序,包括用于研究的各种软件包、软件开发所需的高级语言编译器、提供图形界面的Xwindow和 Xwindow下的各种应用等。这些软件通常是在不同的Unix下进行开发的,但由于不同的Unix均不同程度受到B SD的影响,FreeBSD都是这些软件可以移植的首选平台,而FreeBSD本身也提供了很好的机制用于简化软件的安装和配置。
上面提到的软件通常是提供源程序的Unix软件,这些软件可以很容易移植到FreeBSD系统中。但绝大多数商业软件不提供源程序,仅仅提供在某些平台下运行的二进制文件。在不同Unix下运行的二进制程序,即使都是英特尔平台下的程序,但操作系统对执行程序的处理略有不同,造成了执行程序格式的差异。FreeBSD提供了支持其他在英特尔平台上运行的商业Unix执行程序能力,如BSD/OS、SCO Unix、SCO UnixWare、Solari s x86和Linux。通过支持这些Unix的执行代码,FreeBSD下的应用程序更为丰富。
还可以将FreeBSD工作站代替昂贵的专用X终端,或者使用FreeBSD进行Unix下的软件开发等,将 FreeBSD系统用作不同的目的。
使用FreeBSD的实例
在熟悉了FreeBSD之后,就不会有人怀疑这个系统的性能了,因为这已经被Internet上无数使用Fr eeBSD作服务器的实例所证明过的。FreeBSD是Internet上非常流行的一种网络操作系统,应用实例很多。下面给出了一些著名的站点实例,当然FreeBSD的实际应用不只是这些例子中使用的范围。
Yahoo
作为Internet上具有传奇色彩的成功网站的典范,众人了解的Yahoo通常是它具备丰富的内容、年轻的亿万富翁传奇等内容。很少有人关心到底Yahoo是使用什么技术来构建他们的网站,也许很多人潜意识里认为它一定是由昂贵的专用服务器组成的,其实Yahoo是使用多台普通Pentium个人计算机来提供这么大的访问能力的,而在这些计算机上运行的就是FreeBSD系统。
可以在Yahoo中搜寻 “Yahoo and FreeBSD” ,就能搜寻到一篇由Yahoo的创始人之一David Filo写的介绍Yahoo为什么使用FreeBSD的文章 “Yahoo! and FreeBSD ”(http://www.freebsdmall.com/newsletter1/yahoo_and_freebsd.phtml)
他写道: “……但不久就发现我们使用的操作系统在设计时都不具备处理大量 HTTP请求的能力。事实上,当时还没有任何商业系统可以解决我们所面临的扩展问题,这也是身处网络技术最前沿所必须面对的无奈现实。
“…….我们又用过几种平台,包括 SGI IRIX,Linux 和 BSDI,但性能和稳定性都不能令人满意,我们只得继续寻找。随着 Yahoo 的日渐流行,平台的可扩展能力和稳定性是最关键的。那时我们 FreeB SD 还一无所知,但当读到有关介绍时,我决定试它一试。
“……几天之后我将一台FreeBSD系统加入我们的Web服务器集群中去,结果它的性能明显优于其它机器,而且运行更稳定。试验时间持续了几个星期,我们对FreeBSD很满意。这主要应归功于FreeBSD的稳定性、运行性能和允许访问源代码的特点,它还具备诱人的价格优势。从此,我们的产品和开发环境就几乎离不开它了。”
国内的163.net等免费邮件系统
在国内,虽然FreeBSD还不是广为人知,事实上它的应用却非常有名。网易公司基于FreeBSD开发的免费邮件系统,已经运行在www.163.net、www.263.net、www.371.net等网站上。
在网易的主页上(http://www.163.com),有网易公司丁磊的一篇文章 “PC不只是便宜的工作站” ,介绍网易为何选择FreeBSD。
关于网络服务器操作系统的调查
前面提到的例子,只是FreeBSD应用实例的几个,事实上在国外使用免费操作系统用做网络服务器非常普遍和流行。虽然由于它属于非商业产品,媒体一般不太关心它,但在Internet服务器领域中,它的重要性是无可否认的。为了了解Internet中的服务器到底都运行了那些系统,就需要对整个Internet进行调查。
显然有很多种不同的调查方式,例如使用抽样调查,或者发放调查表格等等,然而这些方法都有其局限性。而Int ernet Operating System Counter (ios++)是一次比较特别的调查,它的基本思路是对互联网上所有服务器使用的操作系统进行识别并统计结果。iso++使用一个程序自动收集互联网上的计算机地址,查询计算机并判断其使用的操作系统,虽然无法保证iso++能识别所有种类的操作系统,但毫无疑问它能识别绝大多数流行的操作系统。
遗憾的是,这次调查并没有彻底完成,但这是由于人为而非技术的原因而不得不停止的。由于这个系统会扫描网络中的所有主机,因此其行为类似于黑客程序的做法。在它对意大利的计算机进行网络查询时被一家以色列网络安全公司怀疑为黑客入侵。然而即使如此,这次调查也运行了大约10天,扫描了上百万台服务器,其结果也能真实反应网络操作系统的真实面貌。
这次网络调查的主页为:http://www.hzo.cubenet.de/ioscount/
对Internet上的Web服务器使用的操作系统的调查
调查日期: 从1998年9月9日到9月19日
排名 操作系统 主机数量 占识别出的主机比率
1. Linux 171623 26.3%
2. Windows 95/98/NT 152682 23.4%
3. BSD Family 147602 22.6%
4. Solaris/SunOS 94230 14.4%
5. IRIX 29384 4.5%
6. Mac/Apple 13736 2.1%
7. AIX 10865 1.7%
8. HP/UX 10237 1.6%
9. Reliant Unix/Sinix 3971 0.6%
10. Digital Unix 3775 0.6%
11. SCO Unix 2507 0.4%
12. Novell Netware 2285 0.4%
总数 642899 98.6%
上表是其对Internet上Web服务器的调查结果,可以看出,以FreeBSD为主的BSD家族的操作系统(还包括BSD/OS、NetBSD和OpenBSD,但这些系统的使用者要少于FreeBSD的使用者),在网络服务器中占据第三名的位置,而其百分比与前两名不相上下。如果要考虑到相应Web服务器的重要性,使用FreeBSD等Unix系统的Web服务器,无论从其服务的重要性还是提供网络数据的流量来讲,都是使用Windows操作系统的服务器无法相比的。
在计算机领域,Unix一直是作为高端平台而出现的。几年以前,只有在大型机构的专用机房中才能接触到它们,甚至稍小一些的机构也负担不起购买Unix工作站的费用。只有很少的使用者才有机会接触和使用Unix,能管理和维护 Unix系统的计算机专业人员就更少了,这就使得Unix总是披着一层神秘的面纱,在普通使用者面前,Unix属于一种难于使用、十分昂贵的操作系统。然而,当运行在个人电脑上的自由Unix系统出现之后,这种情况已经改变了。
事实上,今天的Unix已经不能说是一个单一的操作系统,它包括了非常多的种类,有高端的HP、SUN服务器,也有中、低端的运行在Intel平台上的Unix系统。Unix不再是普通使用者可望而不可及的操作系统了,每个喜爱Unix的人都可以在自己的PC机中安装上一套Unix系统,学习它、使用它。而中小企业也可以使用PC服务器来运行Unix系统,充分利用Unix系统的强大处理能力。
FreeBSD就是一种运行在Intel平台上、可以自由使用的Unix系统,它可以从Internet上免费获得。而它又具备极其优异的性能,使它得到了计算机研究人员和网络专业人士的认可。因此,不但专业科研人员把它用作个人使用的Unix工作站,很多企业,特别是ISP(Internet服务提供商)都使用运行FreeBSD的高档P C服务器来为他们的众多用户提供网络服务。
FreeBSD的起源
自从1969年AT&T Bell实验室研究人员创造了Unix之后,Unix就不断发展,逐渐成为了主流操作系统。虽然当前Windows系列已经占据了桌面计算机的领域,其中Windows NT服务器也在网络服务器领域得到了部分用户的承认,但在高档工作站和服务器领域,Unix仍然具有无可替代的作用。尤其在用作Inter net服务器方面,Unix的高性能、高可靠性、以及高度可扩展的能力仍然不是其他操作系统所能够代替的。
虽然Unix由AT&T创造,但它如此流行却并不能完全归功于AT&T自己的功劳。现代Un ix不是一个厂家的单独产品,在它长期的发展过程中形成了多种不同的版本。惟其丰富多样,才使得Unix具有强大的生命力。FreeBSD正是Unix众多分支中相当优秀的一支,它的发展历史也相当悠久,是著名的BSD Unix的一个继承者,因此要了解FreeBSD发展的历史,首先就要了解Unix发展的历程。
Unix的历史发展
Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT& T贝尔实验室实现的,运行在一台DEC PDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操作系统最基本的一些特性。后来Ken Thompson和Dennis Ritchie使用C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。从那以后,Unix系统开始了令人瞩目的发展。
由于此时AT&T还没有把Unix作为它的正式商品,因此研究人员只是在实验室内部使用并完善它。正是由于Unix是被作为研究项目,其他科研机构和大学的计算机研究人员也希望能得到这个系统,以便进行自己的研究。A T&T以分发许可证的方法,对Unix仅仅收取很少的费用,大学和研究机构就能获得Unix的源代码以进行研究。Unix的源代码被散发到各个大学,一方面使得科研人员能够根据需要改进系统,或者将其移植到其他的硬件环境中去,另一方面培养了懂得Unix使用和编程的大量的学生,这使得Unix的普及更为广泛。
由于操作系统的开发相当困难,只有少数的计算机厂商,如IBM、Digital等大型公司,才拥有自己的操作系统,而其他众多生产计算机的硬件厂商则采用别人开发的操作系统。因为Unix不需要太多的花费,因此很多厂商就选择了Unix作为他们生产的计算机使用的操作系统。他们把Unix移植到自己的硬件环境下,而不必从头开发一个操作系统。
到了70年代末,在Unix发展到了版本6之后,AT&T认识到了Unix的价值,成立了Unix系统实验室(Unix System Lab,USL)来继续发展Unix。因此AT&T一方面继续发展内部使用的Unix版本7,一方面由USL开发对外正式发行的Unix版本,同时AT&T也宣布对Unix产品拥有所有权。几乎在同时,加州大学伯克利分校计算机系统研究小组(CSRG)使用Unix对操作系统进行研究,因此他们的研究成果就反映在他们使用的Unix中。他们对Unix的改进相当多,增加了很多当时非常先进的特性,包括更好的内存管理,快速且健壮的文件系统等,大部分原有的源代码都被重新写过,以支持这些新特性。很多其他Unix使用者,包括其他大学和商业机构,都希望能得到CSRG改进的Unix系统。因此CSRG中的研究人员把他们的Unix组成一个完整的Unix系统──BSD Unix(Berkeley Software Distribution),向外发行。
BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础,而AT&T与其同时存在的Unix版本的影响就小得多。同时很多研究项目也是以BSD Unix为研究系统,例如美国国防部的项目─ARPANET,ARPANET今天发展成为了Internet,而BSD Unix中最先实现了TCP/IP,使Internet和Unix紧密结合在一起。
而AT&T的Unix系统实验室,同时也在不断改进他们的商用Unix版本,直到他们吸收了BSD Unix中已有的各种先进特性,并结合其本身的特点,推出了Unix System V版本之后,情况才有了改变。从此以后,BSD Unix和Unix System V形成了当今Unix的两大主流,现代的Unix版本大部分都是这两个版本的衍生产品。
Unix的版本号表示方式比较复杂,各种不同的Unix版本有自己的版本标识方式,如最早AT&T开发的内部Unix使用简单的顺序号来标识版本,从V 1到V 7。
BSD使用主版本加次版本的方法标识,如4.2BSD,4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2。
AT&T使用罗马数字来标识他们的对外发布的Unix版本,用Release来表示次版本。如Sys tem V Release 4(简写为SVR4)标识AT&T的Unix System V的第四次发布的版本。
其他商业公司的Unix使用自己的版本标识,如Sun的Solaris 2.6,IBM的AIX 4.0等。
虽然AT&T的Unix System V也是非常优秀的Unix版本,但是BSD Unix在Un ix领域内的影响更大。AT&T的Unix系统实验室一直关注着BSD的发展,在1992年,Unix系统实验室指控BSDI── 一家发行商业BSD Unix的公司,违反了AT&T的许可权,发布自己的Unix版本,并进一步指控伯克利计算机系统研究组泄漏了Unix的商业机密(此时的4.3BSD中来自AT&T Un ix的代码已经不足10%)。这个官司影响了很多Unix厂商,使他们不得不从BSD Unix转向Unix Sys tem V,以避免法律问题。以至于当今大多数商业Unix版本都是基于Unix System V的。
这件有关Unix版权的案子直到Unix系统实验室被AT&T卖给了Novell公司后才得以解决, Novell不打算陷入这样的法律纷争中,因此就采用了比较友好的做法。伯克利的CSRG被允许自由发布BSD,但是其中来自于AT&T的代码必须完全删除。因此CSRG就对他们最新的4.4BSD进行了修改,删除了那些来自于AT&T的源代码,发布了4.4 BSD Lite版本(该系统是不完整的,尤其对于英特尔386体系的计算机系统)。由于这个版本不存在法律问题,4.4BSD Lite成为了现代BSD系统的基础版本。
Novell的比较友善的做法还不止对BSD,他把自己的Unix改名为Unixware, 而将Unix商标赠送给X/Open── 一个由众多Unix厂家组成的联盟,这样这个联盟内的所有成员均可使用Unix商标。从此之后,Unix不再是专有产品了。后来Novell由于自身的经营问题,又将Unixware卖给SCO公司。同时,由于BSD系统已经十分成熟,作为对操作系统进行研究的目标已经达到,伯克利计算机系统研究组(CSRG)在发布了4 .4BSD-lite2之后就解散了,小组的科研人员有些进入了Unix商业公司,有些继续进行其他计算机领域的研究。此时,严格意义上的Unix System V和BSD Unix都不复存在了,存在的只是他们的各种后续版本。
回顾Unix的发展,可以注意到Unix与其他商业操作系统的不同之处主要在于其开放性。在系统开始设计时就考虑了各种不同使用者的需要,因而Unix被设计为具备很大可扩展性的系统。由于它的源码被分发给大学,从而在教育界和学术界影响很大,进而影响到商业领域中。大学生和研究者为了科研目的或个人兴趣在Unix上进行各种开发,并且不计较金钱利益,将这些源码公开,互相共享,这些行为极大丰富了Unix本身。很多计算机领域的科学家和技术人员遵循这些方式,开发了数以千计的自由软件,包括FreeBSD在内。正因为如此,当今的Internet才如此丰富多采,与其他商业网络不同,才能成为真正的全球网络。开放是Unix的灵魂,也是Internet的灵魂。
由于Unix的开放性,另一方面就使得存在多个不同的Unix版本。由于不同的Unix使用稍有差别的文件、目录结构,提供略有不同的系统调用,因此对系统管理、以及为Unix开发可移植的应用程序带来一定的困难。例如Sys tem V和BSD的很多系统调用就存在不同。在Unix历史发展中也存在将Unix完全统一的努力,例如POSIX 规范就是各个Unix厂商经过协商,达成的Unix操作系统应该遵循的一套基本系统调用的规定。然而由于存在多个Un ix系统,各个厂商的意见很不统一,因此POSIX规范制定的很宽松,甚至Windows NT中也存在一个POSI X子系统。事实上,只要各个Unix之间协调发展,不故意为了商业目的而人为的制造系统差异,就能够保持各个Unix 之间不致具有太大的差别,保持Unix系统的多样性比只有唯一的一个Unix系统更能够促进技术的进步和发展,企图人为的统一Unix的想法只能是某一个Unix厂商的一厢情愿。
有时为了避免法律纠纷,表明自己的程序代码是完全重写的,一个软件厂商会故意将一些函数声明的与其他系统的中的同类函数不同,例如使用不同的函数参数或改变函数参数的顺序等。Unix System V中的很多系统调用与BS D Unix不同的部分原因也在于此。这些差异人为造成了不同系统的源程序的差异。
FreeBSD的起源和发展
Unix的魅力不仅在于其功能的强大性,还在于其优秀的可扩展性,它提供了高级语言C和各种解释语言可用于编写程序。利用这些系统提供的工具,使用者就能按照自己的需要和兴趣对原有系统进行扩展,满足相当一部分计算机研究人员和使用者的需要,这样Unix就具备更强大的能力,完成各种复杂的任务。一旦用熟了Unix,体会到Unix 的强大功能,使用者就会希望一直使用它,而不是仅具备有限能力的其他计算机系统。企业也希望能在其可以承受的条件下,利用Unix系统的强大处理能力。
由于Unix是多用户操作系统,作为系统的普通使用者只能使用系统提供的有限功能,而只有Unix系统管理员才能充分利用其的全部能力。因而拥有自己的Unix系统也是一个普通Unix使用者的愿望。但是在那些时候,能够满足这些愿望的计算机并不是每个人都能买得起的。昂贵的硬件,以及Unix逐渐商业化趋势,都使得拥有自己的Unix对大多数人只是美好的愿望,而使用Unix的地方主要为一些要求较高的科研和大中型公司机构。
到80年代,个人计算机的出现,使得硬件的价格能被个人和小企业接受了,给拥有一个Unix系统的愿望带来了一线曙光。但是使用8086芯片的个人计算机能力比较差,在其上不能实现真正正常工作的多用户系统。进入九十年代之后,英特尔公司推出的80386芯片使个人计算机的计算能力大大提高,在个人计算机上构建一个可以真正使用的Unix也成为了可能。
事实上此时能运行在X86平台上的Unix相当有限,Mircosoft的Xienx是一种(后来发展成为S CO Unix),但不能指望能自由、免费使用这个商用系统。要移植Unix到PC平台上便需要Unix的源代码,而此时受AT&T的许可权的限制,Unix代码还不能被自由获得(但在BSD与AT&T的法律纠纷之后的4.4 BSD Lite不再受这个限制了,可以在BSD许可下自由使用)。很多计算机爱好者为了实现一个可以自由使用的操作系统,不但进行着努力。自由软件基金会的GNU计划的目的就是打算创建一个自由的、与Unix类似的操作系统,为了实现这个目的,GNU开发了很多非常有效的工具、包括编译器和很多系统命令,然而GNU计划中的操作系统内核 ──HURD,却进展缓慢,从而无法构建一个完整的操作系统。很快,就有计算机爱好者开始考虑在个人计算机平台上构建一个Unix内核。芬兰一位计算机研究生Linus Torvalds开始了这个工作,他通过学习Minix──一个用于教学目的的简单Unix系统,在x86平台上构建了Linux内核,这个内核和GNU的系统工具结合起来,取得了相当大的成功,成为当前非常流行的GNU/Linux系统。
与这些努力相比,BSD方面的研究人员的行动则比较迟缓,一个原因是Unix技术上已经相当成熟,计算机系统研究组的大部分成员已经把注意力转向了其他研究项目,另外AT&T与BSD的法律纷争也使得BSD发展受到了阻碍。但是还是有两个将BSD移植到80386平台的开发工作同时进行,一个是BSD/386小组,他们的研究结果为商业版本的BSD/OS,属于商业公司BSDI。另一个就是386BSD计划,后来发展成为FreeBSD。
CSRG研究人员的条件比较优越,拥有足够的Unix系统,因此对个人计算机平台上的Unix系统没有太急迫的要求。
386BSD计划由Bill Jolitz等研究人员发起,将4.3BSD Net/2移植到80386平台上,并使用386BSD的名称发布。但是移植工作是一个复杂的任务,直到386BSD 0.5版本,系统中仍然存在相当多的问题没有解决。于是在1993年,另一些研究者决定加入这个计划,打算和Bill Jolitz一起修正系统中存在的问题。但是这时计划的组织者Bill Jolitz突然决定退出,使得386BSD计划面临停止的危险。Bil l Jolitz作为计划的发起者和负责者并没有对这个计划以后该如何发展给出具体意见,因此386BSD计划是到此为止还是继续发展,就取决于其他开发者的决定。幸运的是,该项目的另三个参与者Nate Williams, Rod Grimes和Jordan K. Hubbard决定继续这项非常有意义的工作,他们采用由David Green man创造的名字FreeBSD作为系统的新名字,从此有了一种任何人都可以自由使用的Unix操作系统 ── Fr eeBSD。
BSD Unix使用一个神话中的精灵形象作为其吉祥物,这个吉祥物标志被FreeBSD、NetBSD继续使用,但不同BSD系统的精灵略有不同,右图为FreeBSD的BSD精灵形象。当用户浏览Internet时,会在很多与FreeBSD相关的网站上看到这个可爱的精灵标志。
1993年12月对于FreeBSD来讲是非常重要的日子,FreeBSD 1.0版本于这个月正式发布。这次FreeBSD的开发者找到了一家出版商Walnet Creek提供支持,来发布FreeBSD的光盘和提供高速 Internet网络服务,使得任何人都可以通过购买光盘或者通过Internet下载的方法,自由获得FreeBS D系统,使得FreeBSD取得了很大成功。而Walnet Creek也使用FreeBSD建成了Internet 上最大、最繁忙的匿名文件服务器──ftp.cdrom.com。
FreeBSD虽然可以自由获得,然而BSD与AT&T的法律纠纷仍然威胁着FreeBSD系统的合法性。就在FreeBSD得到相当多用户欢迎的时候,Unix系统实验室(此时已经卖给了Novell)与伯克利计算机系统研究小组的法律纷争有了结论。虽然最后不必进行赔偿,但是BSD Unix系统中必须去除原来来自AT& ;T的源码。伯克利计算机系统研究小组去除了这些不到10%源码,发布了4.4BSD Lite,其他基于BSD的U nix,包括FreeBSD在内,都被要求立即转换到4.4 BSD Lite上去。
这对FreeBSD是一次相当严重的打击,虽然4.4 BSD Lite只删除了一小部分代码,但尤其对于英特尔80386平台,缺乏这些代码,系统就不能正常运转。FreeBSD小组必须解决两个任务,首先是将FreeBS D从原本的4.3BSD迁移到4.4BSD上,再将删除的源码完全重写。这些任务相当于将4.4BSD Lite重新移植到80386上,因此这花费了FreeBSD核心小组很大的精力。因此直到1995年1月他们才发布了FreeB SD 2.0,这次就是一个完全的4.4BSD Lite的系统了。但是在大约一年时间之内,FreeBSD不能在原有1.0基础上进行改进并推出新版本,而这个时期正是Internet进一步发展的阶段,FreeBSD错过了一个发展壮大的好时机。而其竞争对手,如Linux,则取得了巨大的成功。
接下来,FreeBSD加快了开发节奏,2.1、2.2、3.0相继推出,这个系统在Internet上的应用也越来越多,尤其是对于要求高性能、高可靠性的网络服务器系统,FreeBSD提供了一个极具诱惑的选择。
由于Unix商标属于X/Open组织,而FreeBSD只是一个自由操作系统,从法律角度上看FreeBS D不能被叫作Unix(不能使用Unix做商标)。但是基于Unix本身的历史,FreeBSD可以算最原汁原味的U nix,在有的方面,它更具传统特色──或者说BSD Unix的学院特色。当前,Unix商标其实是只具有象征性的含义,没有人介意到底那些系统是X/Open的成员,可以被称作Unix,那些不是。Unix已经成为一个广泛的概念,只要是按照Unix为模板进行开发,所有的应用程序在C源程序级与其他Unix相互兼容,也同样被所有使用者承认为 Unix系统。因此这里的Unix包括BSD和System V在内的各种系统,也包括像Linux这样的兼容系统。
当前FreeBSD的版本
由于FreeBSD十分关心系统的性能和稳定性,同时FreeBSD的开发又非常活跃并十分开放。因此在系统开发中支持几个版本的FreeBSD系统并行发展,一些版本用于提供一个最具稳定性的操作系统,另一些版本逐渐融合进各种新特性,使FreeBSD不断发展。当前主要使用的FreeBSD有三个分支版本:
FreeBSD2.2.x-stable:这个分支是当前Internet上大部分网络服务器上使用的FreeBSD版本,经过无数实践验证,具有高稳定性的特点。但是由于3.0版本已经正式发布,FreeBSD的开发者已经于1999年1月决定停止对这个版本的开发,这个FreeBSD的分支版本进入维护状态,将仅仅进行修补一些可能存在的系统漏洞等工作。因此除非是现存的FreeBSD系统,或者为了特殊目的要使用一些基于2.2.x开发的特殊软件,新安装的FreeBSD系统应该使用FreeBSD-3.x版本。这个系列中最后一个正式发布的光盘版本为F reeBSD 2.2.8-release。
FreeBSD3.x-stable:这个版本的第一个正式版本3.0-release,它于199 8年10月正式发布,随后就成为了稳定版本。它与2.2相比增加了对很多新硬件的支持,并进一步提高了性能。对于安装新的FreeBSD系统来讲,应该选用这个版本。当前已经发布了FreeBSD 3.2-release。
FreeBSD4.0-current:于1999年1月产生,同时FreeBSD 3.x-cur rent分支转变为FreeBSD 3.x-stable分支。当前还没有任何正式发布版本,需要通过Interne t获得源代码进行安装。
可以看到,FreeBSD的版本使用current或stable后缀进行修饰,其中使用stable修饰的版本是一个稳定的版本,它不是FreeBSD的最新版本,主要关心系统的性能和使用的连续性,同一个stable分支中的下一个版本主要是修订系统问题,因此stable分支得到很多商业用户的欢迎。current表示这个版本是正在开发的版本,还不成熟,它更关心新特性,每种可能的特性都被开发者尝试加入进FreeBSD中,但并不保证以后的正式发布版本会支持所有的特性,一些特性会因为不成熟或对大部分用户无益,即使曾经加入也可能从正式版本中去除。通常Fr eeBSD的爱好者和开发者使用这个分支,或者一些需要某些FreeBSD的新特性的用户,就必须使用这个分支。
FreeBSD选用current和stable来修饰FreeBSD不但是因为FreeBSD是一个不断发展、更新的系统,而且FreeBSD还是一个由Internet上的用户参与开发、使用Internet交流开发工作的系统。这与商业软件不同,商业软件的开发工作在公司内部,外界不能访问正在开发的版本,不能对要开发的软件发表意见和提出建议。而FreeBSD则相反,任何人只要通过Internet,都可以访问到FreeBSD的源码,并且Fr eeBSD开发者鼓励别人访问当前正在开发的源程序,鼓励提建议和进行自己的FreeBSD开发计划,如果这个计划的确不错,那么这个开发者就能被邀请进入FreeBSD开发组,他的计划就能被合并到正式的FreeBSD开发中去。但是,如果一个系统老是处于不断开发的过程,没有一个稳定的版本,显然得不利于希望将FreeBSD用在日常业务处理任务的普通用户。因此FreeBSD并存着两个同时发展的版本,stable版本为稳定版本,相当于商业软件中的对外发行的版本,current版本为正在开发的版本。当一个current版本已经足够稳定,这个版本就转变为stabl e版本,而FreeBSD开发组将转入下一个current版本的开发工作。
除了current和stable之外,还有另外两个后缀用来修饰FreeBSD的二进制发行版本。一个是r elease,如FreeBSD 3.0-release,表示这是一个正式发行的FreeBSD版本,但这个版本可以处于current分支或stable分支。但如果一个FreeBSD的current分支发布了release版本,这将表示它离进入stable状态不远了,此后该版本实际上不会再作太大的改动,已经是一个完全可用、足够稳定的 FreeBSD版本了。另一个后缀是snapshot,如FreeBSD 4.0-snapshot,表示这是一个预览版本,用于FreeBSD爱好者提前查看current分支当前的开发状态,尝试新特性用的。FreeBSD的光盘发行版本常常使用这两个词进行修饰。
因此对于FreeBSD用户,需要根据情况选择使用不同的版本。对于正式使用,应该选择stable版本,而对于进行学习、研究、开发FreeBSD,可以考虑使用current版本。
FreeBSD的功能特点
FreeBSD的运行环境是使用英特尔x86系列处理器的个人计算机,当然在AMD和Cyrix等公司的兼容芯片上运行也毫无问题(FreeBSD也被移植到使用sparc和alpha芯片上的RISC工作站环境上,然而这些平台不是FreeBSD的主要运行平台,相应的移植版本也不太完善)。
从FreeBSD的起源和发展过程可以看出,FreeBSD是一种自由Unix系统,它是由计算机科学家、软件工程师等志愿者通过Internet合作开发的,目的是为所有的使用者提供没有任何附加条件的自由Unix操作系统。初次接触自由软件的人,也许会怀疑软件的应用功能、性能等问题。但免费获得的方式和使用个人计算机硬件环境并不意味着FreeBSD系统仅仅是个人用户的玩具,事实上FreeBSD能够完成几乎所有其他Unix能完成的工作,应用范围十分广泛,并且性能非常优秀。在网络上使用FreeBSD用作网络服务器操作系统非常普遍,FreeBSD也是使个人计算机成为高性能Unix工作站的一条捷径。
FreeBSD的特点和应用范围
FreeBSD主要特点是它的高性能和高可靠性,除了BSD Unix本身已经是一个非常成熟的操作系统,F reeBSD开发小组也基于实际工作任务,花费了相当多的时间进行系统调试,以取得最大性能和最高可靠性。它的性能和可靠性并不逊于任何商用Unix系统,甚至更为优秀。
--FreeBSD是真正的32位操作系统,不是任何16位操作系统的升级版本。它是十分成熟的BSD Un ix向英特尔386体系的处理器进行移植的结果,系统核心不包含任何16位代码,也不需要兼容任何16位软件,从而提高了系统稳定性。
--FreeBSD具有可调整的动态优先级抢占式多任务能力。使多个应用程序能够十分平滑的共享系统资源,即使在高负载下仍然能在不同任务间平缓切换,而不会发生由于个别任务独占系统资源,其他任务因此而发生停顿、死锁现象,也决不会造成整个系统死锁。
--FreeBSD是多用户操作系统,可以支持多个使用者同时使用FreeBSD系统,共享系统的磁盘、外设、处理器等系统资源。每个用户也可以同时启动多个任务,使得工作效率更高。
--FreeBSD全面支持TCP/IP协议。FreeBSD能够十分方便的和其他支持TCP/IP的系统集成在一起,用作Internet/Intranet服务器,提供NFS,ftp,email,www,路由和防火墙能力。
--其操作系统内部的存储器保护机制使每个应用程序和用户互不干扰。一旦一个任务崩溃,其他任务仍然照常运行。由于FreeBSD中不存在任何16位代码,这使得这一点能够真正实现,保证了系统的强壮性。
--FreeBSD中使用另一个著名自由软件,XFree86,来提供工业标准的X窗口系统(X11R6),在X上可以运行多种图形界面软件提供方便用户使用的图形界面和应用软件。
--它也支持在英特尔的386芯片上运行的其他Unix操作系统的二进制执行文件,包括SCO Unix,B SD/OS,NetBSD,Linux等。能够直接运行这些系统的二进制应用程序而不需重新编译,这极大的丰富了Fr eeBSD下的可使用的应用软件。
--FreeBSD的Ports Collections包括了成千个立即可以使用的应用程序,使得安装应用程序十分简便。FreeBSD与其他多种Unix在源码级兼容,并且由于BSD在Unix和Internet发展中的巨大影响,大多数软件是在类似BSD的系统下开发的,因此FreeBSD是最容易移植的平台,在Internet上有很多的软件很容易移植到FreeBSD上。
--高效的虚拟存储器管理结构,可以按照需要合理分配内存空间,只有在必要的时候,内存中的数据才被交换到交换设备上去。并且磁盘缓冲区不是单独划分出来的,而是和虚拟存储器结合为一体,使FreeBSD既能够高效的满足要求大量内存的应用程序,又能最大效率的利用内存来缓冲硬盘数据,提高读、写硬盘效率。
--具有动态共享连接库的能力,使应用程序能够共享库函数(类似Windows下的DLL),充分利用内存和磁盘空间。
--FreeBSD下包括了各种高级语言和各种开发工具,C, C++, Fortran, perl, T cl/Tk, cvs 等。这使得软件开发和移植非常方便。
--FreeBSD提供系统的全部源代码,这样可以按需定制系统和进一步更改系统,提供了对应用环境的最大控制。另一方面这些源代码会经过世界范围内的程序员的检验和测试,避免系统中内嵌未知的恶意病毒代码。
--提供了在线文档和手册等丰富的技术资料。
FreeBSD的主要应用范围可以在网络服务器方面,但是FreeBSD的应用并不局限于此,具体怎样使用F reeBSD完全依赖于用户的目的,FreeBSD能够满足各种不同的需要。
网络服务器
Internet应用是FreeBSD使用最广的领域之一,因为Internet的前身,APPRNET的开发者,正是使用BSD Unix来实现的TCP/IP协议。因此FreeBSD具有最成熟、最稳定的TCP/IP实现,非常适合用作FTP服务器,WWW服务器,电子邮件服务器,域名服务器,USENET新闻服务器以及电子公告牌系统等网络服务器系统,此外,FreeBSD也能将廉价的个人计算机改变为软件路由器,防火墙设备。
用做网络服务器最重要的要求是稳定性,因此一般要安装FreeBSD的stable分支。FreeBSD 2 .2.x-stable分支在实际使用中已经证明了它具备非凡的稳定性,在网络上关于操作系统崩溃的调查中,对Fre eBSD崩溃次数的报道却很少,因此被称为 ”Rock-stable performance” (坚如磬石)。考虑到大部分个人计算机硬件的稳定性比专用的Unix网络服务器硬件的稳定性要差,就可以看出FreeBSD操作系统的稳定性是如何优秀了。FreeBSD 3.x-stable分支继承了2.2.x-stable的优点,虽然还没有经过足够时间的考验,但也可推断其性能和稳定性相当优秀。
个人工作站
FreeBSD的另一个方面的应用是将FreeBSD作为个人工作站的操作系统。专业Unix工作站价格昂贵,但FreeBSD充分利用了个人计算机硬件价廉的优势,以自己具备的优秀性能,使个人拥有高性能的Unix工作站成为可能。个人工作站要求工作在图形环境下,这需要运行X服务器软件,FreeBSD下有免费的XFree86和另一些商业X服务器软件,此外还包括X Window操作环境,例如免费的KDE或商业操作环境CDE等。
使用FreeBSD个人工作站时,除了性能要求之外,还必须有合适的应用软件进行支持。FreeBSD下可以运行大量的Unix程序,包括用于研究的各种软件包、软件开发所需的高级语言编译器、提供图形界面的Xwindow和 Xwindow下的各种应用等。这些软件通常是在不同的Unix下进行开发的,但由于不同的Unix均不同程度受到B SD的影响,FreeBSD都是这些软件可以移植的首选平台,而FreeBSD本身也提供了很好的机制用于简化软件的安装和配置。
上面提到的软件通常是提供源程序的Unix软件,这些软件可以很容易移植到FreeBSD系统中。但绝大多数商业软件不提供源程序,仅仅提供在某些平台下运行的二进制文件。在不同Unix下运行的二进制程序,即使都是英特尔平台下的程序,但操作系统对执行程序的处理略有不同,造成了执行程序格式的差异。FreeBSD提供了支持其他在英特尔平台上运行的商业Unix执行程序能力,如BSD/OS、SCO Unix、SCO UnixWare、Solari s x86和Linux。通过支持这些Unix的执行代码,FreeBSD下的应用程序更为丰富。
还可以将FreeBSD工作站代替昂贵的专用X终端,或者使用FreeBSD进行Unix下的软件开发等,将 FreeBSD系统用作不同的目的。
使用FreeBSD的实例
在熟悉了FreeBSD之后,就不会有人怀疑这个系统的性能了,因为这已经被Internet上无数使用Fr eeBSD作服务器的实例所证明过的。FreeBSD是Internet上非常流行的一种网络操作系统,应用实例很多。下面给出了一些著名的站点实例,当然FreeBSD的实际应用不只是这些例子中使用的范围。
Yahoo
作为Internet上具有传奇色彩的成功网站的典范,众人了解的Yahoo通常是它具备丰富的内容、年轻的亿万富翁传奇等内容。很少有人关心到底Yahoo是使用什么技术来构建他们的网站,也许很多人潜意识里认为它一定是由昂贵的专用服务器组成的,其实Yahoo是使用多台普通Pentium个人计算机来提供这么大的访问能力的,而在这些计算机上运行的就是FreeBSD系统。
可以在Yahoo中搜寻 “Yahoo and FreeBSD” ,就能搜寻到一篇由Yahoo的创始人之一David Filo写的介绍Yahoo为什么使用FreeBSD的文章 “Yahoo! and FreeBSD ”(http://www.freebsdmall.com/newsletter1/yahoo_and_freebsd.phtml)
他写道: “……但不久就发现我们使用的操作系统在设计时都不具备处理大量 HTTP请求的能力。事实上,当时还没有任何商业系统可以解决我们所面临的扩展问题,这也是身处网络技术最前沿所必须面对的无奈现实。
“…….我们又用过几种平台,包括 SGI IRIX,Linux 和 BSDI,但性能和稳定性都不能令人满意,我们只得继续寻找。随着 Yahoo 的日渐流行,平台的可扩展能力和稳定性是最关键的。那时我们 FreeB SD 还一无所知,但当读到有关介绍时,我决定试它一试。
“……几天之后我将一台FreeBSD系统加入我们的Web服务器集群中去,结果它的性能明显优于其它机器,而且运行更稳定。试验时间持续了几个星期,我们对FreeBSD很满意。这主要应归功于FreeBSD的稳定性、运行性能和允许访问源代码的特点,它还具备诱人的价格优势。从此,我们的产品和开发环境就几乎离不开它了。”
国内的163.net等免费邮件系统
在国内,虽然FreeBSD还不是广为人知,事实上它的应用却非常有名。网易公司基于FreeBSD开发的免费邮件系统,已经运行在www.163.net、www.263.net、www.371.net等网站上。
在网易的主页上(http://www.163.com),有网易公司丁磊的一篇文章 “PC不只是便宜的工作站” ,介绍网易为何选择FreeBSD。
关于网络服务器操作系统的调查
前面提到的例子,只是FreeBSD应用实例的几个,事实上在国外使用免费操作系统用做网络服务器非常普遍和流行。虽然由于它属于非商业产品,媒体一般不太关心它,但在Internet服务器领域中,它的重要性是无可否认的。为了了解Internet中的服务器到底都运行了那些系统,就需要对整个Internet进行调查。
显然有很多种不同的调查方式,例如使用抽样调查,或者发放调查表格等等,然而这些方法都有其局限性。而Int ernet Operating System Counter (ios++)是一次比较特别的调查,它的基本思路是对互联网上所有服务器使用的操作系统进行识别并统计结果。iso++使用一个程序自动收集互联网上的计算机地址,查询计算机并判断其使用的操作系统,虽然无法保证iso++能识别所有种类的操作系统,但毫无疑问它能识别绝大多数流行的操作系统。
遗憾的是,这次调查并没有彻底完成,但这是由于人为而非技术的原因而不得不停止的。由于这个系统会扫描网络中的所有主机,因此其行为类似于黑客程序的做法。在它对意大利的计算机进行网络查询时被一家以色列网络安全公司怀疑为黑客入侵。然而即使如此,这次调查也运行了大约10天,扫描了上百万台服务器,其结果也能真实反应网络操作系统的真实面貌。
这次网络调查的主页为:http://www.hzo.cubenet.de/ioscount/
对Internet上的Web服务器使用的操作系统的调查
调查日期: 从1998年9月9日到9月19日
排名 操作系统 主机数量 占识别出的主机比率
1. Linux 171623 26.3%
2. Windows 95/98/NT 152682 23.4%
3. BSD Family 147602 22.6%
4. Solaris/SunOS 94230 14.4%
5. IRIX 29384 4.5%
6. Mac/Apple 13736 2.1%
7. AIX 10865 1.7%
8. HP/UX 10237 1.6%
9. Reliant Unix/Sinix 3971 0.6%
10. Digital Unix 3775 0.6%
11. SCO Unix 2507 0.4%
12. Novell Netware 2285 0.4%
总数 642899 98.6%
上表是其对Internet上Web服务器的调查结果,可以看出,以FreeBSD为主的BSD家族的操作系统(还包括BSD/OS、NetBSD和OpenBSD,但这些系统的使用者要少于FreeBSD的使用者),在网络服务器中占据第三名的位置,而其百分比与前两名不相上下。如果要考虑到相应Web服务器的重要性,使用FreeBSD等Unix系统的Web服务器,无论从其服务的重要性还是提供网络数据的流量来讲,都是使用Windows操作系统的服务器无法相比的。