工程家园's Archiver

怀恋在子夜 发表于 2005-5-22 14:27

unix历史与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的高档PC服务器来为他们的众多用户提供网络服务。

怀恋在子夜 发表于 2005-5-22 14:28

FreeBSD的起源

自从1969年AT&T Bell实验室研究人员创造了Unix之后,Unix就不断发展,逐渐成为了主流操作系统。虽然当前Windows系列已经占据了桌面计算机的领域,其中Windows NT服务器也在网络服务器领域得到了部分用户的承认,但在高档工作站和服务器领域,Unix仍然具有无可替代的作用。尤其在用作Internet服务器方面,Unix的高性能、高可靠性、以及高度可扩展的能力仍然不是其他操作系统所能够代替的。

虽然Unix由AT&T创造,但它如此流行却并不能完全归功于AT&T自己的功劳。现代Unix不是一个厂家的单独产品,在它长期的发展过程中形成了多种不同的版本。惟其丰富多样,才使得Unix具有强大的生命力。FreeBSD正是Unix众多分支中相当优秀的一支,它的发展历史也相当悠久,是著名的BSD Unix的一个继承者,因此要了解FreeBSD发展的历史,首先就要了解Unix发展的历程。

怀恋在子夜 发表于 2005-5-22 14:29

1.1.1 Unix的历史发展

[img]http://www.cnfug.org/project/ffs/images/unix_history.gif[/img]

Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT&T贝尔实验室实现的,运行在一台DEC PDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操作系统最基本的一些特性。后来Ken Thompson和Dennis Ritchie使用C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。从那以后,Unix系统开始了令人瞩目的发展。

由于此时AT&T还没有把Unix作为它的正式商品,因此研究人员只是在实验室内部使用并完善它。正是由于Unix是被作为研究项目,其他科研机构和大学的计算机研究人员也希望能得到这个系统,以便进行自己的研究。AT&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紧密结合在一起。

怀恋在子夜 发表于 2005-5-22 14:31

而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来表示次版本。如System 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在Unix领域内的影响更大。AT&T的Unix系统实验室一直关注着BSD的发展,在1992年,Unix系统实验室指控BSDI── 一家发行商业BSD Unix的公司,违反了AT&T的许可权,发布自己的Unix版本,并进一步指控伯克利计算机系统研究组泄漏了Unix的商业机密(此时的4.3BSD中来自AT&T Unix的代码已经不足10%)。这个官司影响了很多Unix厂商,使他们不得不从BSD Unix转向Unix System 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系统的基础版本。

怀恋在子夜 发表于 2005-5-22 14:31

Novell的比较友善的做法还不止对BSD,他把自己的Unix改名为Unixware,而将Unix商标赠送给X/Open── 一个由众多Unix厂家组成的联盟,这样这个联盟内的所有成员均可使用Unix商标。从此之后,Unix不再是专有产品的名字了。同时,由于BSD系统已经十分成熟,作为对操作系统进行研究的目标已经达到,伯克利计算机系统研究组(CSRG)在发布了4.4BSD-lite2之后就解散了,小组的科研人员有些进入了Unix商业公司,有些继续进行其他计算机领域的研究。此时,严格意义上的Unix System V和BSD Unix都不复存在了,存在的只是他们的各种后续版本。

回顾Unix的发展,可以注意到Unix与其他商业操作系统的不同之处主要在于其开放性。在系统开始设计时就考虑了各种不同使用者的需要,因而Unix被设计为具备很大可扩展性的系统。由于它的源码被分发给大学,从而在教育界和学术界影响很大,进而影响到商业领域中。大学生和研究者为了科研目的或个人兴趣在Unix上进行各种开发,并且不计较金钱利益,将这些源码公开,互相共享,这些行为极大丰富了Unix本身。很多计算机领域的科学家和技术人员遵循这些方式,开发了数以千计的自由软件,包括FreeBSD在内。正因为如此,当今的Internet才如此丰富多采,与其他商业网络不同,才能成为真正的全球网络。开放是Unix的灵魂,也是Internet的灵魂。

