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系统。
他写道: “……但不久就发现我们使用的操作系统在设计时都不具备处理大量 HTTP请求的能力。事实上,当时还没有任何商业系统可以解决我们所面临的扩展问题,这也是身处网络技术最前沿所必须面对的无奈现实。
“…….我们又用过几种平台,包括 SGI IRIX,Linux 和 BSDI,但性能和稳定性都不能令人满意,我们只得继续寻找。随着 Yahoo 的日渐流行,平台的可扩展能力和稳定性是最关键的。那时我们 FreeB SD 还一无所知,但当读到有关介绍时,我决定试它一试。
“……几天之后我将一台FreeBSD系统加入我们的Web服务器集群中去,结果它的性能明显优于其它机器,而且运行更稳定。试验时间持续了几个星期,我们对FreeBSD很满意。这主要应归功于FreeBSD的稳定性、运行性能和允许访问源代码的特点,它还具备诱人的价格优势。从此,我们的产品和开发环境就几乎离不开它了。”
关于网络服务器操作系统的调查
前面提到的例子,只是FreeBSD应用实例的几个,事实上在国外使用免费操作系统用做网络服务器非常普遍和流行。虽然由于它属于非商业产品,媒体一般不太关心它,但在Internet服务器领域中,它的重要性是无可否认的。为了了解Internet中的服务器到底都运行了那些系统,就需要对整个Internet进行调查。
显然有很多种不同的调查方式,例如使用抽样调查,或者发放调查表格等等,然而这些方法都有其局限性。而Int ernet Operating System Counter (ios++)是一次比较特别的调查,它的基本思路是对互联网上所有服务器使用的操作系统进行识别并统计结果。iso++使用一个程序自动收集互联网上的计算机地址,查询计算机并判断其使用的操作系统,虽然无法保证iso++能识别所有种类的操作系统,但毫无疑问它能识别绝大多数流行的操作系统。
遗憾的是,这次调查并没有彻底完成,但这是由于人为而非技术的原因而不得不停止的。由于这个系统会扫描网络中的所有主机,因此其行为类似于黑客程序的做法。在它对意大利的计算机进行网络查询时被一家以色列网络安全公司怀疑为黑客入侵。然而即使如此,这次调查也运行了大约10天,扫描了上百万台服务器,其结果也能真实反应网络操作系统的真实面貌