I. 让我们开始吧!
FreeBSD使用手册的这部分是专门针对FreeBSD用户和系统管理员新手的。这些章节包括:
1. 向你介绍FreeBSD。
2. 指导你一步步地安装FreeBSD。
3. 教你一些UNIX的基础知识。
4. 向你介绍如何安装针对FreeBSD的大量第三方应用程序。
5. 向你介绍X——UNIX的视窗系统,以及如何配置一个桌面环境。
我们已经尽量压缩了介绍文本的页数,以便你在阅读这章时不至于太累。
第1章 介 绍
1.1概要
非常感谢你对FreeBSD感兴趣!在下面的章节中,我们将为你介绍有关FreeBSD计划的各个方面,例如,它的历史、目标和开发模式等等。
读完这章,您将了解到:
FreeBSD与其他计算机操作系统的关系是怎样的;
FreeBSD计划的历史;
FreeBSD计划的目标;
FreeBSD开放源代码开发模式的基础知识;
当然,还有FreeBSD这个名称的由来。
1.2欢迎使用FreeBSD!
FreeBSD是一个同时支持Intel架构(x86)和DEC Alpha架构的,以4.4BSD-Lite为基础发展而来的操作系统。其他架构的Port(注)也正在发展中。如果你想对FreeBSD有一个大致的了解,你可以看一下下面的章节。如果你想为这一计划贡献点什么(代码,硬件,不记名的资金),你可以参看后面的“为FreeBSD作贡献”一章。
译者注: 每种要被移植到FreeBSD上的软件被称为一个Port,由某个FreeBSD的开发者维护。这个Port的维护者首先将软件移植到FreeBSD上,并将他所完成的这些移植工作按照Ports Collection的要求进行设置,编写相关的脚本,使下载软件、配置、编译、安装的全过程能够自动完成,不需人工干预。每个Port中并没有保存软件包的源代码或者二进制代码,而只是提供了搜索它的源代码或者二进制软件包的方法。
读到这里,你可能会想FreeBSD到底能够为你做些什么。如果你是一个FreeBSD的新手,不要着急,请继续我们的旅程。
1.2.2 FreeBSD能够做些什么?
FreeBSD有着许多令人注目的特性。例如:
动态的抢先式的多任务处理机制,使得应用程序与用户之间,即使是在巨大的负荷下,也能够确保平滑、稳定地共享资源。
一个FreeBSD系统能够允许许多用户同时处理各种事情。也就是说,像打印机和磁带机这些系统外部设备可以让所有的用户适当地分享,也可以对个别用户或一群用户使用的重要系统资源予以限制,以保护系统不致被过度使用。
支持完整的SLIP,PPP,NFS,DHCP,NIS等TCP/IP网络协议,这意味着FreeBSD能提供远程文件共享(NFS) 及电子邮件(e-mail) 等服务,可以让你的企业连上因特网(Internet) 并提供WWW,FTP,路由(routing)及防火墙(firewall)等必备服务。
先进的内存保护机制能够确保程序(或用户)之间不会互相干扰。一个应用程序的崩溃不会影响其他应用程序的执行。
FreeBSD是一个纯32位的操作系统(已经支持Alpha的64位系统),从一开始就是这样设计的。
业界标准的X视窗系统(X11R6)提供了一个图形用户接口,使FreeBSD能够在一般的VGA显示卡和监视器上使用图形系统,而且你还能得到全部源代码。
有着跟Linux、SCO、SVR4、BSDi、NetBSD等系统良好的二进制兼容性。
数以千计的可执行应用程序,可以在FreeBSD的Ports和packages collection中找到。你不需要再费心到网络上到处搜索所需要的软件了。
数以千计容易移植的第三方应用程序都可以在因特网上找到。FreeBSD和许多商业化的Unix系统保持着源代码级的兼容性,许多应用程序只需要很少的修改就可以直接进行编译执行。
虚拟内存和集成的高速缓冲存储器的设计,提供了令人满意的高效率的应用程序执行速度。尤其是执行那些需要许多内存的大型应用软件时,仍能支持很多用户的交互式访问。
对称多处理技术(SMP)能够提供对多CPU的支持。
完全支持C、C++、Fortran、Perl这些开发工具。许多其他的用于高级研究和开发的程序语言也在不断地加入到FreeBSD的软件包中去。
完整的系统源代码使你能够随心所欲地控制和修改你的操作系统。让你避开让商业化操作系统公司操控的命运。
FreeBSD拥有丰富的在线文档,为你解决一切问题。
当然,还有很多很多的特性,在此不一一列举了。
FreeBSD是在加州大学伯克莱分校的计算机系统研究组(CSRG)开发的4.4BSD-Lite基础上发展而来的,它一直保持着BSD系统开发的优良传统。FreeBSD项目组花费了相当长的时间来调整整个系统在真实计算环境下的最大可靠性和稳定性。正当许多商业上的巨人努力地希望能提供高效及稳定的系统时,FreeBSD已经具备了这样的素质。
FreeBSD所能提供的应用仅仅局限于你的想象力。从软件开发到工厂自动化,从仓库管理到卫星的远程控制;那些商业化的UNIX系统能够做的,FreeBSD照样也能够胜任,甚至更多。FreeBSD也得益于全世界的研究中心和大学为它提供令人注目的高质量的应用程序,这些应用程序通常只需要化很少的钱(甚至免费)就可以取得。当然,许多商业化的应用程序也在不断地出现。
因为FreeBSD的源代码是完全公开的,所以对于某些特殊的应用或项目,可以对整个系统进行修改以符合你的任何需求,而这些特性往往是那些商业化的操作系统所不能满足的。以下提供了一些人们应用FreeBSD的例子:
因特网服务:用FreeBSD建立起来的强大的TCP/IP网络系统,使它成为能够提供多种因特网服务的理想平台:
FTP服务器;
Web服务器(标准的或安全的[SSL]);
防火墙和NAT (“IP伪装”)网关;
电子邮件服务器;
新闻组(USENET)和电子公告板系统(BBS);
还有其他很多……
有了FreeBSD,你可以先用便宜的386PC,然后等你的公司规模变大了以后再升级你的机器,用带有RAID存储设备的四路至强(Xeon)处理器的服务器作为你的企业级服务器。
教育上:你是一个计算机科学系或其他相关工程领域的学生吗?再也没有比FreeBSD所提供的实际操作经验更好的方法来学习操作系统、计算机结构和网络了。FreeBSD上的许多自由使用的CAD、数学计算、图形设计软件包能让那些在计算机应用上有兴趣的人学到更多东西。
研究上:有了完整的系统源代码,FreeBSD就成为操作系统研究的极好平台。具有免费且自由取得的特性,使得一个分处两地的合作计划不必担心版权及系统开放性的问题,而能自由地交流。
网络上:你需要一个新的路由器吗?一个域名服务器?一个能够防止外部人员入侵你内部网络的防火墙?FreeBSD很容易把一些放在角落里已经不使用的386或486个人计算机设置成一个高性能的路由器,甚至还具有数据包过滤(packet-filter)的功能。
X图形工作站:作为一个便宜的X终端解决方案,无论是充当免费使用的XFree86服务器,还是充当提供X服务的商业化服务器,FreeBSD都是一个很好的选择。FreeBSD不但可以充当远程X程序终端,也可以在本地执行X程序从而减轻大型工作站的负荷。如果有一台中央服务器的话,FreeBSD甚至可以通过网络启动(不需本地硬盘),而变成更便宜的且易于管理的工作站。
软件开发:基本的FreeBSD系统拥有包括非常出名的GNU C/C++编译器和调试器在内的一整套开发工具。
FreeBSD的发行光盘既提供系统的源代码也提供直接可执行程序,可以通过匿名FTP的形式在网上自由下载。请看看附录A了解如何获得FreeBSD。
1.2.1 谁使用FreeBSD?
在Internet上,有许多国际知名的大网站运行着FreeBSD,包括:
Yahoo!(http://www.yahoo.com)
Apache (http://www.apache.org)
Be,Inc (http://www.be.com)
Blue Mountain Arts (http://www.bluemountain.com)
Pair Networks (http://www.pair.com)
Whistle Communications (http://www.whistle.com)
Microsoft (http://www.microsoft.com)
Hotmail (http://www.hotmail.com)
Sony Japan (http://www.sony.co.jp)
等等……
1.3关于FreeBSD计划
下面的部分将介绍有关这个计划的一些背景信息,包括大概的历史,计划的目标,以及整个计划的开发模式等。
1.3.1 FreeBSD的发展历史
作者:Jordan Hubbard
FreeBSD计划最早是从1993开始的,那是源自于维护一组“非官方的386BSD Patchkit”计划的三个协调维护人Nate Williams,Rod Grimes和我。
我们原先的计划是做出一份386BSD的测试版以修正一些Patchkit无法解决的错误(bug)。你们中的一些人可能还记得早期的计划名称叫“386BSD0.5”和“386BSD Interim”就是这个原因。
386BSD是Bill Jolitz的操作系统,在当时就已经有了约一年的分裂讨论。由于Patchkit的急剧膨胀,使得很难每天都能够消化吸收,我们一致决定应该帮助Bill来改善目前的困境。然而,Bill却在事先没有指出这个计划应该如何开展下去的情况下,突然退出这个计划,最终这个计划只好暂时停止。
没有多久,我们决定在没有Bill支持的情况下,应该做一点有价值的事情,所以我们采用David Greenman提出的将这一计划命名为“FreeBSD”。在和当时的几个用户进行商议后,才决定了我们最初的目标。等到一切逐步明朗化之后,整个项目开始走上正规,这个计划也逐渐成为一个现实。为了给那些不容易访问互联网的用户提供一个FreeBSD的发行渠道,我们开始跟Walnut Creek CDROM发行商进行联系。Walnut Creek CDROM发行商不仅愿意为我们发行FreeBSD光盘,而且还为我们提供开发这一计划所需要的计算机和快速的互联网接入。没有Walnut Creek CDROM的支持,我们就没有信心去开发这一计划,也不可能看到现在的FreeBSD会发展的那样深远,快速。
第一张FreeBSD光盘是在1993年12月发布的,我们把它命名为FreeBSD1.0。这一版本是以伯克莱加州大学的4.3BSD-Lite(“Net/2”)为基础的,它带有386BSD上的许多组件还有自由软件基金会(FSF)的许多软件。对于一个早期的产品来说,它还算成功。接着,我们在1994年的5月份成功地发布了FreeBSD1.1版本。
大约就在那时,发生了另一件意外的事情:Novell和U.C. Berkeley在有关Berkeley Net/2磁带版权问题上发生了法律纠纷。最后结果,U.C. Berkeley接受大部分的Net/2的程序代码都是“侵占来的”且是属于Novell的财产这一条件——事实上是当时不久前从AT&T取得的。Berkeley得到的则是Novell对于4.4BSD-Lite的“祝福”,到最后4.4BSD-Lite发行之后,便不再算是侵占行为。而所有现有的Net/2用户都被强烈建议更换新版本。这包括了FreeBSD,我们被要求于1994年7月底前停止发布基于Net/2的产品。在此前提下,本计划被允许在规定期限以前作最后一次发行,也就是FreeBSD 1.1.5.1。
于是我们开始艰苦地整合4.4 Lite,因为Berkeley的CSRG小组在4.4 Lite中删掉了许多有版权问题的程序代码,而导致4.4 Lite是一个不完整的,无法启动的系统。直到1994年11份,整个计划才有所改善,最终在12月份才把FreeBSD 2.0通过网络和CDROM发布出来。虽然系统很多地方还很粗糙,但是这一发行版还是很成功的。到1995年6月份发行2.0.5版的时候,它已经变得非常强大和容易安装了。
我们在1996年8月发布的FreeBSD 2.1.5版,它已经在ISP和一些商业团体中广泛流传。另外一个发行版沿着2.1-stable分支继续发展,直到1997年2月发行2.1.7.1版后才终止了这一分支。现在这些分支处于维护阶段,仅仅是增强一些安全性和修补一些错误。
1996年的11月,从主开发线(“-CURRENT”)分出来FreeBSD 2.2作为RELENG_2_2分支。作为这一分支的最早发行版是在1997年4月发布的2.2.1版,这个分支直到1998年11月的2.2.8版时才宣告结束。正式的3.0发行版是在1998年10月份出现的。
到了1999年1月20日又出现了新的分支,那就是4.0-CURRENT和3.X -STABLE分支。从3.X-STABLE开始,3.1版是在1999年的2月15日,3.2是在1999年5月15日,3.3版是在1999年的9月16日,3.4版是在1999年的12月20日,3.5版是在2000年的6月24日发布的,几天后又加入了一些安全性方面的修补,这一分支最终发展到3.5.1版本。这也是3.X分支的最后版本。
到了2000年3月13日又出现了另一个分支4.X-STABLE。现在,我们采用“current-stable”的分支方法。从这时开始,又有了好几个发行版:4.0版在2000年3月发布,4.1版在2000年7月发布,4.2在2000年11月发布,4.3在2001年4月发布。4.4在2001年9月发布。沿着4.X-STABLE (RELENG_4)这一分支将不断发展到2002年。
有很长的开发队伍在继续着5.0-CURRENT(trunk)的开发,现在已经可以在网上下载到它的预览版了(ftp://current.freebsd.org/pub/FreeBSD/snapshots)。
1.3.2 FreeBSD计划的目标
FreeBSD计划的目标是为那些不管出于什么目的,不需要有任何限制的人提供软件。我们中的许多人都为这一计划或其中的软件有相当深入的投入和研究。当然也不介意现在或是将来能够得到财政上的补偿。我们首先和最主要的使命是为现有的任何人和即将加入的新来者提供代码,无论他们出于什么目的,都能够最大范围地使用代码,使尽可能多的人受益。我相信这就是我们狂热地支持自由软件的最基本的目标。
在我们整个程序代码中,有些是使用GNU公用软件许可证(GPL) 或是LGPL的版权公告的。它们附带有许多限制性文字在其中,但还好只是允许人们可以取得该软件,而不是一般限制性的版权公告。由于使用GPL的软件在商业用途上会增加若干复杂性,我们在适当的时候会让这些软件改用更宽松的BSD版权声明。
1.3.3 FreeBSD的开发模式
FreeBSD的开发方式是一个非常开放和灵活的方式,就像从我们的计划贡献者列表中看到的那样,FreeBSD是由世界各地的许许多多的人们不断贡献他们的力量而建立起来的。我们也经常关注着那些对我们的计划感兴趣的新开发者和新的创意,他们主要通过FreeBSD的技术讨论邮件列表来与我们进行交流<freebsd-hackers@FreeBSD.org>。FreeBSD发表的邮件列表<freebsd-announce@FreeBSD.org>对那些希望了解我们工作所涉及到哪些领域的人也是有用的。
无论你是独立地工作,还是封闭式的团队协作,了解FreeBSD计划和它的开发方式是非常有用的。
CVS仓库
FreeBSD的中央源代码树是通过CVS(Concurrent Versions System)来维护的。CVS是一个用FreeBSD打包而成的自由使用的源代码控制工具。主CVS库放置在美国加利福尼亚Santa Clara的一台机器上。CVS树就像我们现在将它分为-CURRENT和-STABLE树一样,能够很容易地被复制到你的机器上。你可以参考第19.3节了解有关使用FreeBSD CVS仓库的详细信息。
维护者列表
维护者是那些可以直接修改CVS树的人,经审定后可以修改FreeBSD的源代码(维护者可以使用commit命令来对CVS仓库进行操作)。提交修正的最好方法是使用send-pr命令,如果你发现在系统中出现了一些问题的话,你可以发Email到<cvs-committers@FreeBSD.org>提出自己的意见。
FreeBSD的核心团队
如果把FreeBSD计划当作是一个公司的话,那FreeBSD的核心团队就相当于董事会。FreeBSD核心团队的主要任务是提出总体上的发展计划,然后确定一个正确的方向。邀请那些富有献身精神和可靠的开发者加入到我们维护者队伍中来也是我们的工作之一,这些新的成员将作为新核心团队成员和其他人一起继续前进。当前的核心团队是在2000年10月从维护者候选人队伍中选举出来的。选举每2年举行一次。一些核心团队的成员还负责特定的责任范围,也就是说他们必须尽力确保某个子系统能工作正常。
注意:许多核心团队的成员都是自愿加入FreeBSD开发行列的,而且没有从本计划获得任何经济上的资助,因此“承诺”不应该被理解为“支持保证”。前面所述“董事会”的说法并非十分精确,或许说他们是一群愿意放弃他们的生活,投身于FreeBSD计划而非其个人其他领域成就的人!
其他的贡献者
事实上,为我们提供反馈和错误修补的巨大开发队伍正是用户自己。FreeBSD的非集中式的开发者保持联系的主要方式就是预订FreeBSD技术讨论邮件列表<freebsd-hackers@FreeBSD.org>,以此来对一些问题进行讨论。
提供代码并不是为整个计划做贡献的唯一方法。有一个完整的现在需要做的事的列表,可以参考FreeBSD计划的官方网站(www.FreeBSD.org)。
总的来说,我们的开发模式好像是一组没有拘束的同心圆。这种集中式的开发模式,主要是考虑到用户的方便,同时让他们能很容易地维护同一份软件,而不会把潜在的贡献者排除在外。我们的目标是提供一个包含有大量具有一致性应用程序的稳定的操作系统,以利于用户的安装和使用,这种模式在完成目标的过程中工作得非常有效。
我们对于那些要加入我们的FreeBSD开发者的期待是,具有如同当前其他人一样的投入,来确保其持续的成功!
1.3.4当前的FreeBSD发行版
FreeBSD是一个自由使用且带有完整源代码的,以4.4BSD-Lite为基础的系统,它广泛运行于Intel i386、i486、Pentium、Pentium Pro、Celeron、Pentium II、Pentium III(以及其他兼容的系统上)和DEC的Alpha系统上。它主要以U.C. Berkeley CSRG的软件为基础,并加入了NetBSD、OpenBSD、386BSD和自由软件基金会的一些东西。
自94年发布FreeBSD 2.0以来,FreeBSD的性能,可定制性,稳定性都有了令人注目的提高。最大的变化是通过集成高速缓存修补了虚拟内存的错误,不仅提高了性能,而且减少了FreeBSD对内存的需求,使得只要5MB内存就可以执行FreeBSD。其他的变化主要是增加了对NIS客户端和服务器端的完整支持,TCP处理的支持,PPP拨号的支持,集成的DHCP的支持,一个增加的SCSI子系统,ISDN的支持,ATM,FDDI,千兆以太网的支持,提高了对最近的Adaptec控制器的支持和许许多多的错误修正。
我们也采用了用户所提出的看法和建议,以及尝试着提供更加合理且容易理解的安装过程。我们欢迎你提出对于这个计划的任何建议!
除了最基本的系统软件,FreeBSD提供了一组上千个已经移植到FreeBSD的一般用途软件。到写作这篇文章的时候,已经有了5900种以上的软件!这些软件包括http (WWW)服务器、游戏、程序语言、编辑器和几乎所有的东西。这些收集只占了约100MB的空间,所有的软件只提供针对原始程序代码的修正,并不包含该软件的原始程序代码,这使得我们能够容易地更新软件,而且减少了硬盘空间的浪费。如果你想要编译该软件,只要到该软件目录下,执行make install就可以了。而且几乎大多数的软件都提供了事先编译好的版本以便于安装,你只要使用pkg_add就可以轻松安装,而不需要自己编译。
你可以在/usr/share/doc下找到许多有用的文件来帮助你安装及使用FreeBSD。你可以使用HTML浏览器来阅读:
The FreeBSD Handbook
file://localhost/usr/share/doc/handbook/index.html
The FreeBSD FAQ
file://localhost/usr/share/doc/faq/index.html
你也可以访问FreeBSD的主站http://www.FreeBSD.org/了解更多的信息。