由于Unix的开放性,另一方面就使得存在多个不同的Unix版本。由于不同的Unix使用稍有差别的文件、目录结构,提供略有不同的系统调用,因此对系统管理、以及为Unix开发可移植的应用程序带来一定的困难。例如System V和BSD的很多系统调用就存在不同。在Unix历史发展中也存在将Unix完全统一的努力,例如POSIX规范就是各个Unix厂商经过协商,达成的Unix操作系统应该遵循的一套基本系统调用的规定。然而由于存在多个Unix系统,各个厂商的意见很不统一,因此POSIX规范制定的很宽松,甚至Windows NT中也存在一个POSIX子系统。事实上,只要各个Unix之间协调发展,不故意为了商业目的而人为的制造系统差异,就能够保持各个Unix之间不致具有太大的差别,保持Unix系统的多样性比只有唯一的一个Unix系统更能够促进技术的进步和发展,企图人为的统一Unix的想法只能是某一个Unix厂商的一厢情愿。

有时为了避免法律纠纷,表明自己的程序代码是完全重写的,一个软件厂商会故意将一些函数声明的与其他系统的中的同类函数不同,例如使用不同的函数参数或改变函数参数的顺序等。Unix System V中的很多系统调用与BSD Unix不同的部分原因也在于此。这些差异人为造成了不同系统的源程序的差异。

怀恋在子夜 发表于 2005-5-22 14:32

FreeBSD的起源和发展

Unix的魅力不仅在于其功能的强大性,还在于其优秀的可扩展性,它提供了高级语言C和各种解释语言可用于编写程序。利用这些系统提供的工具,使用者就能按照自己的需要和兴趣对原有系统进行扩展,满足相当一部分计算机研究人员和使用者的需要,这样Unix就具备更强大的能力,完成各种复杂的任务。一旦用熟了Unix,体会到Unix的强大功能,使用者就会希望一直使用它,而不是仅具备有限能力的其他计算机系统。企业也希望能在其可以承受的条件下,利用Unix系统的强大处理能力。

由于Unix是多用户操作系统,作为系统的普通使用者只能使用系统提供的有限功能,而只有Unix系统管理员才能充分利用其的全部能力。因而拥有自己的Unix系统也是一个普通Unix使用者的愿望。但是在那些时候,能够满足这些愿望的计算机并不是每个人都能买得起的。昂贵的硬件,以及Unix逐渐商业化趋势,都使得拥有自己的Unix对大多数人只是美好的愿望,而使用Unix的地方主要为一些要求较高的科研和大中型公司机构。

到80年代,个人计算机的出现,使得硬件的价格能被个人和小企业接受了,给拥有一个Unix系统的愿望带来了一线曙光。但是使用8086芯片的个人计算机能力比较差,在其上不能实现真正正常工作的多用户系统。进入九十年代之后,英特尔公司推出的80386芯片使个人计算机的计算能力大大提高,在个人计算机上构建一个可以真正使用的Unix也成为了可能。

怀恋在子夜 发表于 2005-5-22 14:33

事实上此时能运行在X86平台上的Unix相当有限,Mircosoft的Xienx是一种(后来发展成为SCO 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系统没有太急迫的要求。

怀恋在子夜 发表于 2005-5-22 14:34

386BSD计划由Bill Jolitz等研究人员发起,将4.3BSD Net/2移植到80386平台上,并使用386BSD的名称发布。但是移植工作是一个复杂的任务,直到386BSD 0.5版本,系统中仍然存在相当多的问题没有解决。于是在1993年,另一些研究者决定加入这个计划,打算和Bill Jolitz一起修正系统中存在的问题。但是这时计划的组织者Bill Jolitz突然决定退出,使得386BSD计划面临停止的危险。Bill Jolitz作为计划的发起者和负责者并没有对这个计划以后该如何发展给出具体意见,因此386BSD计划是到此为止还是继续发展,就取决于其他开发者的决定。幸运的是,该项目的另三个参与者Nate Williams, Rod Grimes和Jordan K. Hubbard决定继续这项非常有意义的工作,他们采用由David Greenman创造的名字FreeBSD作为系统的新名字,从此有了一种任何人都可以自由使用的Unix操作系统 ── FreeBSD。

BSD Unix使用一个神话中的精灵形象作为其吉祥物,这个吉祥物标志被FreeBSD、NetBSD继续使用,但不同BSD系统的精灵略有不同,右图为FreeBSD的BSD精灵形象。当用户浏览Internet时,会在很多与FreeBSD相关的网站上看到这个可爱的精灵标志。

[img]http://www.cnfug.org/project/ffs/images/daemon.gif[/img]
  


1993年12月对于FreeBSD来讲是非常重要的日子,FreeBSD 1.0版本于这个月正式发布。这次FreeBSD的开发者找到了一家出版商Walnet Creek提供支持,来发布FreeBSD的光盘和提供高速Internet网络服务,使得任何人都可以通过购买光盘或者通过Internet下载的方法,自由获得FreeBSD系统,使得FreeBSD取得了很大成功。而Walnet Creek也使用FreeBSD建成了Internet上最大、最繁忙的匿名文件服务器──ftp.cdrom.com。

怀恋在子夜 发表于 2005-5-22 14:36

FreeBSD虽然可以自由获得,然而BSD与AT&T的法律纠纷仍然威胁着FreeBSD系统的合法性。就在FreeBSD得到相当多用户欢迎的时候,Unix系统实验室(此时已经卖给了Novell)与伯克利计算机系统研究小组的法律纷争有了结论。虽然最后不必进行赔偿,但是BSD Unix系统中必须去除原来来自AT&T的源码。伯克利计算机系统研究小组去除了这些不到10%源码,发布了4.4BSD Lite,其他基于BSD的Unix,包括FreeBSD在内,都被要求立即转换到4.4 BSD Lite上去。

这对FreeBSD是一次相当严重的打击,虽然4.4 BSD Lite只删除了一小部分代码,但尤其对于英特尔80386平台,缺乏这些代码,系统就不能正常运转。FreeBSD小组必须解决两个任务,首先是将FreeBSD从原本的4.3BSD迁移到4.4BSD上,再将删除的源码完全重写。这些任务相当于将4.4BSD Lite重新移植到80386上,因此这花费了FreeBSD核心小组很大的精力。因此直到1995年1月他们才发布了FreeBSD 2.0,这次就是一个完全的4.4BSD Lite的系统了。但是在大约一年时间之内,FreeBSD不能在原有1.0基础上进行改进并推出新版本,而这个时期正是Internet进一步发展的阶段,FreeBSD错过了一个发展壮大的好时机。而其竞争对手,如Linux,则取得了巨大的成功。

接下来,FreeBSD加快了开发节奏,2.1、2.2、3.0相继推出,这个系统在Internet上的应用也越来越多,尤其是对于要求高性能、高可靠性的网络服务器系统,FreeBSD提供了一个极具诱惑的选择。

由于Unix商标属于X/Open组织,而FreeBSD只是一个自由操作系统,从法律角度上看FreeBSD不能被叫作Unix(不能使用Unix做商标)。但是基于Unix本身的历史,FreeBSD可以算最原汁原味的Unix,在有的方面,它更具传统特色──或者说BSD Unix的学院特色。当前,Unix商标其实是只具有象征性的含义,没有人介意到底那些系统是X/Open的成员,可以被称作Unix,那些不是。Unix已经成为一个广泛的概念,只要是按照Unix为模板进行开发,所有的应用程序在C源程序级与其他Unix相互兼容,也同样被所有使用者承认为Unix系统。因此这里的Unix包括BSD和System V在内的各种系统,也包括像Linux这样的兼容系统。

怀恋在子夜 发表于 2005-5-22 14:37

使用FreeBSD的实例

在熟悉了FreeBSD之后,就不会有人怀疑这个系统的性能了,因为这已经被Internet上无数使用FreeBSD作服务器的实例所证明过的。FreeBSD是Internet上非常流行的一种网络操作系统,应用实例很多。下面给出了一些著名的站点实例,当然FreeBSD的实际应用不只是这些例子中使用的范围。

u       Yahoo
作为Internet上具有传奇色彩的成功网站的典范,众人了解的Yahoo通常是它具备丰富的内容、年轻的亿万富翁传奇等内容。很少有人关心到底Yahoo是使用什么技术来构建他们的网站,也许很多人潜意识里认为它一定是由昂贵的专用服务器组成的,其实Yahoo是使用多台普通Pentium计算机来提供这么大的访问能力的,而在这些计算机上运行的就是FreeBSD系统。

可以在Yahoo中搜寻 “Yahoo and FreeBSD” ,就能搜寻到一篇由Yahoo的创始人之一David Filo写的介绍Yahoo为什么使用FreeBSD的文章 “Yahoo! and FreeBSD”([url]http://www.freebsdmall.com/newsletter1/yahoo_and_freebsd.phtml)[/url]

他写道: “......但不久就发现我们使用的操作系统在设计时都不具备处理大量 HTTP请求的能力。事实上,当时还没有任何商业系统可以解决我们所面临的扩展问题,这也是身处网络技术最前沿所必须面对的无奈现实。

“...... 我们又用过几种平台,包括 SGI IRIX,Linux 和 BSDI,但性能和稳定性都不能令人满意,我们只得继续寻找。随着 Yahoo 的日渐流行,平台的可扩展能力和稳定性是最关键的。那时我们 FreeBSD 还一无所知,但当读到有关介绍时,我决定试它一试。

“......几天之后我将一台FreeBSD系统加入我们的Web服务器集群中去,结果它的性能明显优于其它机器,而且运行更稳定。试验时间持续了几个星期,我们对FreeBSD很满意。这主要应归功于FreeBSD的稳定性、运行性能和允许访问源代码的特点,它还具备诱人的价格优势。从此,我们的产品和开发环境就几乎离不开它了。”

u       Hotmail
HotMail是最大的免费邮件提供商,它本来是使用FreeBSD和其他的Unix提供服务,但于1998年被Microsoft收购之后,就开始了从Unix向Windows平台移植的历程。最早他们试图使用Windows NT代替FreeBSD,但没有成功,直到2000年底,Microsoft才使用Windows 2000将Hotmail系统移植到他们的平台上,这个作为一个成功案例,列在Microsoft的网站上。

最近,在Oracle和Microsoft的一次论战中,Microsoft承认,他们的移植工作并不彻底,目前在Hotmail中仍然有部分服务器使用Unix。

u       国内众多网站
在国内,虽然FreeBSD还不是广为人知,事实上它的应用却也非常普遍,很多网站都使用FreeBSD提供网络服务,例如Web服务、电子邮件服务等等。

在网易的主页上([url]http://www.163.com[/url]),有网易公司丁磊的一篇文章 “PC不只是便宜的工作站” ,介绍网易为何选择FreeBSD。

u       网络设备
有很多种网络设备是基于FreeBSD系统,或者基于FreeBSD的部分代码进行开发,其中最为著名的是网络路由器制造厂家Juniper,Juniper作为最大的骨干网络设备提供商,它们设计了专用的处理芯片来处理IP数据,但是其基本的系统基于FreeBSD。

另一个著名的例子是网络存储系统设备,著名的硬件厂商AMI、Maxtor发布的网络存储产品是基于FreeBSD构建的定制系统。而另一家著名的网络存储提供商NetApp,他们使用的不是FreeBSD,但毫无疑问,他们是基于更早的BSD Unix进行的定制。

除此而外,很多防火墙厂商也是基于FreeBSD系统的,例如爱立信就有基于FreeBSD的网络防火墙设备,而国内有不少防火墙设备也是基于FreeBSD进行的开发。

对于这些网络设备来讲,由于BSD许可权的自由性,很多厂家并没有明确声明他们使用的操作系统类别。

yanger 发表于 2005-5-24 20:25

顶一下 呵呵

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.