LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 21737|回复: 113

╭∩╮(︶︿︶)╭∩╮FreeBSD使用大全FreeBSD╭∩╮(︶︿︶)╭∩╮

[复制链接]
发表于 2003-2-11 10:48:14 | 显示全部楼层 |阅读模式
决定为自己的稿子写序是一件非常愉快的事情,因为在这里就不必太关心技术细节,而可以由得自己的性子胡言乱语一番,而读者一般也不会介意这些,但假使真的介意的话,也大可以将这部分略去不看,而直接翻看后面的实际内容。

  写这么一本书的想法始于去年六月,那时国内媒体对Linux的宣传刚刚开始,那个时候我就在想,其实Inte rnet上的宝贝绝不止Linux一样。Linux之所以突然走红,除了它本来就相当流行之外,还与它被反微软的诸多厂商选中是分不开的,OS/2、Netware分别在不同的领域败下阵来,他们只好到Internet上寻找新力量。然而,仅仅跟随国外媒体进行亦步亦趋的宣传,也容易淹没Internet中的其他宝藏,Linux并不是唯一的自由操作系统,在某些领域它也不是最好的,这也就是我向大家介绍FreeBSD的原因。

  说到这里,我想起了一件事情。我曾和一家免费邮件网站的管理员谈天,他告诉我他们使用的是Linux系统,当时我很惊讶,在我的印象里,这一批免费邮件站点都应该为FreeBSD系统才对。然而当我有机会到他们机房去的时候,我就了解到了他错误的根源,所有服务器的登录提示都被改为Linux!当我请求管理员帮助登录上系统之后,系统的真实面目就显示出来了,此后我还发现那个销售免费邮件的公司将该系统中的另一些软件的名字也进行了更改。这件事情让我百思不得其解,为了借用Linux的大名吗?事实上在针对Linux的宣传开始之前,这家公司的系统已经非常有名了。为了保守技术秘密吗?只要对FreeBSD有一定了解的使用者,很快就可以确认系统使用的操作系统类型了。假如那家公司的技术人员能够看到我的疑问的话,我很希望他们能解开我的疑惑。

  有一个好的想法只是一个开端,而将其实现却困难重重。我最初想完成一本包括Unix入门知识在内的FreeB SD入门书籍,然而随后就改变了想法。毕竟,Unix的入门书籍到处都有,重复这些工作虽然工作任务相对简单一些,但很难让读者得到更重要的内容:学会在实际网络中应用FreeBSD系统。最后我决定包括FreeBSD入门和具体应用等内容。因此阅读本书应该具备Unix的基本操作知识,以及一台PC以便进行实验。

  在本书的写作过程中,FreeBSD进行了重要的版本升级,从原有的2.2.x版本到3.0-RELEASE 、3.1-RELEASE和3.2-RELEASE,书中的例子大部分来自3.0-RELEASE和3.1-RELE ASE,因此就有极少例子与3.2-RELEASE中会有所不同。事实上差异相当小,并不影响具体的操作,我也会在存在差异的地方给出提示。

  写到这里,心里又有些忐忑,很有些担心有的人读完本书之后会抱怨太难,而另一些人又会认为废话太多。唯一的希望是,我的文字不要太差劲。然而,当你读完本书之后,无论你认为本书如何,我都愿意收到评论,不管是鼓励还是批评。假如你是一个入门者,因而不很理解本书中提到的一些概念,不要着急,当你接触到相关具体应用的时候,就会发现书中提到内容的用处。当你是一个FreeBSD高手,习惯于阅读英文原版资料,那也不妨翻阅一下本书,帮助寻找书中的错误以免误导其他读者,我相信一个喜欢FreeBSD的使用者也乐于看到更多的人喜欢并使用FreeBSD的。如果你是一个Li nux迷,我也很希望这本书能为你介绍另一个优秀的操作系统,顺便提一下,我的计算机中也安装有一套RedHat,不过我不太喜欢它,比较而言,Debian和Slackware更干净一些。

  希望你在读完本书之后,再考虑Web服务器或软件防火墙的时候,能自觉不自觉的想起FreeBSD系统。相信我,在PC平台中的这些领域下,它是No.1。

  本书成书过程中得到宋健(不是那位老先生)的大力帮助,在此表示感谢。

  王波

  九九年七月

  wb@email.online.ha.cn

  http://email.online.ha.cn:8080/freebsd/
 楼主| 发表于 2003-2-11 10:49:53 | 显示全部楼层
第1章 引言

    * FreeBSD的起源
      Unix的历史发展
      FreeBSD的起源和发展
      当前FreeBSD的版本

    * FreeBSD的功能特点
      FreeBSD的特点和应用范围
      使用FreeBSD的实例

    * 其他相关系统和组织
      GNU’s Not Unix
      GNU/Linux
      其他BSD系统

    * FreeBSD的相关资源
      联机文档
      出版物
      Internet资源
      商业服务和支持

第2章 安装与配置

    * 安装之前的准备
      硬件设备
      安装介质
      准备硬盘和软盘

    * 安装FreeBSD
      启动安装程序
      安装系统

    * 基本系统配置
      设置网络

    * 其他安装问题

第3章 系统管理和维护

    * 系统的启动与关闭
      系统启动过程
      系统启动脚本
      系统登录与退出
      关闭系统

    * 用户管理
      增加用户
      超级用户root
      登录类别
      shell设置

    * 文件系统与磁盘操作
      文件的属性
      设备文件
      安装文件系统
      软盘操作

    * 维护文件系统
      检查硬盘
      调整文件系统的目录结构
      建立文件系统
      管理交换设备

    * 调整系统设置
      调整控制台设置
      配置系统时间

    * 进程管理
      查看系统状态
      定时执行程序
      进程的权限

    * 安装应用软件
      应用软件的类别
      Packages Collection

    * 打印机配置
      系统结构
      配置打印机

    * 系统日志与备份
      系统日志
      系统备份

第4章 网络配置与使用

    * DOD参考模型

    * 基本网络设置
      手工配置网络

    * 拨号网络
      串口和modem
      PPP协议

    * DNS服务
      DNS的体系结构
      配置缓冲或转发方式的named
      定义自己的名字服务

    * 电子邮件
      邮件服务器
      在FreeBSD上查看邮件

    * 网络文件系统(NFS)
      NFS客户支持
      NFS服务器

第5章 设置和使用X Window

    * 安装和设置X服务器
      X Free86的硬件要求
      安装XFree86
      使用XF86Setup配置X服务器
      使用xf86config配置X服务器

    * 使用和配置X Window
      X Window的基本概念
      进入X Window
      定制X Window的基本方法

    * X Window下的中文环境
      中文X应用软件
      外挂式中文显示与输入软件
      中文X服务器

    * 配置文件XF86Config

第6章 定制应用软件与系统内核

    * 编译应用软件
      Ports Collection
      手工编译安装程序
      可执行程序格式

    * 配置FreeBSD内核
      为编译内核准备源代码
      编译安装新内核
      缺省内核配置选项
      其他内核设置选项

    * 升级系统

第7章 与Windows系统集成

    * 集成Unix和Windows的方式

    * NetBIOS与SMB/CIFS协议
      NetBIOS名字解析
      SMB/CIFS协议

    * 配置和使用Samba
      安装samba
      配置samba
      根据Windows网络设置Samba

    * 访问Windows系统资源
      使用smbclient访问Windows资源
      使用SharityLight安装SMB文件系统

    * 设置DHCP
      DHCP的工作过程
      设置和使用DHCP

第8章 系统与网络安全

    * 网络安全概念
      认证与加密
      安全问题
      防火墙技术

    * 增强安全设置
      设置基本系统
      安全工具

    * 设置防火墙功能
      设置和使用ipfw/natd
      设置和使用ipfilter
      构建防火墙

第9章 设置WWW服务

    * 基本概念
      超文本传输协议HTTP
      数据处理方式

    * 安装和设置Apache
      基本安装
      配置Apache服务器(1)
      配置Apache服务器(2)

    * 服务器的安全控制
      对IP地址和域名的控制
      基于用户的访问控制
      安全连接方式SSL
      CGI和SSI的安全性

    * 调整服务器性能
      单服务器性能调整
      提升静态网页服务能力的综合方式

    * 负载均衡技术
      基于DNS的负载均衡
      反向代理负载均衡
      基于NAT的负载均衡技术
 楼主| 发表于 2003-2-11 10:51:37 | 显示全部楼层

FreeBSD连载(01):FreeBSD的起源

第1章 引言

  在计算机领域,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版本。

未完,待续。。。  
 楼主| 发表于 2003-2-11 10:52:40 | 显示全部楼层

FreeBSD连载(02):FreeBSD的功能特点

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操作系统的服务器无法相比的。

未完,待续。。。 
 楼主| 发表于 2003-2-11 10:53:56 | 显示全部楼层

FreeBSD连载(03):其他相关系统和组织

其他相关系统和组织

  自由使用和免费是FreeBSD的特征,在英文里都可以使用 “free” 来表示。这表示使用者不仅仅可以免费使用这个系统,还可以对软件进行适合自己需要的改动,并能够影响这个软件的发展等等,这正是free这个词更深一层的含义。

  支持自由软件的人通常认为,每个计算机的使用者都有自己特定的需要,不可能有一个包罗万象、适合所有需求的软件系统。因此软件开发者和系统管理员希望了解软件内部的情况,以便可以对软件进行定制和扩展。而商业软件只提供软件的二进制代码,将软件内部的操作完全封闭起来,使用者就丧失了对软件的主动权。另外,任何软件产品都存在各种BUG,商业软件的使用者在遇到软件产品的这些问题时,就只能被动的等待厂商的补丁程序,整个软件系统不得不停顿或冒一定的风险继续使用。第三,计算机的使用者并不会完全信赖商业软件,某些软件厂商会故意在软件中加入恶意代码,或加入某种未公开的后门,对使用者造成危害。即使这些软件中的后门或恶意代码是打着防止盗版、提供更方便的功能等旗号加入的,但也可能被偶然触发,危害使用者的利益。而在提供软件源代码的软件中,就不会存在这种恶意的行为。

  这些问题对于一个普通用户或者不重要,但对于一个较大的系统或要求较高安全性的系统中,就能表现出重要性了。支持自由软件的人认为,如果一个软件提供了源代码,那么使用者就能根据情况自己修改或请他人修改软件,从而适合自己的最终需要,并修正系统中因为有意或无意导致存在的问题。当前,开放源代码已经得到越来越多的计算机使用者和厂商的认可,他们组成了开放源代码组织(Open Source),来进一步推动这个思想。

  另一方面,由于某些种类的商业软件中不存在竞争,垄断的结果就造成软件的价格昂贵,使得这些软件不是任何有需要的人都能够用得起的。而软件最大的价值是被人使用,因此有很多人认为软件开发者要允许别人使用他的软件,应该从软件服务中获得收益,而不是从软件本身中谋取暴利。他们认为计算机应该属于大众,而不应该由某些公司垄断。因此这些崇尚自由软件的人员就想为所有用户开发一整套系统,使用户在现有商业软件之外还可以进行选择,而不至于必须为商业软件支付额外的费用。这些人包括FreeBSD的开发人员、Linux的开发人员、GNU计划的开发人员以及其他众多的自由软件开发者,他们开发的软件构成了计算机领域内多姿多彩的一面,使得即使不使用任何商业软件,使用者也同样能够在计算机上以更好的性能完成所有的工作。

    *
      GNU's Not Unix

GNU不是Unix,采用这种递归方式定义的GNU计划是由Richard Stallman提出的,他建立自由软件基金会(FSF)并提出GNU计划的目的是开发一个完全自由的,与Unix类似但功能更强大的操作系统,以便为所有的计算机使用者提供一个功能齐全,性能良好的基本系统。GNU HURD为GNU操作系统的内核,但是当前还没有正式发布,仍处于测试阶段。很多人使用Linux内核和GNU的应用软件组成了GNU/Linux系统。右图为GNU的标志。

  FSF开发了大量的自由软件来达到这个目的,这些软件与Unix上原有的软件功能相同,但由于GNU开发软件的时候硬件的处理能力更强了,因此GNU软件充分利用计算机的硬件能力,比Unix中的同样的软件功能更强,因此非常流行。这些软件在GNU通用公共许可的保护下允许任何人免费使用和传播(但必须同时提供源程序),因此被大量的用在其他的Unix中,FreeBSD上也提供了很多GNU软件。

  Stallman创造了一个词copyleft,由于通常意义上的版权copyright是用来限制别人在没有许可的条件下不能使用和传播软件,而copyleft则鼓励任何人可以使用和传播软件。copyleft限制妨碍使用和传播GNU软件的行为,例如不提供GNU软件的源代码。然而copyleft与copyright并不冲突,因为 copyleft是针对软件的传播者而非针对最终使用者的。GNU软件必须使用copyleft保护,限制将GNU软件本身用于牟利目的,而其他软件仍然可以使用copyright保护版权不被侵犯。Stallman进一步使用GNU 通用公共许可来详细阐述copyleft的观念,要求传播GNU软件必须同时传播其源代码。由于GNU通用公共许可十分流行,因此很多非自由软件基金会的自由软件也使用GNU通用公共许可来保护自己软件,不被商业公司用于获利。

  GNU软件许可相当宽松,有很多公司利用GNU软件进行商业活动,但只要同时提供了GNU软件的源代码,就没有违反GNU软件许可。

  FreeBSD本身是在BSD许可的保护下,BSD许可权与GNU通用公共许可略有不同,一些方面的限制甚至更为宽松。GNU通用公共许可要求传播(包括销售)任何符合GNU软件应该包括源代码,反对利用保守GNU软件的源代码的方式牟利,而BSD许可则允许以二进制形式发布软件,对于某些不打算公开源代码的商业运用并没有进行限制。

    *
      GNU/Linux

  FreeBSD并不是唯一的免费 “Unix” 操作系统,也不是最流行的Unix系统,这个荣誉属于Lin ux。这主要由于Linux出现得早两年,那时BSD的源代码还受AT&T许可权的限制,不能自由获得,而I ntel的32位处理器386的普及已经使Internet上诸多Unix爱好者对PC平台上的免费Unix系统提出了需求,Linux应时而生。近来在Netscape等商业公司的倡导下,Linux得到众多商业公司的支持,无形中成为了反Microsfot联盟的一杆旗帜,声势更为浩大。

  Linux是由芬兰人Linus Torvalds编写的Unix兼容系统。由Linus Torvalds 负责核心开发和维护,其他组织和商业公司负责将Linux的核心和应用程序组织在一起发布,由于大部分程序为GNU软件,因此更严格的说Linux应该被称为GNU/Linux。当前流行的Linux版本有slackware 3.6 ,Debian 2.0,RedHat 5.1等。

  Linux和FreeBSD同为英特尔平台上的Unix操作系统,因此有很多相似之处。几乎所有的自由软件都同时支持Linux和FreeBSD,因此在应用方面他们也很相似。但Linux和FreeBSD也有相当大的不同之处,可以说各具特色。

  从历史渊源上讲,FreeBSD继承了BSD Unix的代码,因此代码相当成熟和稳定。而Linux是一个全新的系统,是遵循POSIX规范开发的一个独立操作系统,但又提供了与BSD Unix或Unix System V的兼容性。因此Linux完全没有受到1992年的AT&T诉讼的影响,结果成为了最流行的自由操作系统。虽然今天那次法律纠纷已经解决,4.4BSD Lite的代码可以自由获得,但FreeBSD的使用者仍要少于Lin ux的使用者,FreeBSD的使用者多数为网络和计算机专业人士,普及程度较低。

  出于这个历史渊源的原因,FreeBSD是一个完整的系统,从系统核心到系统提供的程序均来自BSD Uni x,部分GNU软件是用于代替BSD Unix中的一些老版本软件。而Linux仅仅只是一个操作系统的内核,其应用程序大部分为GNU软件,然后由不同的组织或个人将这些GNU软件与Linux内核整合在一起的。因此就存在多个不同的Linux版本,而且不同的Linux版本使用不同的组合方式,因此各种Linux版本之间有很大的差异,并且可以预计这些版本会随着发展进一步增大彼此的差异。而FreeBSD的版本比较整齐清晰,只有一个FreeBSD版本。

  通常FreeBSD更关心稳定性,而Linux具备的各种新特性更多。由于Linux得到了更多的商业公司支持,因而Linux下的商业软件也更多。但是这些商业软件均可以通过FreeBSD对Linux执行文件的支持,也能够运行在FreeBSD上。这个不同主要是由于Linux和FreeBSD的开发过程的差异造成。

  虽然FreeBSD和Linux的开发过程都是非常开放的方式,每个开发者独立进行自己的工作,通过Inte rnet来互相交流。任何对系统开发有兴趣的人都能贡献新的想法,并组建一个开发队伍或加入现有开发队伍将自己的想法实现。但是FreeBSD与Linux开发方式的不同是,FreeBSD有一个开发者组成的核心小组(FreeBSD core team)对整个FreeBSD负责。任何人都可以利用FreeBSD提出自己的开发计划,但只有Free BSD核心小组认为这个计划对整个FreeBSD发展有益,这个计划才能列入FreeBSD计划本身。所有的Free BSD开发者共享同一个源代码树,使用并发版本维护工具CVS进行维护。有了FreeBSD核心小组从整体上规划Fr eeBSD,并邀请其他开发者加入核心小组,因此FreeBSD显的更简洁和干净,版本发展也比较稳定。而Linux 仅由Linus对内核进行维护,任何人都可以组织自己的计划,贡献自己的代码,没有一个统一的源代码树,只是在最后由 Linus进行整合和发布正式内核。由于没有严格的控制,并且Linux的开发者很多,因此Linux中虽然有更多的新特性,却显得略为杂乱,并且有些新特性的代码没有经过时间验证,可能存在有问题。

  一个新功能没有进入FreeBSD正式版本的原因很多,有的是由于这个功能不够成熟,有的是由于核心小组认为这个特性意义不大,还有的是因为正式内核已经有类似功能,或者由于专利或版权问题(例如,该软件的作者不打算让该软件成为自由软件),使得十分成熟的功能也不能被列入正式发行的版本。

  由于Linux和FreeBSD互为竞争对手,在Internet上关于Linux和FreeBSD的争论很多,然而这种争论一般不会得到什么明显的结果。事实上他们都能完成各种应用需求,但各有自己的侧重点,至于那种系统最适合自己,需要根据具体情况而定,使用者的个人喜好也是影响选择的一个重要因素。一般FreeBSD的使用者也曾经(或同时)是Linux的使用者,然而有Linux的使用经验对学习和使用FreeBSD也有不少帮助。只有竞争才能促进发展,Linux和FreeBSD不但是竞争的关系,也是相互学习的关系,只有如此各自才能不断发展。

  在作者个人的使用经验中,FreeBSD仅有过一次崩溃,并且这种崩溃不是随机出现的,其原因是使用了所有优化选项来编译内核,编译器某项优化造成了内核的BUG,结果就在执行某项操作时就被触发。在降低了优化级别之后,问题就消失了。因此这个问题应归结为编译器的问题而非内核的问题。在Linux中,问题更为严重一些,过于求新求功能的多样性,使得系统崩溃更频繁,并且很多系统崩溃无法找到原因。

  注意:系统崩溃和系统死锁不同,一些情况下一些应用软件死锁会造成键盘或显示没有响应,然而仍然可以通过网络或其他终端设备登录进系统杀死死锁进程。例如在FreeBSD下执行Linux的X Server时,进行切换虚拟控制台的操作就会导致键盘死锁。

  当前Linux的一个发展热点是各个商业公司的参与,这的确丰富了Linux下的软件。然而另一方面,商业公司也试图把专有设计引入Linux,将原有开放的环境变为商品化的环境,以便从中牟利。当前不同版本的Linux之间的差异已经相当大了,很多人已经意识到了Linux面临的分裂危险,可以想象以后某个版本的Linux会与其他版本存在兼容性问题。而FreeBSD有统一的源代码树,不存在分裂的问题。

    *
      其他BSD系统

  商业版本的BSD/OS也是一个非常优秀的操作系统,它是由原BSD Unix的部分开发人员组成的BSDI 公司的产品。由于存在商业支持,因此在某些方面具备免费的FreeBSD不具备的优势。例如某些硬件厂家不愿意公开自己的硬件资料(或者是有条件的公开),因而使得FreeBSD无法支持他们的硬件,而他们可以为BSDI提供资料以供开发驱动程序。一些不能理解自由软件、要使用FreeBSD不支持但BSDI支持的硬件,或对服务和技术支持提出较高要求的使用者,可以选择使用BSDI。

  NetBSD和OpenBSD也是基于4.4BSD的自由Unix操作系统,可以算是FreeBSD的兄弟。甚至在最初,NetBSD和FreeBSD的大部分开发者都完全相同,同样的开发者同时为两个系统进行开发。而开发者和使用者都是将这两个系统作为BSD Unix在不同硬件平台的实现来看待的,FreeBSD用于Intel平台,而 NetBSD用于多硬件平台,主要用于RISC工作站硬件。随着两个系统的不断发展,两者逐渐相分离,而OpenBS D是从NetBSD分出的一个分支。但FreeBSD是为个人计算机平台设计的,后来才尝试移植到其他平台上(已经有 Alpha和Sparc芯片下的FreeBSD系统,但还不十分成熟),因此更适合个人计算机用户,而NetBSD和 OpenBSD一开始就设计为能够运行在多系统平台上,包括各种RISC工作站,因而NetBSD和OpenBSD的使用范围就更窄一些。

  以上这些BSD Unix系统的使用数量要少于FreeBSD系统。FreeBSD由于专注于Intel平台,支持Intel平台上的硬件种类最多,并对易用性作了很大改善,因而使用范围更广泛,是最常见的BSD Unix系统。但是由于这些系统同属BSD来源,在开发过程中常常相互交流,因此使用方法和管理基本相同。在FreeBSD、N etBSD、OpenBSD之间进行选择的决定性因素常常是安装BSD系统的硬件平台。

未完,待续。。。  
 楼主| 发表于 2003-2-11 10:55:15 | 显示全部楼层

FreeBSD连载(04):FreeBSD的相关资源

FreeBSD的相关资源

  有关FreeBSD的资源相当丰富,一方面旧有的BSD Unix资源也适合FreeBSD,包括大量的书籍、出版物和Internet上的资源。另一方面FreeBSD拥有大量用户和开发者,直接有关FreeBSD的资源也相当丰富。

    *
      联机文档

  FreeBSD用户最常使用的参考资料是系统联机手册,可以使用man命令查看常用命令、系统调用、C库函数、设备驱动以及系统配置文件的详细信息。系统的手册位于/usr/share/man目录,此外一些应用软件的手册位于/usr/local/share/man目录下,X Window程序的手册位于/usr/X11R6/man目录下。用户可以更改环境变量MANPATH来更改手册的查找路径。

  对于使用man来查询某个关键词时,由于某个关键词既可能是常用命令,又可能是系统调用,一般情况下man只返回第一个与关键词匹配的内容。由于手册是按种类分为9个不同部分,例如普通命令位于第一部分,C库函数位于第三部分,要查找手册后面的内容就必须使用参数指定查找手册的某个部分,或查找手册中所有匹配这个关键词的内容。

  GNU的info命令也能用于查看联机手册,并且具有前后翻页、相关命令的连接等更强的功能。自由软件基金会的GNU软件除了联机手册之外,还提供info格式的文档,更适合使用info阅读。Info文档通常位于/usr/share/info目录下。

  除了联机手册和联机info文档之外,FreeBSD还在安装介质中提供了其他的各种文档资料,包括4.4B SD的各个文档和FreeBSD的文档,这些文档在系统安装时被放到/usr/share/doc目录下。其中最有用的是FreeBSD的使用手册(FreeBSD handbook)和常见问题解答(FreeBSD FAQ),对于 FreeBSD用户来讲,它们是非常有用学习和参考材料。这两种资料均提供了超文本html格式用于在线阅读,PS格式和标准纯文本格式用于打印输出。如果在安装FreeBSD时安装了文档,这些文档将被放在/usr/share/doc/handbook和/usr/share/doc/FAQ目录中。这些联机文档均可在FreeBSD的主页ht tp://www.freebsd.org中找到。

    *
      出版物

  最重要的正式出版物算是FreeBSD的安装光盘了,用户可以使用这些安装光盘来安装FreeBSD系统。F reeBSD的每次正式发行的光盘都是由Walnet Creek负责发行的,一般FreeBSD的正式发行光盘共4 张,除了基本安装系统之外还包括了大量软件、软件的源代码和相关资料。另外还有一家Cheapbyte的光盘出版公司,以更便宜的价格出售FreeBSD的光盘。这些光盘出版物在国内的书店中还不能直接买到,只能直接和他们联系订购。如希望得到完整的光盘,可以从它们的网址上进行联系。

  Walnet Creek CDROM: http://www.cdrom.com

  CheapByte : http://www.cheapbyte.com

  FreeBSD是BSD Unix的继承者,凡适用于BSD Unix的书也完全适于FreeBSD。由于B SD Unix的影响,特别它是对教育界和学术界的影响,使得很多Unix的书均基于BSD Unix,因此可以使用出版的Unix书籍来学习和使用FreeBSD。即使是针对Unix System V的书籍,其基本的Unix使用和操作也是一致的,对FreeBSD的使用者也有帮助。只是要注意在较深入的系统管理和Unix的编程方面,Unix System V和BSD Unix有所差异。因此在阅读这些Unix书籍中,要了解这些书籍是针对那种Unix的,以了解它与FreeBSD差异的大小。

  为Unix编写的书籍,不会包括FreeBSD的安装、设置等与具体的系统密切相关的内容。直接与FreeB SD相关的内容只在FreeBSD使用手册或直接为FreeBSD读者写作的参考书中包括。在FreeBSD领域中,英文书中最著名的为Greg Lehey的《The Complete FreeBSD》,这是一本相当完整的英文F reeBSD指导书籍,同样由Walnet Creek出版。中文的FreeBSD书籍有台湾李建达的《FreeBS D入门与应用》。这两本书均没有在国内正式出版,很难买到。

    *
      Internet资源

  FreeBSD是利用Internet进行开发的一整套系统,很多开发者彼此之间只通过Internet相互联系,甚至从来没有见过面。因此只有通过Internet,才能获得最丰富的FreeBSD资源。

  文件资源:FreeBSD的文件服务器为ftp://ftp.freebsd.org,这台服务器本身就是由 FreeBSD建成,是世界上最大、最繁忙的匿名ftp文件服务器(它的另一个名字就是ftp.cdrom.com)。这个服务器中放置了最完整的FreeBSD完整安装文件和源文件。有关FreeBSD的部分在很多其他ftp站点上还有镜象,使用这些FreeBSD的文件服务器,就可以仅仅使用启动软盘来安装FreeBSD系统。

  Web资源:FreeBSD的主Web服务器为http://www.freebsd.org,这台 ... D的中文文章。

  以下给出一些较有用的Web资源列表,显然通过这个列表不可能给出所有的资源连接,但可以通过它们,进一步获得其他相关网上资源的位置。

http://www.freebsd.org

FreeBSD的主页,包括很多有用的资源,例如使用手册和常见问题解答等。

http://www.freebsd.org/zh/FAQ/

FreeBSD的常见问题的中文解答,台湾BIG5版。

http://www.freebsd.org/tutorials/

一个简单但对新手十分有用的FreeBSD入门教程。

http://www.vmunix.com/fbsd-book/

一本图文并茂的FreeBSD电子图书,包括对安装和简单设置的解释说明。

http://flag.blackened.net/freebsd/

包括一些FreeBSD的资料,教用户如何一步步的解决问题。

http://www.mckusick.com/courses/

BSD的设计者之一Kirk McKusick在伯克利开的一门Unix课程,他使用FreeBSD为教学系统。无缘进入伯克利学习的读者可以购买这个课程的录象带。

http://www.daemonnews.org/

这个网址是BSD新闻的发布站点。

http://www.freebsdzine.org/

每月更新一次的FreeBSD电子刊物。

http://www.freebsddiary.com/freebsd/

每天都会更新的FreeBSD资料,是网站设定者的个人学习日记。描述安装、设置各种软件的具体解决过程,对于遇到同样问题的使用者不无裨益。

http://www.freebsdmall.com/

介绍有关FreeBSD的各种商业产品,从商业X Server到印有FreeBSD吉祥物的衣服。

http://www.freebsdrocks.com/

有关FreeBSD的新闻、资源、讨论区和技术文档.

http://fbsdboard.lynxcom.net/

一个讨论FreeBSD相关内容的讨论区。

http://dmoz.org/Computers/Operating_Systems/Unix/FreeBSD/

一个收集了很多其他FreeBSD连接的网址。

http://freebsd.csie.nctu.edu.tw

台湾交通大学的FreeBSD网站,有很多台湾FreeBSD使用者的讨论内容,从此处可以连接到台湾的其他FreeBSD的站点上去。

  Usenet资源:直接有关FreeBSD的新闻组有comp.unix.bsd.freebsd.misc ,comp.unix.bsd.freebsd.annouce,还有很多讨论BSD Unix的新闻组也讨论Fre eBSD的问题。可以与本地的NNTP服务器连接读取这些新闻组,如果本地没有NNTP服务器,可以通过以下两个We b网站读取Usenet的新闻:

  http://www.dejanews.com

  http://www.supernews.com

  邮件列表: FreeBSD.org上提供有关FreeBSD的各种邮件列表,事实上邮件列表在FreeBS D用户之间起到的交流作用非常重要,使用它可以直接与FreeBSD的各个开发者联系,获得帮助。可以通过向majo rdomo@freebsd.org发送请求,订阅相关邮件列表,例如向majordomo发送一个内容仅仅包括一行 “subscribe freebsd-current” 的邮件将订阅freebsd-current列表,然后m ajordomo会发送一封确认邮件,一旦得到确认,以后每个发送到这个列表的信件都发送给这个用户。邮件列表是一个与其他FreeBSD使用者交流的相当有用的工具,例如,可以向freebsd-questions@freebsd .org发送疑难问题,那么就能得到包括大多数开发人员在内的其他使用者的帮助。下面是一些十分有用的邮件列表:

  freebsd-announce--------宣告FreeBSD开发中重要的升级及其他事件

  freebsd-bugs------------报告FreeBSD的Bug

  freebsd-chat------------谈论非技术性的FreeBSD话题

  freebsd-isp-------------ISP使用FreeBSD的一些高级问题

  freebsd-newbies---------新手的一些问题及讨论

  freebsd-questions-------问题及答复,可以在这里获得技术支持

  freebsd-current---------讨论使用current版本的一些问题

  freebsd-stable----------讨论使用stable版本的一些问题

  freebsd-doc-------------FreeBSD文档的讨论列表

  freebsd-hackers---------有关FreeBSD技术的话题

  freebsd-ports-----------讨论向FreeBSD上移植软件

  freebsd-security--------FreeBSD的安全

  freebsd-net-------------讨论网络技术及其在FreeBSD上的实现

  IRC通道:还可以通过IRC上的FreeBSD通道得到其他FreeBSD用户的实时帮助,这对于正遇到问题、调试系统的使用者非常有用,可以立即可其他FreeBSD使用者讨论自己碰到的问题,得到实时帮助。

    *
      商业服务和支持

  虽然FreeBSD是免费操作系统,然而仍然有提供FreeBSD服务的计算机公司。国外可以从FreeBS D Inc.和Walnut Creek CDROM那里得到服务和支持,在FreeBSD的主页中还有收集了很多对 FreeBSD提供支持的商业公司的连接。国内还没有专门提供这类服务的商业机构,然而随着FreeBSD影响的扩大,必然会出现对FreeBSD提供支持的系统集成商。

未完,待续。。。  
 楼主| 发表于 2003-2-11 10:56:25 | 显示全部楼层

FreeBSD的相关资源 FreeBSD连载(05):安装之前的准备

第2章 安装与配置

  Unix给人的印象一向是比较专业,难以安装,但是FreeBSD的表现却并非如此。这是因为FreeBSD 主要支持最流行的个人计算机平台,由于多平台问题不是主要考虑对象,FreeBSD的开发者就集中精力建立了一整套适用于个人计算机的高级安装与配置工具 ── Sysinstall。因此与其他Unix系统不同(包括NetBSD和 FreeBSD),FreeBSD的安装过程相对简单和容易理解,只需要安装软盘或安装光盘启动安装程序,就能顺利完成安装FreeBSD的任务。

  FreeBSD的安装程序支持最流行的网络安装和光盘安装方式,也支持传统的磁带和软盘等其他几种安装方式,支持大多数的流行硬件以及这些硬件的标准配置,并能对系统进行基本配置,如主机名、键盘和屏幕字体、网络设置等。

  但是通常个人计算机上最常使用的还是微软的Windows 9x系列的操作系统,使用者常常习惯用来自于DO S的一些概念来分析系统,这些概念与Unix对同样事物的理解方式有所不同。而FreeBSD是一个完整的Unix操作系统,因此要求使用者要使用Unix的方式去了解个人计算机系统的各个方面。正如一个没有任何DOS/Window s基本概念的使用者,无法正确安装DOS/Windows一样,一个没有任何Unix的基本概念的使用者,也无法正确安装FreeBSD。

    *
      安装之前的准备

  安装之前应该了解要安装FreeBSD的计算机硬件配置和Unix的一些基本概念,以及FreeBSD软件的载体 ── 安装介质。这些信息能帮助用户了解这台计算机是否适合安装FreeBSD,是否具备安装FreeBSD的条件。绝大多数情况下使用安装光盘(或软盘)直接进行安装,就能完成安装任务,但了解更多的信息可以帮助安装者处理在特定条件下发生的安装问题。所以建议读者不要忽略安装的准备阶段,充分了解自己要安装的系统的硬件和FreeBSD中的常用概念,可以避免安装过程中出现问题。

    * 硬件设备

  个人计算机上的硬件种类千差万别,对于用于不同目的的系统,应该会选用不同的硬件。有些硬件对FreeBSD 系统比较重要,如硬盘和网络设备,而有些硬件不太重要,属于可选配置,如用于多媒体系统的声卡等。要安装FreeBS D系统,必须保证这台计算机中包括最基本的硬件设备,如用于安装系统的硬盘,读取要FreeBSD安装介质的设备:软盘驱动器、光盘驱动器或网络等。

  然而也有特定配置的FreeBSD系统,可以仅使用软盘启动和运行,或者是无盘的网络工作站。这些系统用于特定目的,如用作专用防火墙设备或X终端。这些特殊配置的FreeBSD系统不使用标准的安装方式。

   1. FreeBSD支持的硬件

        标准的FreeBSD最小能够安装在一台只有5MB内存,40MB硬盘,使用Intel 80386芯片的机器上。事实上运行FreeBSD只需4MB就足够了,只是FreeBSD的安装程序要将软盘上的数据首先展开到内存中的MFS文件系统中(相当于虚拟磁盘),因此要求至少5MB的存储空间。如果要求系统能运行X Window图形界面,那么就应该至少有8MB内存,250MB硬盘。

        FreeBSD在这种低配置的计算机中仍然能完成相当多的任务,然而处理器的速度和内存的大小也限制了它的任务处理能力,显然更高配置的计算机能表现出更出色的性能,完成更复杂的处理任务。例如,安装软件需要额外的硬盘空间,而复杂的软件会要求更大的内存和处理器速度提供支持。通常太低配置的计算机对于用作个人工作站并不适合,但其处理能力也能满足完成某些处理专有任务的特定用途方面。例如用作拨号访问Internet的网关,一台软盘启动的386也就能满足其56Kbps流量的处理要求。

        不同的工作用途,对硬件的要求也不相同,也应该选用不同种类的硬件。如果用作个人工作站或专用X终端,至少应该拥有大屏幕、高清晰的图形显示器。如果是用作支持数百人同时访问的Internet服务器,就必须考虑使用最高级P entium II处理器,SCSI硬盘以及大量的内存。将FreeBSD系统用作软件路由器、防火墙或网桥设备时,就应该根据网络结构和数据流量采用高性能的网卡,例如采用ATM网卡或千兆以太网卡。

        FreeBSD支持ISA、EISA和PCI总线的硬件设备,包括标准的IDE/EIDE硬盘驱动器,各种S CSI控制器,IDE和SCSI界面的磁带驱动器和光驱,其他的一些ATAPI界面的光驱,标准串口、并口,各种类型的鼠标,与SoundBlaster兼容的声卡,VGA兼容的显示卡等个人计算机上使用的大部分硬件。只有一些太古老的,或者使用很少的硬件,或者生产厂家不愿公开其技术资料的硬件,FreeBSD不能提供支持。对于这样的情况,就必须更换硬件设备才能安装FreeBSD。同时也必须注意到,由于FreeBSD下的硬件支持并不是由硬件厂商提供支持的,而是由FreeBSD开发者根据硬件厂商提供的资料开发的。因此当一种新设备出现之后,并不会立即出现FreeB SD下的驱动程序,而需要一定的滞后时间。

        字符模式下,只需要标准VGA显示设备就可以了,但在X Window下,显示卡的VGA兼容方式只能提供1 6色及640x480的分辨率,而大多数显示卡能显示更高的分辨率及更丰富的色彩,这需要显示卡的驱动程序提供支持,这种支持是由X Server来完成的,因此对不同种类显示卡的支持应该检查X Free86的硬件支持列表。

        在每个FreeBSD安装介质中,都包括一个该版本的FreeBSD支持硬件的列表文件──HARDWARE .TXT,也可以到FreeBSD的往页中获得各个版本的硬件支持列表文件。然后可以对比这个文件中的硬件列表,来判断自己计算机上的硬件是否满足安装FreeBSD的要求。在订购计算机硬件时,也可以参考这个文件的内容来选择购买F reeBSD支持的硬件。

        但是,FreeBSD支持的硬件并不一定是FreeBSD的标准安装程序支持的硬件,由于要在安装软盘中不可能包括所有硬件的驱动程序,而只放置了对安装系统所必要的一些驱动程序。有的硬件设备对于系统安装来讲用处不大,如声卡等多媒体设备,那么其驱动程序就不包括在安装软盘和标准内核中。支持这些硬件便需要重新定制FreeBSD内核,安装盘支持的硬件也在HAREWARE.TXT中进行了描述。

        当前计算机硬件发展速度非常迅猛,当前Intel平台的计算机完全能满足不同用途FreeBSD的要求。然而由于硬件发展很迅速,新型硬件不断出现,就使得这些硬件从出现到被FreeBSD支持,需要经过一段时间。如果某些硬件在最新的release版本中不支持,可以查看FreeBSD-current分支是否支持该硬件,因为-curr ent分支通常包括更多新硬件的驱动。

   2. 硬件资源及配置

        个人计算机的硬件由主板和多个的板卡组成,每种硬件必须占用不同的硬件资源。这些资源包括端口号(ports ),中断请求号(IRQ),直接内存访问通道号(DRQ),输入/输出存储器地址(I/O memory),硬件使用的资源不能够相互冲突,否则冲突的硬件就无法正常工作,甚至会影响整个系统的正常运转。

        在个人计算机中,硬件资源的分配遵循一定的习惯,这样在使用的板卡数量较少时就不会形成冲突。但是在硬件较多时,缺省配置就不一定十分合适。为了避免硬件冲突,就需要对板卡使用的资源进行设置。而不同的板卡,采用三种不同的资源设置方式:

          * 跳线或DIP开关,板卡上有几个不同的跳线,选择不同的跳线方式使板卡使用不同的硬件资源;

          * 软件设置,板卡厂商附送设置软件(一般是DOS程序),能够对板卡使用的资源进行设置。有的板卡还提供驱动程序,可以自动探测空余的资源,并重新更改板卡使用的资源设置,这种能通过软件驱动改变资源设置的板卡被称为无跳线板卡( Jumpless)。只是其提供的驱动基本都是DOS/Windows驱动;

          * 即插即用(PNP, Plug & Play),板卡遵循PNP标准由系统分配空余资源;

        对于这三种不同的硬件类型,更改板卡资源配置的方式也不同,对于前两种方式的板卡,可以直接更改跳线或DIP 开关,或者在DOS下使用设置软件来设置它占用的资源。即使是Jumpless的板卡,由于硬件厂商提供的驱动只是D OS/Windows驱动,因此只能使用其缺省资源设置而不能利用其自动探测的优势,当然设置程序可以帮助更改其缺省的资源设置。

        而对于Plug and Play的ISA板卡,问题较为复杂,因为PNP板卡要求系统为其分配资源设置。有些板卡的设置软件,可以设置这个板卡不使用Plug and Play方式,而直接指定占用的硬件资源。这样就将PN P类型的板卡用作软件设置的板卡,由安装者来保证没有硬件设置冲突存在,这是一种思路简单的解决办法。

        如果使用Plug and Play的方式为板卡分配资源,可以选择两种不同的分配方式,一种是由BIOS设置硬件的资源,BIOS在自检时就分配资源给PNP卡,然后当操作系统启动时根据这个设置分配板卡占用的资源。另一种方式完全由操作系统分配PNP卡占用的资源,BIOS不给PNP卡分配硬件资源。

        FreeBSD能够支持Plug and Play,但是由于ISA总线的PNP卡通常是某种标准ISA板卡的兼容产品,驱动程序不会自动分配资源,因此就需要在UserConfig中进行手工设置或调整,PCI PNP卡就不存在这个问题。为了避免烦琐的手工调整,可以使用BIOS给Play and Play板卡分配初始资源,如果必要再手工调整设置。支持PNP卡的主板BIOS中通常有一个Plus & Play OS选项(或类似描述词句),这个选项用于决定是否为PNP板卡分配资源,应该将该选项关闭(选择 “Disable” , “No” , “ non-Win95” 等),让BIOS为板卡分配初始资源。

        通过更改硬件的设置,来解决硬件冲突问题。此后将这些硬件配置信息记录下来,用来解决安装过程中的问题。即使计算机上不存在硬件冲突问题,记录下这些配置信息也是非常有用的。可以通过查看各个硬件的手册或硬件提供的设置软件来了解这些硬件的配置情况,如果计算机上已经安装有操作系统,可以使用这个操作系统上的软件来辅助了解硬件的配置信息,例如DOS下的MSD,Windows 95下控制面板中的系统选项等,这些软件中将显示出当前计算机已经配置过的硬件信息。

        对于PNP卡,由于系统资源是计算机启动后才获得的,因此使用DOS/Windows下的软件能更快捷的获得必要的信息。虽然PNP中资源是动态分配的,但是这个值仍然能起到非常有用的参考作用,尤其对于使用BIOS来分配资源的板卡,这个资源设置就更有意义一些。

    * 安装介质

        为了安装FreeBSD,必须还要有FreeBSD系统的安装介质,FreeBSD支持的安装介质有以下几种:

          o CD-Rom

              由于光驱已经成为个人计算机的标准配置,因此使用FreeBSD的安装光盘来安装FreeBSD是最容易也最常见的安装方式。并且当个人计算机系统支持CD-Rom启动时,就可以直接使用光驱来安装FreeBSD,而不需要启动软盘的帮助。使用CD-Rom做安装介质要求计算机配有FreeBSD可以识别的光盘驱动器。

          o 网络服务器

              安装文件位于网络服务器上,安装程序通过ftp或者nfs,远程访问网络安装服务的相应服务器上,获得安装所需的各个文件。网络安装要求系统必须连接到网络上,而且网络的传输速度也要比较稳定才合适。被安装的计算机必须具有网卡或广域网接口,以支持网络。

          o 磁带

              这是一种较老式的安装方法,但十分有效。如果有tar格式的安装磁带,安装过程十分简单。使用这种安装方式,计算机必须拥有一台磁带机。

          o 软盘

              也是一种较古老的安装介质,除非条件限制,很少有人有耐心使用软盘作安装介质,因为这需要太多的软盘,并且软盘是不可信赖的存储介质,很难保证复制的软盘没有错误。FreeBSD之所以支持这种方式,是因为软盘驱动器是个人计算机的标准配置,这使得FreeBSD能够在最恶劣的特殊条件下也能进行安装。

          o 硬盘

              将FreeBSD的安装文件预先拷贝到计算机系统中已有的硬盘分区中,该分区的类型可以是DOS分区或者 FreeBSD分区。这要求计算机中有足够的硬盘空间并已有格式化后的分区。这种方式是前面几种方式的折中方式,如果网络不稳定,或者光盘质量有问题,或者要保留安装介质以便再次安装,都可以先复制必需的内容到硬盘上。

          o 安装介质中的内容

              无论哪种安装介质,其中都是存储了要构建一个FreeBSD系统所需要的系统软件,由于CD-Rom和Internet 越来越普及,CD-Rom和网络安装方式是最常用的方法。这里就以FreeBSD的安装光盘为例,简单介绍 FreeBSD安装介质上的主要内容。

              FreeBSD使用的安装光盘是标准的ISO 9660格式的光盘,这种格式缺省只支持8.3格式的文件名( 8个字符的基本文件名,3个字符的扩展名,不区分大小写),由于Unix下的文件名比较长,且区分大小写,因此Fre eBSD及其他Unix通常使用Rock Ridge方式对文件名进行映射,在每个目录下使用一个文件TRANS.TBL 记录8.3格式的文件名与Unix使用的长文件名之间的对应关系。

              FreeBSD安装光盘中的内容可分为三类:

            第一类为安装说明文件,这些文件位于安装介质中的根目录下:

            ABOUT.TXT: 关于FreeBSD的简单信息
            HARDWARE.TXT: FreeBSD支持的硬件列表
            INSTALL.TXT: 介绍如何安装FreeBSD的说明
            README.TXT: 介绍安装介质上其他文件,应该首先阅读
            RELNOTES.TXT: 发行这个版本的FreeBSD系统时的一些通知
            LAYOUT.TXT: FreeBSD安装系统的文件分布的说明
            UPGRADE.TXT: 进行升级FreeBSD的一些注意事项

            第二类是进行安装时能用到的DOS工具程序,主要用于制作启动软盘。

            tools目录: 准备安装所需要的DOS工具程序,包括制作启动软盘的DOS程序,以及帮助整理硬盘的 工具,从DOS下启动FreeBSD的程序等。
            floppies目录: 包含安装软盘、启动软盘、系统修正软盘的镜象文件的目录

            第三部分就是FreeBSD系统的安装文件

            XF86333目录: 包含XFree86软件的目录,其中版本号会随着系统升级而提升到更新的版本
            bin目录: 系统基本文件的安装目录,这是安装FreeBSD所需的必备目录
            catpages目录: 格式化后的普通文本方式的系统手册
            compat1x、 compat20、 compat21 和compat22目录: 包含与以前各个版本的FreeBSD相兼容的库
            des目录: 由于美国法律的限制,包含DES算法的软件未经许可不能出口到美国和加拿大之外, 因此FreeBSD缺省使用MD5算法以避开这个问题,这个目录中包含与des算法的相关软件,以便需要这个 算法的使用者可以从北美之外的Internet上获得并安装。
            dict目录: 系统字典安装目录
            doc目录: 系统文档安装目录
            games目录: 包含一些Unix小游戏
            info目录: GNU info文档的安装目录
            manpages目录: 系统手册的安装目录
            packages目录: 包含最常用的软件
            ports目录: Ports Collection的源代码
            proflibs目录: 系统运行库
            src目录: 系统源代码的目录

              这些安装文件可分为三类,一类是系统软件,用于构建基本的FreeBSD系统。这些软件存储在安装介质下的b in, des, dict, doc, games, info, manpages,catpages, com pat1x, compat20, compat21, XF86333和proflibs目录中。为了便于管理,这些文件使用tar和gzip进行打包压缩,其中前六个目录下的文件被分割为大小为240,640字节的文件,这样在需要的时候,可以拷贝到软盘上进行安装。然而并不是所有的内容都必须安装,可根据不同的安装选项,有选择的安装不同目录下的不同内容,只有bin目录下的系统软件才是必须的。

              另一类是可选软件,如果说基本系统是骨架,那么应用软件就是血肉。没有应用软件,一台FreeBSD系统就不能充分发挥它的全部功能。FreeBSD使用Ports Collection的机制来管理应用软件,将应用软件移植到FreeBSD下,每个移植的软件被预编译为一个个的二进制软件包,称为Package,存储在安装介质的pack ages目录下,因此二进制软件包的管理机制又称为Packages Collection。由于空间的限制,安装光盘上并不能包含所有软件的二进制形式的Packages,但在FreeBSD的ftp站点上提供了所有最新的软件包。

              此外就是系统的源代码,包括内核的源代码、各个程序的源代码以及Ports Collection的源代码。一个正常的FreeBSD系统至少应该安装内核的源代码,以便根据自己计算机的实际情况来定制内核。这些安装文件位于 src和ports目录下。

              其他安装方式下的安装介质内容与CD类似,但在内容上也略有不同。因为安装组件都是可选的,因此不同的安装介质将可以选择不同的安装组件。例如软盘安装介质可能只包括最基本的系统(bin目录下的文件),而FreeBSD的主 ftp站点ftp.freebsd.org上,包括了所有的安装文件。

              要根据不同情况和条件,来选择不同安装介质。如果计算机系统具备网络界面并与Internet的连接快速且稳定,那么就可以使用网络安装方式,这仅仅需要制作启动软盘(如果计算机上已经安装有DOS,甚至可以连启动软盘都不需要了),以启动FreeBSD和安装过程。如果购买了FreeBSD的安装光盘,就可以选用光盘安装方式等等。

              当前由于硬件发展非常迅速,因此光驱对于个人计算机已经是标准配置,因此使用光盘作安装介质应该是最为方便的首选安装方式。

    * 准备硬盘和软盘

        在IBM兼容的个人计算机上使用的硬盘控制器有以下种类:

          o 最古老类型的ST-506以及ESDI,当前已经很少人使用这些驱动器,但是FreeBSD的wd驱动程序仍然支持它们;

          o IDE和增强型IDE(EIDE),是当前最流行的个人计算机硬盘控制器,每台计算机能接两个控制器,每个控制器可以接两个设备(硬盘或光驱),分别为这个控制器上的主设备和从设备。FreeBSD的wd驱动程序支持EIDE,wd驱动程序探测到的第一个IDE控制器的主硬盘为wd0,第一个IDE控制器的从硬盘为wd1,第二个IDE驱动器的主硬盘为wd2,从硬盘为wd3;

          o SCSI控制器,由于SCSI控制卡承担了大量的处理任务,降低了中央处理器的负载,更适合用做服务器和高性能工作站的磁盘驱动器。早期的SCSI控制器能接7个设备,而Wide SCSI控制器可以接15个设备。SCSI板卡种类繁多,对不同的SCSI控制器,FreeBSD需要使用不同的驱动程序来进行支持。与IDE驱动器相同,SCSI硬盘驱动器也按检测到的顺序排列或在内核中规定的顺序,从da0向后,依次类推。

        在FreeBSD 2.2.x版本中使用的SCSI驱动程序为与3.x版本不同,旧版本驱动程序使用的SCSI 硬盘设备名为sd0等。

         1. 硬盘分区方式及命名

              在个人计算机中,每个硬盘可以分为四个磁盘分区,其分区信息存储在该硬盘前部的分区表中,而每个分区可以由不同的操作系统进行管理。常见的分区分为基本分区和扩展分区,又根据使用的不同文件组织格式,可以分为DOS的FAT分区,FreeBSD的UFS分区、NT的NTFS分区,Linux的EXT2FS分区等。

              一个硬盘上可以划分一个扩展分区,扩展分区与基本分区不同,它实际上不直接在上面存储实际数据,而是在上面再划分逻辑分区,这样又可以划分四个逻辑分区。使用DOS/Windows操作系统的计算机必须拥有一个使用DOS的F AT文件系统的基本分区,这个将对应于DOS下的C盘,然后将其他空间划分到扩展分区中,在扩展分区中再划分DOS逻辑分区,相应的FAT分区依次对应于D盘、E盘等。当其他的操作系统使用硬盘时,这个操作系统应该单独占用一个分区,在这个分区上使用自己的文件组织格式。

              DOS只能使用C、D等盘符来标志FAT格式的磁盘分区,它不能标识其他文件组织格式的磁盘分区,如果一个硬盘上没有FAT格式的磁盘分区,那么就不会存在C盘、D盘等。然而其他更强大的操作系统通常能识别多种文件组织格式,通常按照分区在分区表中的顺序来标识他们。例如FreeBSD将记录在分区表上的分区,分别称作wd0s1,wd0s 2,wd0s3,wd0s4,wd0为第一个IDE硬盘,使用s1标识第一个分区等。如果某个分区(例如第二个分区w d0s2)为扩展分区,那么其上面的逻辑分区,其顺序就从5算起,为wd0s5,wd0s6,wd0s7,wd0s8 。因此一个磁盘上最多只能有8个不同的分区同时存在。

              然而毕竟扩展分区上的逻辑分区和基本分区还有所差别,因此不是所有类型的文件组织方式都可以适合在逻辑分区中使用。FAT、NTFS和EXT2FS类型可以被在逻辑分区上使用,但是FreeBSD使用的UFS不能被逻辑分区使用,只能是在基本分区中使用UFS文件组织格式。这是由于FreeBSD是一个完全独立的操作系统,使用的分区方式继承自BSD Unix,早在个人计算机出现之前,BSD就已经形成了自己的管理硬盘和分区的方式了。

              BSD Unix传统的使用硬盘方式是独占整个硬盘,只有文件系统或交换空间而没有分区的概念,也不使用硬盘的分区表来保存分区信息,因此也不存在基本或扩展分区。BSD使用Slice来表示硬盘上的一个部分,一个Slice 是硬盘的一个部分,它可以是一个文件系统也可以是一个交换空间。Slice的概念与个人计算机传统使用的Partit ion(分区)概念类似,因此也可以使用分区来称呼它。BSD方式的管理方法能管理多达8个Slice,BSD按字母顺序依次命名他们为wd0a,wd0b等。按习惯用法,wd0a用于根文件系统 “/” ,wd0b用于交换空间,w d0c用于表示整个硬盘空间,wd0e用于/usr文件系统等。

              然而FreeBSD毕竟是运行在个人计算机平台上的操作系统,其他操作系统使用Partition,而Fre eBSD使用Slice,就必须采用一种折中的方式,使得FreeBSD能和其他操作系统相互协作,处理磁盘分区。F reeBSD的磁盘管理方式就是一种兼容的硬盘使用方式。每个FreeBSD系统将占用一个独立的UFS基本分区,这个分区与其他操作系统使用分区的方式相同。在基本分区内再使用BSD的Slice方式进行管理,这种方式就类似于DO S在扩展分区内分割逻辑分区的方式。

              假设FreeBSD使用了第三个分区wd0s3,则在这个分区内划分的相应Slice就被称为wd0s3a, wd0s3b等,其中wd0s3a缺省被用做根文件系统等。这时仍然可以使用传统的名字wd0a来称呼wd0s3a,使用wd0b称呼wd0s3b,以与BSD传统方式兼容的方式称呼这些Slice,但条件是wd0s3应该是wd0硬盘上第一个UFS类型的基本分区(或唯一的UFS基本分区),wd0盘上的其他UFS分区中的Slice就只能使用全称了。由于Slice和Partition都是用于分隔磁盘(或分区),以更方便的利用磁盘空间,为了简捷,可以将在 UFS基本分区中划分的Slice,如wd0s3a,称作wd0s3分区的子分区。

              下面为DOS和FreeBSD(多操作系统并存)下常用硬盘分割的方式。

         2. 准备硬盘

              如果不是在新系统中安装FreeBSD,安装系统之前需要备份相应硬盘上的重要数据。因为安装过程将直接操作硬盘,对硬盘进行分区和格式化(在Unix下称为建立文件系统),虽然在一定条件下安装者能够不破坏原有的数据,但是有可能由于某次误操作,导致重要数据的无法恢复。因此建议对该计算机上的所有硬盘数据做一次完整备份。这些数据的备份任务要使用计算机已经安装好的操作系统来完成。

              然后需要确定将系统安装在何处,FreeBSD必须独占一个基本分区,要保留出自由空间就行了。硬盘上的自由空间包括两个含义,一是分区表中的位置上的空间,四个分区表没有占满,另一个是硬盘空间,现有的分区没有占满所有的硬盘。然而,安装程序也能删除现有分区,并重新分割硬盘。

              如果是在一个新硬盘上安装FreeBSD系统,但又打算以后还安装DOS等其他操作系统,最好使用DOS程序 fdisk.exe先划分出一个基本分区。这个分区的大小都没有什么意义,它只是用来给FreeBSD安装程序提示B IOS的硬盘数据映射方式的,否则FreeBSD安装程序就不考虑BIOS的映射方式。由于这个分区只起到提示作用,可以在安装过程中删除,重新按照原有的考虑分割硬盘。如果没有这样的分区,FreeBSD安装程序中的硬盘映射数据可能和BIOS中的设置不一致,当然安装者可以进入BIOS,记录下硬盘的柱面、磁道和扇区映射数据,在安装过程中手工更改映射数据设置。

              硬盘映射数据不一致的问题,来源于个人计算机BIOS与Unix对硬盘的理解不同。个人计算机使用柱面、磁道和扇区的概念来理解硬盘上数据的位置,而Unix只将硬盘等存储设备理解为分为一个个块的简单线形设备。这就导致Fr eeBSD中的Slice和BIOS中的Partition划分时的不同。如果计算机上只有FreeBSD一种系统独占硬盘,FreeBSD只需要知道每个Slice的大小就行了,按块读取数据,不会出现任何问题。但如果与另一种操作系统共享硬盘,那么就必须首先确定相应的Partition位置,这就受到BIOS的限制。一旦FreeBSD对柱面、磁道和扇区理解与BIOS设置的不同,必然就发生不能找到分区的正确位置问题。

              一般情况下,找不到分区位置的情况不会发生,因为FreeBSD系统能够侦测到硬盘的数据。但是个人计算机上的BIOS会对柱面、磁道和扇区数据重新进行映射,导致BIOS以与硬盘本身并不一致的方式来分割硬盘上的Parti tion。因此对于在一个新硬盘上安装FreeBSD,BIOS又对磁盘数据进行了重新映射的情况下,就需要记录下B IOS映射的数据用于纠正可能出现的映射数据问题。BIOS对硬盘数据进行映射发生于两种情况下,一种情况为使用SC SI硬盘时,SCSI硬盘本身使用线性地址,而BIOS必须要求柱面、磁道和扇区的概念,因而BIOS就对SCSI硬盘进行映射。另一种情况是对EIDE硬盘,由于个人计算机BIOS的设计问题(系统调用仅支持1024柱面的限制),支持大硬盘的BIOS也要将EIDE硬盘重新映射为合法的硬盘数据(使用LBA或其他映射方式)。因此即使在安装系统之后,如果随意更改BIOS中的硬盘映射方式,就会使得分区的位置被映射到一个错误的位置上,发生启动错误。

              FreeBSD本身并不使用任何BIOS调用来处理硬盘存取,而是使用自己内部的硬盘驱动程序。因此,只要启动程序将控制权交给FreeBSD系统之后,BIOS中的硬盘映射方式就没有意义了。但是,启动系统的任务是由BIO S或使用BIOS调用的启动管理程序来完成的,BIOS必须能找到操作系统的启动部分才能载入相应的操作系统。这样就有两种有趣的情况发生,第一种情况下,虽然BIOS的映射数据可能被改动了,但是改动之后的数据中操作系统分区的初始位置没有变化,这样BIOS仍然能载入操作系统的启动部分,来启动FreeBSD。这种情况最常发生在让FreeBS D系统独占整个硬盘的情况时,这样操作系统的启动就基本不受BIOS的映射数据的影响了,这种情况就是传统的BSD的硬盘管理模式,硬盘中不存在Partition。

              另一个情况发生在FreeBSD分区的位置在1024柱面之后,由于BIOS的1024柱面限制,它不能引导 1024柱面之后的分区。因此给FreeBSD留的空间要位于1024柱面之内,才能使安装后的FreeBSD系统能够正常启动。在系统启动之后,FreeBSD就不再使用BIOS进行任何操作,则此时就可以处理1024柱面之后的硬盘了。在这种情况下,BIOS的硬盘映射能起到帮助作用,因为如果BIOS使用了LBA或其他方式重新映射了硬盘数据,每个硬盘分区就将保留在1024柱面之内,就不存在这个问题了。因此,如果大硬盘使用的是LBA等模式,就不存在启动问题,如果BIOS没有映射硬盘数据,就要注意分区的位置,以便系统能正确启动。但是,在硬盘上已有分区的情况下,不应该调整硬盘的映射数据,因为这将丢失已有的分区数据。

              因此如何处理分割分区就需要安装者仔细考虑。对于一个新系统,可以选择让FreeBSD独占整个硬盘或者保留一个小的DOS分区。让FreeBSD独占整个硬盘的好处是硬盘不受BIOS的影响,因此这个硬盘可以立即安装到其他 FreeBSD系统下,而不需要考虑不同BIOS的不同映射方式。但是保留一个小DOS基本分区也存在相当多的好处,因为Intel平台下的多数硬件配置和诊断程序为DOS程序,将这些配置程序保留在DOS分区内,便于更改硬件配置和诊断故障。具体如何选择依赖于安装者的考虑,一般建议保留一个DOS分区。

              对于在已安装有操作系统的硬盘上安装FreeBSD系统,处理分区就更需要小心。大多数预装DOS/Wind ows的个人计算机通常使用DOS基本分区和扩展分区占满了整个硬盘空间,没有空余的自由硬盘空间留给FreeBSD 。因此就需要将一个分区留给FreeBSD,就需要在安装之前把这个分区中的数据都进行备份。此外还需注意如果是要将扩展分区留给FreeBSD,就必须将整个扩展分区留给FreeBSD,FreeBSD不能在扩展分区中的某个逻辑分区上安装。如果使用者想保留已有分区和数据,情况就比较复杂了,有一些软件能够在不损失数据的条件下,更改已有分区大小,这样就能从现存分区中挤出空余空间来安装FreeBSD,这些软件有自由软件FIPS(在安装光盘中提供),商业软件PartitionMagic等。

              FIPS能够将FAT类型的DOS基本分区分割为两个分区,第一个分区保留原有数据,而可以使用FIPS分出的第二个分区安装FreeBSD。然而这种操作直接操作硬盘,具有非常大的危险性,如果操作失误,很可能导致分区错误及数据丢失。建议在FIPS操作之前,备份硬盘上的重要数据。此外,还应该首先使用磁盘整理工具来整理磁盘上的文件。长期使用计算机,使硬盘上的文件被零零碎碎的放在硬盘的不同位置上,因此必须将所有的文件都移动到硬盘的前面,以减少错误发生的可能性。微软的Defrag工具以及其他第三方厂商的工具,如Norton SpeedDisk,都提供了这个能力。

              Defrag程序不移动系统和隐藏文件,因此对于可能位于磁盘后部的系统和隐藏文件,必须在运行Defrag 之前使用微软的attrib命令去除这些属性(包括Windows的交换文件),由于有这些属性的DOS系统文件IO .sys和MSDOS.sys总是位于磁盘的前部,因此不需要对它们进行处理。运行Defrag不能使用 “Defr ag File Only” (只整理文件碎片)选项,因为该选项并不把所有的文件都移动到硬盘前部。

              运行了Defrag之后,最好使用Scandisk来检查一下是否存在磁盘错误,如果一切正常,并且分区表还没有占满(总计不到四个分区),就可以运行FIPS来分割DOS基本分区了。FIPS执行程序位于安装介质下tool s目录中,由于FIPS是一个DOS程序,直接访问硬盘,因此应该在DOS模式运行它。它在运行时能将原有分区表保存到软盘上,命名为RESTORRB.000(如果多次运行FIPS,文件名将依次增加为RESTORRB.00x),可以使用随FIPS一起提供的RESTORRB来恢复原有分区数据。

         3. 准备软盘

              常用的启动FreeBSD安装程序方式主要有三种,光盘启动、DOS启动和软盘启动。如果计算机的不支持光盘启动,并且没有安装有DOS系统或没有DOS启动程序fbsdbot.exe和kernel文件,那么就需要使用启动软盘启动。

              在安装介质的floppies目录中保存有启动软盘的镜象文件boot.flp,使用者可以在其他计算机中的 DOS或者Unix下制作出这张软盘。然而,在新版本下这个镜象文件是2.88MB的高密度软盘镜象,必须要求计算机支持2.88MB的软盘驱动器才可以,因此一般不使用这个镜像文件,它更常用来作为启动光盘的启动盘镜像。系统也提供了两个1.44MB的普通磁盘镜象文件kern.flp和mfs.flp,其中kerm.flp为系统内核,mfs. flp为将被读到内存中MFS文件系统中的root文件系统,一般需要制作这两个软盘,用来启动安装系统。由于磁盘镜像要占满整个磁盘,因此对软盘要求很高,软盘中不能有坏块。如果制作的软盘不能正常启动,最大的原因就是使用了非10 0%完好的软盘,

              制作启动软盘必须使用一个现存Unix或DOS系统。

              在DOS下,使用程序rawrite.exe或fdimage.exe(tools目录下)来将一个软盘镜象文件复制到软盘中。可以使用它来制作启动软盘、fixit软盘等。

              E:\TOOLS:> FDIMAGE E:\FLOPPIES\KERN.FLP

              在FreeBSD或其他Unix中要使用dd命令制作启动软盘,然而要注意在不同的Unix下,软驱对应的设备文件名字是不同的,FreeBSD下为rfd0。

              # dd if=/cdrom/floppies/kern.flp of=/dev/rfd0

未完,待续。。。  
 楼主| 发表于 2003-2-11 10:57:48 | 显示全部楼层

FreeBSD连载(06):安装FreeBSD

安装FreeBSD

  当准备工作完成之后,安装FreeBSD实际是一个非常简单的过程,简单到将光盘插入计算机启动,回答几个问题,一切将很快完成。或者将启动软盘放入并启动,输入FreeBSD安装服务器的网址和路径。然而对于初次接触Fre eBSD的使用者,安装过程还可能有些陌生,下面将介绍安装系统和进行基本配置的过程。

    *
      启动安装程序

  FreeBSD的安装程序不是DOS或者Windows程序,而是必须在FreeBSD下运行的FreeBSD 程序。如何从一台裸机或者DOS下进入FreeBSD的安装程序,是安装过程的第一步。

  有四种启动FreeBSD安装程序的方法:

        
    * 从现有FreeBSD中启动安装程序sysinstall,用于系统升级和配置;

        
    * 从CD-Rom中启动安装程序,要求计算机支持光盘启动;

        
    * 从DOS分区中启动,要求计算机已经安装有DOS系统;

        
    * 从启动软盘启动,需要制作一张启动软盘;

  使用启动软盘(boot disk)的方法,使计算机从软盘重新启动,进入FreeBSD系统和安装程序,对于系统要求最少,并可以从一个裸机上安装FreeBSD系统,因此是比较常用的方式。如果使用了光盘作安装介质,并且计算机的BIOS支持光盘直接启动,最简单的启动方式是光盘直接启动,这样就不需要制作启动软盘。

  当前大部分计算机的BIOS支持光盘直接启动,这样就只需要在启动时进入系统BIOS的Setup程序,更改启动顺序为光盘优先,然后存储退出即可。不同的BIOS版本,进入Setup和更改启动顺序的方法不同。对于常用的 AWARD BIOS,在启动系统自检时按Del键进入Setup程序,更改启动顺序为CDROM,A,C,这样就使用 IDE光驱启动,或者设为SCSI,A,C并且设置SCSI控制卡的启动设备ID为光驱ID,来使用SCSI光驱启动(需要SCSI控制卡支持光驱启动)。

  然而,最标准的启动安装程序的方式还是软盘启动,这就需要按照前面叙述的步骤制作启动软盘,将软盘插入A驱,并更改启动顺序为软盘优先。这样万一计算机的BIOS不支持光驱启动或者使用了其他种类的安装介质,均能够正常启动安装进程。

  使用DOS程序fbsdboot.exe,可以可以直接从DOS下启动FreeBSD系统。由于fbsdboot 只能在标准的DOS模式下运行,因此就不能在Windows下执行,因此Windows需要先退出到DOS。并且某些TSR程序也会影响引导过程。fbsdboot仅仅是一种启动方式,仍然需要其他安装介质,如光盘等,以放置 FreeBSD的安装文件。从DOS下启动FreeBSD除了fbsdboot.exe之外,还需要FreeBSD的某个内核文件kernel,依赖于这个内核文件,fbsdboot启动FreeBSD系统的安装界面,或者进入系统中已经安装好的FreeBSD系统。

  E:TOOLS> fbsdboot -D e: oolskernel.inst

  fbsdboot.exe缺省使用c:kernel作为内核文件,如果需要使用其他内核文件,就需要使用- D参数,并指定内核文件的路径。fbsdboot不但能用于进入安装系统,还能够在DOS下启动正常的FreeBSD 系统,这就使得在FreeBSD启动过程出现问题时,仍然能够进入FreeBSD系统。fbsdboot由于是在DOS 下启动的,因此一些硬件的行为就与加电启动时略有不同,因此最好还是通过软盘启动的方式进入FreeBSD系统, fbsdboot只用作一种备份启动方式。

  当使用启动软盘或其他介质启动之后(使用软盘启动时需要根据提示插入第二张root软盘),首先将启动 FreeBSD的bootstrap程序,屏幕将显示一些FreeBSD bootstrap信息,然后安装程序将提示使用者配置内核参数。这个过程主要用于设置FreeBSD内核中的各个驱动程序使用的资源值,必须将这些资源设置修改为与具体硬件实际使用的资源值相一致,FreeBSD才能正常检测并使用这些硬件设备。这种可以在系统启动时更改硬件参数设置的机制称为UserConfig,FreeBSD使用UserConfig提供了更大程度的灵活性。

  Skip kernel configuration and continue with installation
  Start kernel configuration in full-screen visual mode
  Start kernel configuration in CLI mode

  使用者可以使用上下箭头键来在三种不同的方式下进行选择,第一项表示忽略配置过程,这表示使用者计算机硬件的配置参数与FreeBSD通用内核的缺省配置基本一致,不需要更改内核设置,这是因为一般情况下计算机重要硬件使用的资源设置都是非常标准的设置。当然使用者也可以选择下面的选项,对资源的设置参数进行更改或确认的操作。其中第二项是使用比较方便的全屏幕操作方式更改设置参数,这适合一般情况。第三个选项是使用命令行的操作方式更改系统参数,能够用来设置比较复杂的参数,包括一些在全屏幕方式下无法设置的参数,如ISA PNP卡的资源分配和设置。命令行方式的硬件资源设置方式只适合对FreeBSD了解较深的使用者。

  FreeBSD的内核(kernel)中包含各种硬件的驱动程序,负责构建操作系统和硬件之间的通道。在启动之后,系统首先将内核程序装载到内存中,然后由内核负责探测各种硬件。每种硬件驱动程序都将最常使用的资源值作为了它的缺省配置,在编译的时候写入了内核程序内部,只有通过UserConfig才能进行更改。当使用UserConfi g来更改硬件的资源设置的时候,前面准备过程中记录的硬件配置信息就十分有用了,可以参考这些信息来设置正确的硬件占用的资源。

  FreeBSD就使用这些最常使用的资源配置做参数去判断系统中是否存在这种硬件,如果探测到了,才使用这些资源激活这个硬件驱动程序。因此如果硬件的资源设定与FreeBSD核心配置的参数不相符,硬件探测就会失败。这时就需要更改内核的配置数据与板卡设置相同,才能正确探测到该硬件。

  对于要更改内核的配置参数的情况,一般可以选用第二个选项,使用全屏幕的操作方式进行系统参数的更改工作。

  进入UserConfig的全屏幕界面之后,整个屏幕被分为三个部分。上部为Active Drivers部分,表示内核中激活的设备驱动程序,这些硬件将在启动时进行检测,中部为Inactive Drivers部分,表示内核中存在的驱动程序,但却被屏蔽了,因此在启动时就不检测这些硬件。下部是操作提示区域,用于提示操作命令和输入具体的参数设置。

  Active Drivers中的Conflicts表示在所有要检测硬件的配置中存在多少个资源冲突,由于不是所有的硬件都存在并真正占用这些资源,因此不必理会这个冲突现象。系统内核按照硬件检测的顺序(这在内核编译时就已经确定了),如果第一个硬件的确存在,占用了资源,那么其他与它的配置相冲突的硬件就应该不会存在于这个资源上了,因此就被系统略过而不探测这个硬件了,除非是已经指明可以共享这个资源的硬件。Dev对应的列为驱动程序的名字,IRQ 和Port对应的列为相应的硬件参数。

  Collapsed表示该项表示这是一组相关的硬件,可以将光标移动到这个选项上并使用Enter键打开这组硬件,显示组内的具体硬件,例如上图中的Network类中就存在两个网络设备ed0和ed1。选择相应的设备之后,可以使用Delete键将这个硬件移入Inactive Drivers部分(在Inactive Drivers中选择相应的设备,进行同样的操作可以将其放入Active Drivers中),也可以使用Enter打开硬件的配置参数,进行更改操作,此时就在下面的第三部分中提示各个硬件参数,如IRQ、port等,并允许用户输入新的设置值。

  在UserConfig中,有些设备,如PCI设备,不能被放入Iactive Drivers部分被屏蔽,然而这并不影响系统探测。

  将硬件的配置参数进行了重新配置之后,要使用Q键来退出UserConfig,然后内核将会按照新配置侦测硬件。内核侦测硬件的时候,将探测结果显示到屏幕上。这些信息能够告诉使用者是否配置的硬件被正确的探测到,该硬件占用的系统资源以及该硬件的其他信息。但是自动探测不可能完全正确,因为很多硬件虽然声称相互兼容,但事实上仍存在细微的差别。万一出现问题,就要求使用者针对硬件配置参数的差异,在UserConfig中按照计算机的配置修改内核配置。为了避免问题,可以使用排除法,将自己计算机中不存在的设备都先屏蔽了,以免出现偶然的错误。

    * 硬件探测问题

  使用者的计算机可能配置有很多种硬件,有可能在第一次启动时没有将所有的硬件全部配置正确,这并不是一个重要的问题,因为有的硬件不影响安装过程,可以在安装好系统以后,再使用UserConfig或重新编译内核来配置硬件参数。但是有些硬件对于系统安装非常重要,必须被正确探测到,否则就无法继续安装过程,如要安装系统的硬盘驱动器、用于读取安装光盘的光驱、使用网络安装时的网卡等。这时就需要在启动时进入UserConfig更改内核设置,而从硬件的文档或者从Windows的控制面板获得的硬件信息就十分重要了。

  编译操作系统内核对于Windows用户也许是不可想象,但对于FreeBSD的使用者来说,是非常普通和标准的做法。并且编译内核决不是什么难事,FreeBSD提供了十分方便的方法让使用者来定制自己的内核。

  硬盘:不管使用何种安装介质,内核必须将目标硬盘探测出,否则无法继续安装。因此使用者必须清楚自己计算机使用的是何种硬盘驱动器。由于IDE驱动器使用的资源比较标准,也都使用wd这一种驱动程序,一般都能被正确探测到。而 SCSI驱动器则由于存在不同的标准和制造厂家,使用的驱动程序也各不相同,如果计算机上的SCSI控制卡兼容性不强,就有可能出现检测错误。这有可能是厂商设定的资源设置与常用设置不同造成的,就需要用户使用UserConfig重新配置。为了增加系统检测的速度和减少错误发生的几率,可以在UserConfig中尽量屏蔽不必要的驱动程序,仅留下正确的驱动并配置了正确的资源。

  CD-Rom:如果安装介质是光盘,则内核必须要探测到光盘驱动器。探测光盘驱动器首先要探测到合适的IDE 或者SCSI控制器,这与探测硬盘要求一致。如果使用的光驱不是IDE或SCSI控制器接口的,而是另外的ATAPI 接口方式,就需要查看通用内核的硬件支持列表,看看内核是否支持这种光驱,并根据相关文档配置内核参数支持这种控制器。由于这些老式光驱的控制器常常是和声卡作在一起,设置起来比较困难,并且FreeBSD系统也不支持所有种类的老型号光驱,幸好当前非IDE或SCSI接口的光驱型号已经基本淘汰了。因此最好的解决方法是安装一台新的IDE或SCSI 接口的光盘驱动器。

  IDE光驱可能会发生的另一个安装问题是光驱的主/从问题(Master/Slave),通常在一个IDE控制器上能串接两个IDE设备,一个要设为主设备,另一个要设为从设备。在仅有一个设备时,将该设备设为从设备是不正确的,设备不应该正常工作。但是在DOS/Windows下直接使用光驱驱动程序访问光盘,这就使得某些光驱在第二个控制器上仅接一个IDE光驱,并且光驱也设为从设备时,仍然能够正常工作。但是FreeBSD下不是这样,必须严格按照主从方式进行设置,否则就不能正确探测到光盘驱动器。此外,光驱出错时也应检查有没有插入光盘,以及光驱是否能够读取插入的光盘。

  网卡:网卡由于种类繁多,并且厂商彼此存在兼容性问题,因此必须考虑不同类型的网卡在缺省资源设置方面的不同。某些时候网卡设备会出现设备超时(Device timeout)故障,一个可能的原因是总线接口的网卡没有终结,另一个原因是硬件IRQ参数配置错误。

  此外还需要为网卡选择正确的驱动程序,当前网络设备的发展快速,而FreeBSD对新型网卡提供支持则需要一定的时间。例如,3COM 905B型网卡在FreeBSD 2.2.6中还没有提供支持,但到FreeBSD 2. 2.8之后就能很好的支持。因此,必须经常查看FreeBSD支持的硬件列表,以获得对新型硬件的驱动程序。

  配置硬件的另一些问题是避免资源冲突,有些硬件本身设计的就存在问题,不能正确更改其资源设置,此时可以让与它冲突的其他硬件避开使用相应资源。另外,一些设计得比较糟糕的设备,如果系统对它占用的端口进行了不正当的探测操作,就可能造成系统死机。这也是为什么尽量减少要探测的设备,并且不能在所有的资源上对硬件进行地毯式全面探测的原因之一,因此也不应该随便改动硬件探测的顺序。很多情况下发生这些冲突等问题,常常是因为使用了兼容性不好的硬件或配置了不太适合的硬件参数造成的。所以使用者应利用自己对系统硬件的了解,减少系统探测的硬件数量和设置正确的资源。

    *
      安装系统

        在内核载入内存之后,内核就启动初始化进程init启动系统,系统启动完毕之后就运行安装程序Sysinstall 。Sysinstall是一个位于安装盘上的FreeBSD的执行程序,是一个非常有用的安装和维护工具程序。即使在系统安装完毕之后,这个程序还可以被用于管理和维护系统。在一个安装好的FreeBSD系统中,这个程序被放在 /stand目录下,就可以使用/stand/sysinstall命令来再次启动这个管理工具。

         1. 安装程序Sysinstall

              系统安装时将自动进入sysinstall开始安装系统的过程,在个人计算机的屏幕上(控制台),安装程序表现为全屏幕的彩色安装菜单,然而也可以在标准字符终端上启动Sysinstall程序,根据字符终端的类型其外观也略有不同,下图为Sysinstall主菜单。

              这里使用的菜单图片均为3.0-release中的选项,在3.1-release之后,对菜单选项的顺序进行了调整,以便更适合安装时使用的顺序。不同只在于菜单的顺序,而设置内容则是一样的。

              Sysinstall程序是一个对话框方式的菜单程序,不同于Windows系统中安装程序常用的 “ Wizard” 引导方式的安装形式,菜单形式能提供安装者更大的选择自由,但需要安装者对需要用到的选项有一定的了解。其主菜单提供了12个选项提供选择,可供安装者进行选择。

              选项 “Usage“ 给出了Sysinstall的使用方法,一般可以使用上下方向键来选择不同的选项,使用Enter确认,使用Tab在Sysinstall中的不同按钮上切换,而使用 Space键选择或不选择某个检查框选项。

              选项 “Doc“ 给出了在正式安装系统之前浏览安装介质上的文档的机会,当然安装之前也可以直接查看安装介质中文档。这个选项主要用于对裸机直接进行安装的使用者,或者熟练用户临时查看一些安装信息时使用的。下图为Doc选项中的可以选择查看的文档内容。

              通过这个菜单中的选项,可以在安装系统时实时阅读安装介质上的README.TXT、HARDWARE.TXT 、INSTALL.TXT、COPYRIGT.TXT、RELNOTES.TXT等文档,以及在安装系统之后,创建 Sysinstall的快捷方式,阅读/usr/share/doc目录下的HTML格式的使用手册和问题解答。对于裸机安装,阅读相关文档的功能十分有用,但在安装好系统之后就没有必要通过Sysinstall来阅读手册了。

              选项 “Keymap“ 提供了更改键盘规格的机会,这个选项对于一些欧洲用户比较有用,因为它们使用的是非英文键盘。对于使用101标准键盘或104键标准键盘的使用者不需要更改。指定一个键盘规格文件之后,可以通过更改这个文件来定制自己的键盘映射方式,指定某些非标准的功能键。

              选项 “Options“ 提供了更改Sysinstall 本身使用的某些变量的机会,这些变量将由Sysinstall程序使用。这里的一些参数用于确定安装过程的行为,如NFS的相关参数用于NFS网络安装方式时访问NFS服务器,FTP相关参数用于设置FTP网络安装方式,因而只有在使用相应的安装过程的时候,才需要根据服务器的设置更改这些选项,一般情况下不必改动。还有一些参数是用于标识安装过程需要的程序和目录的位置的,例如Packeges Temp参数是用于设置安装和管理Packages的临时目录。

              上图显示了正在更改Editor的参数,FreeBSD缺省使用/usr/bin/ee做编辑器,这个编辑器是一个小巧的编辑工具。但很多人更喜欢功能更强的编辑器,那么可以在系统安装完毕之后,修改这个参数,设置为使用 vi或emacs(应该使用完整路径)。而在安装时不应改动这个配置,因为安装软盘中只是一个小系统,没有提供足够的应用程序。此外还可以设置浏览器等其他应用程序的位置,这些设置都是在系统安装之后,用于维护系统时使用的。

              可供选择的安装方式有 “Novice“ , “Express “ 和 “Custom“ 三种不同的安装方式。Novice方式适合初次安装FreeBSD的使用者使用,它引导安装者按照安装过程的每一步进行安装,并且每一个步骤都使用对话框进行操作提示,类似于一个安装引导程序。Express方式与Novice使用同样的安装流程,但省略了提示,因此较为快捷,适合熟练的安装者。而Custom方式没有引导过程,而是提供一个菜单,安装者可以不按照次序来处理安装过程的每个步骤,这样就提供了更多的选择机会。三种方式只是安装步骤方面的不同,而并无实质上的差别,每种安装方式均要进行以下几步操作:

                o 硬盘分区

                o 设置文件系统和交换分区

                o 选择安装组件和安装介质

                o 安装系统

                o 系统初始设置

              在Novice和Express方式中,将顺序进行以上的步骤,而Custom方式则列出对应以上每项工作的菜单,每完成一步都返回这个菜单等待安装者的下一步指示。这样安装者能按照自己的需要,安排进行相关操作,因此就有更大的自由度,但如果不熟悉安装程序的话,也许会遗漏一些必需的操作步骤。因此,一般情况下可以选择Novice选项,由sysinstall安排每一步的任务。

              主菜单的 “Fixit“ 选项将启动一个应急处理命令行界面,处理安装过程中出现的问题。

              启动应急处理界面需要一个Fixit光盘或软盘,Walnet Creek正式发行光盘中的第二张为Fixit 光盘,或者可以在现有DOS或FreeBSD系统下从安装介质上制作Fixit软盘,它的磁盘镜象文件为resume.flp 。当然Fixit软盘上提供的处理、诊断工具没有光盘上丰富。这个选项将提示安装者插入Fixit盘。然后使用第三个选项将在第四个虚拟控制台上启动一个应急交互Shell程序,进行各种系统操作(使用Alt-F4可以切换到这个虚拟控制台上)。如果没有Fixit盘,选择第三项也可以启动应急界面,但是由于没有Fixit盘上的应用程序,基本上无法进行操作,完成修复系统的任务。

              菜单选项 “Upgrade“ ,用于系统升级时使用,这个升级过程将使用安装介质上的二进制文件覆盖原有系统上的文件。由于升级过程有可能破坏原有的FreeBSD系统,因此系统将提示安装者进行确认。尤其对于从2.2.x向3.x升级,由于应用程序的格式从a.out转向了ELF,因此升级还要保证兼容问题。相比较而言,使用源代码进行升级的方式更为安全和有效。

              主菜单中的 “Configure“ 选项,用于对FreeBSD系统进行基本配置,这是Sysinstall中非常有用的一部分。通常Unix进行系统设置需要执行各种命令和修改配置文件,而 Sysinstall在这里能提供了一个设置系统参数的友好界面。在这里就能完成设置一个能够正常运行的FreeBSD 基本系统的操作,当然更复杂的设置还是要通过修改配置文件来完成的。

              如果使用Novice或Express安装方式,将引导安装者进行这个Configure菜单中的各项必需的配置任务,如果使用Custom方式进行安装,就需要手工执行这个选项中的各个功能。在FreeBSD正常运行之后,也能使用这个选项来维护系统、更改系统配置。

              假如安装过程中更改了安装选项(Options),但想恢复缺省状态,或者打算使用某个定制的安装选项,就可以使用主菜单中的 “Load Config” 选项,从软盘中载入安装选项。对于大量安装同样配置的FreeBSD系统有一定的帮助。

              主菜单的最后一个选项为 “Index” ,选择这个菜单项将弹出一个子菜单,子菜单中按照字母顺序列出了Sysinstall中的所有的功能。这个菜单项在系统安装时并没有实际的用处,但在系统安装之后使用sysinstall管理和维护系统时就非常有用。系统管理员不必一级一级寻找某个功能在Sysinstall 多级菜单中的位置,而能依据其名字迅速找到所需要的功能。

         2. 安装过程

              无论安装者使用何种安装方式,所需进行的安装步骤是相同的,对于新手来讲,还是应该选择Novice安装方式,以免遗漏需要执行的安装步骤。需要注意的是Novice方式中执行过程不能向后回溯,因而没有更正失误的机会。必须保证每个步骤都执行正确,否则就需要重新执行整个步骤。选择好安装方式之后,Sysinstall将引导安装者一步步进行每个步骤的安装任务。

                o 硬盘分区

                    安装过程的第一步就是要指定将FreeBSD安装到何处,FreeBSD需要占用一个单独的基本分区。因此就需要进入Fdisk对硬盘进行分区处理,这个工具中可以完成维护硬盘分区的各项操作,包括指定活动分区,增加和删除分区等功能。

                    如果计算机中有多个硬盘存在,Sysinstall中的Fdisk程序将首先询问安装者要处理的哪个硬盘,使用空格键选中所有需要进行处理的硬盘,然后使用Enter确认,就能依次对各个硬盘进行分区操作。注意,如果要将系统安装到非启动硬盘上(例如wd1),那么也需要在系统的启动硬盘(wd0)上安装启动管理软件Boot Manager (或其他种类启动管理软件,只是那些软件需要独立的安装过程),否则无法启动非启动硬盘上的系统。

                    在Fdisk中显示的前两行为它报告的硬盘信息,包括硬盘的名字,以及柱面、磁头和扇区等硬盘参数。柱面、磁头和扇区参数对于在一个硬盘上划分多个分区的情况下非常重要,因为系统启动程序要依赖计算机的BIOS来找到FreeBSD 分区。因此必须保证Fdisk中的这些数据和BIOS中的数据一致,以使Fdisk划分出的分区被BIOS识别。缺省情况下,FreeBSD是直接从硬盘驱动器上探测这些硬盘参数的,因此当BIOS重新映射硬盘参数时,就有可能使FreeBSD探测的真实参数与BIOS的映射参数不一致。

                    在硬盘上已经有分区存在的情况下,Fdisk可以从已有分区中找到硬盘参数,将硬盘参数更改为与划分已有分区时使用的硬盘参数相一致,以避免它划分的分区与已有分区冲突。这就是要迫使FreeBSD使用BIOS的映射参数,就可以预先划分一个硬盘分区的原因。例如本例中非空硬盘wd1的硬盘数据为782柱面,128磁头,63扇区,实际是经过BIOS使用LBA方式映射过的数据,Fdisk从已有的DOS分区中检测到。

                    虽然重新映射硬盘参数,无论对于FreeBSD或BIOS,都不会影响数据的存储,但是使用硬盘的真实参数能避开不同计算机BIOS的不一致性。当硬盘仅用于FreeBSD系统而不需要划分分区时,就可以保持硬盘参数不作任何更改。因此只有对于空硬盘并希望在安装FreeBSD以后还要安装DOS分区的情况,才需要检查硬盘数据,当发现映射信息与BIOS不一致时,就需要使用G(Set BIOS Geometry)命令重新设置。

                    即使安装了FreeBSD系统之后,当更改了BIOS中的硬盘映射方式的时候,同样也可能发生系统启动程序不能找到FreeBSD分区,载入FreeBSD系统的情况。

                    硬盘信息下面的第二部分是各个分区的列表,每个分区包括它的起始位置(Offset),大小(Size),结束位置(End),分区的名字,类型,描述,子类型和标志等信息。其中分区中的第一项虽然标记为unused,也不能为其他分区所占用,因为这是系统主引导区(MBR)占据的空间,虽然主引导区只有一个扇区,然而按照分区习惯,每个分区必须从一个柱面的起始扇区开始,因此就会在引导区之后留下一些未使用的扇区。但这些空余空间可以被FreeBSD的启动管理程序Boot Manager或其他类似的启动管理程序所使用。

                    分区工具的下部为可使用的命令提示。如果只打算安装启动管理程序Boot Manager而不打算对硬盘进行分区处理,可以直接使用Q键退出。如果要将整个硬盘都用作FreeBSD使用,可以使用A(Use Entire Disk )就可以将整个硬盘留给FreeBSD。当要将FreeBSD和其他操作系统共享硬盘时,就要具体使用不同的命令来划分分区了。

                    命令C(Create Partition)在未使用的空间上创建分区(首先将光标移动到非使用的磁盘空间上),此后需要输入这个分区的大小,和UFS分区类型165,以划分出FreeBSD使用的UFS类型的分区。如果要创建其他系统使用的分区,需要输入其他类型号,如DOS使用的类型为6。在上面的例子中已经存在两个分区,一个基本 DOS分区和一个扩展分区(第一个部分为系统主引导区),最后剩余的未使用空间太小,已经不足以建立分区了,因此就需要先删除已有分区(D, Delete Slice),或改变原有分区类型(T, Change Type)的命令,直接将硬盘上已有的分区改变为UFS类型,分配给FreeBSD使用。

                    当存在多个的分区时,可以使用S(Set Bootable)设置哪个分区是启动分区,用来告诉标准主引导程序启动该分区内操作系统,对于使用多操作系统引导管理程序的时候,如FreeBSD带的Boot Manager,就不需要进行这个设置。一般如果在安装FreeBSD之前已经安装了DOS/Windows系统的情况下,启动分区是 DOS的基本分区。

                    在确信完成所有的分区操作,并没有任何错误之后,才能使用W(Write Changes)来将改变真正写入硬盘分区表,否则使用U(Undo All Changes),恢复到操作之前的状态。然后可以使用Q来退出分区工具。分区工具接下来将询问这个硬盘使用的启动引导方式,即如何启动这个硬盘上的FreeBSD或其他操作系统。

                    当安装启动选项的时候,对于每个硬盘都有三个选择。第一种BootMgr是使用FreeBSD的Boot Manager 作为多操作系统启动管理程序,来选择启动不同磁盘及不同分区上的多个操作系统。系统将在启动时提示使用者使用功能键F1、F2等来启动对应分区的操作系统,Boot Manager将被安装到磁盘的主引导区及其后的自由空间内,对硬盘分区没有影响。可以在每个硬盘上都安装Boot Manager,这样就能从第一个磁盘上启动其他磁盘上的Boot Manager,然后再启动该非启动硬盘上的操作系统。安装Boot Manager,是在一台计算机上管理多个操作系统的很好选择,是将FreeBSD安装到非启动硬盘上的一种有效的启动方式。

                    第二种选择为Standard,即使用标准的主引导区启动系统,这种方法由主引导区引导程序将控制权交给位于启动分区开始位置上的操作系统引导程序,然后再载入操作系统。因此这要求启动分区必须设置正确,需要在前面的操作中要将FreeBSD分区设置为启动分区。选择此项就将主引导区恢复为标准主引导区,相当于DOS下的fdisk /mbr命令。

                    第三种None方式是不改变主引导区,也不安装任何系统引导程序。当使用其他种类的操作系统引导软件时,如 Linux LILO,避免更改主引导区而使得那些操作系统引导程序不能正常运行。因为此时主引导区被其他引导程序使用,不需要改变。而此时引导FreeBSD的任务就交给了其他引导软件。

                    因为安装程序要更改主引导区,因此需要在BIOS中将主板中用于防病毒的主引导区写保护功能关掉。

                    当要在一台计算机使用多个操作系统时,确定系统引导的方式是一个复杂的情况,因为这与要使用的其他操作系统有关,一般情况下都可以使用FreeBSD的Boot Manager对多操作系统进行管理。但也可以使用Linux LILO、Windows NT OS Loader、OS/2 Boot Manager来管理多操作系统。但是在多操作系统的条件下,每个操作系统中的一些操作都会重写主引导区,从而造成引导程序出现问题。尤其DOS/Windows 系统,每次重新安装都会不加任何提示重写主引导区,将引导程序恢复为标准引导程序。

                o 创建文件系统和交换空间

                  在硬盘分区之后,安装者将进入FreeBSD风格的文件系统管理工具Disklabel,用于管理文件系统和交换空间。这个工具将对UFS分区进行操作,将它们分割为不同的文件系统上或用作交换空间的部分。

                    Disklabel整个屏幕也划分为三部分,上部显示要进行处理硬盘及和UFS分区,本例中为wd1和wd1s1 ,中部为文件系统和交换空间的列表,下部为使用到的各个命令。对于大多数情况时,wd1s1中还没有文件系统和交换空间存在的条件下,可以让disklabel来决定各个文件系统和交换空间的大小,这仅需要使用A(Auto Defaults for all)命令即可。如果已经有划分好的部分存在,可先使用D命令删除。即使安装者打算自己确定各个部分的大小,使用A来看看Disklabel的缺省设置情况也能起到参考作用。

                    手工使用C(Create)命令分割磁盘时,首先决定是创建交换空间或文件系统。FreeBSD系统需要使用交换空间来提供比实际内存更大的虚拟内存空间,这样系统就能支持更多、更复杂的进程。交换空间的大小要根据具体需求而定,有些程序,如X11,GNU C++等,需要大量的内存,因此要配置较多的交换空间,一般交换空间不应小于系统的物理内存,用作服务器的系统需要更多的交换空间,但过多的交换空间又没有必要。可根据系统在最高负载下用户和同时运行进程的多少,在物理内存的1-2.5倍范围内调整交换分区的大小。

                    在多个磁盘的情况下,可在不同的磁盘中设置多个交换空间,以均衡磁盘的负载。然而对于IDE接口的硬盘,在同一根电缆上连接的主从硬盘上分布交换空间没有意义,因为同一个驱动器上的两个硬盘不能并发存取。交换空间也应该尽量设置在高速硬盘上,如Ultra SCSI接口的硬盘,以提高系统的性能。

                    对于用于文件系统的子分区,除了设定大小之外,还要设定它在文件系统中的安装位置,即将其安装到目录树的哪个位置上。虽然原则上仅使用一个安装到根目录的完整文件系统就能满足系统要求,但是由于文件系统中不同目录将用于不同目的,将其划分为不同部分,分别安装到目录树上,更有利于管理、维护,也增强了万一系统崩溃时,减低数据丢失的可能性。这是由于不同的子分区在物理上相互分隔,一个子分区写满或出现问题不影响其他文件系统上的内容。例如根目录所在的文件系统很少需要进行写操作,那么系统崩溃就不会影响这个文件系统中的系统数据,或者当某个进程产生了非常巨大的数据文件时,这个数据文件只能填满某个子分区,而不致于影响其他需要存取系统中其他分区的重要系统进程。因此,由于对于用作服务器的FreeBSD系统,应该使用多个文件系统以提升系统可靠性。

                    通常应将文件系统划分为 “/” 文件系统, “/usr” 文件系统, “/var” 文件系统。 “/” 文件系统中只保留系统内核及其他非常重要的文件,当系统进入单用户模式也只安装这个文件系统,一般需要30-40M空间。 “/usr” 文件系统放置系统日常使用的文件,应该尽量大,甚至还会在这个目录之下再安装新的文件系统。 “ /var” 文件系统用于系统运行时的数据文件,根据不同系统的情形,所需要的大小也不一样,用户和提供的服务越多,越需要 “/var” 空间。

                    如果要自己手工调整缺省设置,就要求安装者处理进行分割分区空间的全部细节。使用Create命令来完成创建每个子分区的任务,首先需要设置划分的子分区的大小,可以直接输入扇区数(512字节为单位)或更容易理解的用MB为单位(在数字之后加上MB单位),此后设置该子分区是用作文件系统(UFS类型)还是交换空间(Swap类型),如果要该分区用做文件系统,则系统会接着问该文件系统的安装(Mount)位置。

                    在升级系统或其他情况下,硬盘或分区系统中已经有FreeBSD子分区存在,但这些子分区的安装位置信息已经丢失。此时可以使用M(Mount Pt),将现存子分区按照原来的安装状态,设置它的安装目录。此时可以使用T(Newfs Toggle),在对不对该子分区进行格式化(Newfs)的选项上进行转换,设置为不进行格式化就能保留上面的原有数据。

                    当分区完成以后,使用W(Write)确认设置,使用Q(Finish)退出disklabel系统,然后就可以向选定的分区上安装操作系统软件本身了。

                o 选择安装组件

                    由于操作系统本身由不同的部分组成,不同的使用者可以根据自己的需要进行选择,因此,安装程序将显示出一个 Distributions 选择菜单,提示不同种类的使用者选择自己需要的系统组件。

                    对于一个完整的系统,所有的这些内容都十分有用。如果不是为了节约硬盘空间的原因,应该选择All全部安装。但全部安装就需要相当多的磁盘空间,一般情况下为了节约磁盘空间,可以选择不同的安装选项。但即使要安装一个精简的 FreeBSD系统,仍然建议安装内核源代码,这样才能按照机器的具体硬件来定制一个更高效的内核。因此至少应该选择 Kern-Developer选项,此外也可以选择多个部分,例如同时选择Kern-Developer和X-User ,或者使用定制方式(Custom),使组件的选择更为灵活。

                    当选择了Custom之后,则Sysintall将显示出所有可选择安装组件的详细列表,供安装者选择需要的组件。

                    在Custom菜单下,可以逐项选择要安装的组件,为了方便起见,可以在上一级菜单中先选择好某类组件,然后再在这里略加修改。

                    注意,由于DES算法受美国法律的出口限制,需要进行审批,因此FreeBSD缺省使用的加密算法为MD5算法。DES算法只在某些特定的软件中是必须的,例如当使用NIS与其他使用DES算法的计算机共享口令文件时。

                    如果需要安装DES组件,可以选择DES组件,名义上这个组件不是直接从美国出口,而是来自欧洲或其他非北美地方的,从形式上避免这个问题。此后的安装过程中FreeBSD还会使用一个对话框警告安装者,可以简单确认即可。

                    FreeBSD还将询问是否安装Ports Collection的源码,Ports Collection 是用于帮助用户编译、安装、维护应用程序的一个非常有效的工具。它是FreeBSD系统的一部分,是FreeBSD的诸多开发者将应用软件移植到FreeBSD上的努力,比起预编译好的Packages,它更为灵活。因此最好安装Po rts Collection,以方便以后定制应用软件。

                    如果要想使用图形界面,就应该选用的XFree86相关的安装组件。由于XFree86也是由多个部分组成,也可以选择各个部分进行安装,以节约磁盘空间。

                    XFree86中包括基本组件Basic,不同的X Server组件,字体组件。一般情况下应该进入各个组件内部,在缺省设置的基础上修改选择的内容。Basic菜单下的设置一般不必改动,在Fonts菜单下可以选择增加中文字体。最重要的选择是Server菜单中的选项,应该选择适合自己显示设备的X Server。

                    在X Server的选择菜单中,除了选择自己显示卡对应的X Server以外,还应该选择VGA16的X Server,这用于运行XFree86的设置程序XF86Setup。如果不能十分确定自己显示卡的类型,应该多选择几种X Server,等设置X Windows时再确定哪个X Server适合自己的显示设备。

                    当选择好Basic、Fonts和Servers中的选项之后,就可以使用Exit菜单退出这个菜单选项,进入真正的复制系统的安装过程。

                o 安装系统文件

                    在安装程序Sysinstall正式复制系统文件之前,安装程序将询问安装介质位于何处。

                    最常用的方式是使用CDROM进行安装,这时不需要额外的配置。进行网络安装(NFS或两种ftp方式),则要求首先配置网络界面、远程服务器的IP地址及安装文件所在的目录。从DOS分区下安装要输入安装文件所在的DOS目录名,从现存文件系统下安装可以允许从已经安装的目录下(可以是NFS、UFS、MSDOS或CD9660系统)进行安装,此时需要先使用Fixit盘启动应急界面,预先安装上相应的安装介质。软盘和磁带安装方式也不需额外的配置。

                    这个菜单内还有一个Options选项,可以启动Sysinstall主菜单中Options菜单,主要用于设置使用NFS和FTP时候的相关连接选项,以便安装能顺利进行。当完成安装介质的确认之后,就开始拷贝文件的安装过程了。

                    由于系统中有多个虚拟控制台,在安装程序的拷贝过程中,可以使用Alt-F2切换到第二个虚拟控制台上观察 sysinstall程序的输出信息,使用Alt-F4切换到第四个虚拟控制台上,这里启动了一个shell,可以接受安装者的输入指令,这使安装者可以在必要的时候,干预安装过程或处理可能的问题(缺省情况下没有任何命令可供安装者执行,必须在安装系统之前使用Fixit光盘或软盘,才能提供可执行的命令)。正常情况下并不需要这些额外的工作,使用 Alt-F1回到sysinstall安装界面,等上约20分钟(具体时间将依赖具体机器的硬件和选择的安装组件),基本系统将安装完毕。

未完,待续。。。  
 楼主| 发表于 2003-2-11 11:00:00 | 显示全部楼层

FreeBSD连载(07):基本系统配置

基本系统配置

  在系统软件复制到硬盘上之后,安装只能是完成了一半,还需要继续使用Sysinstall进一步配置系统环境。如果使用Novice 或Express 安装方式,配置过程将连续进行,执行主菜单Configure 选项下的每个配置功能。如果是 Custom 方式,就需要安装者自己选择Configure 菜单,然后分别选择子菜单,如Console、Network、TimeZone等进行配置。

    *
      设置网络

        需要配置的第一个重要部分是网络,在FreeBSD中网络功能的地位非常重要。通过Sysinstall下的 Network配置,可以配置网络的基本设置内容,如IP、域名、缺省网关等,也可以设置基本的网络应用,如Free BSD是否用作NFS Client、NFS Server、匿名ftp服务器,以及是否启动路由交换软件route d或gated等等。使用Sysinstall就能设置一个正常运行的网络客户计算机,并能对FreeBSD系统提供的几种基本网络服务进行设置,非常简便和直观。如果使用Custom方式,就需要手工选择Configure菜单,执行Interface等子菜单中的设置。

          o 设置网络界面

        如果安装方式是NFS或ftp等网络安装方式,这一步应该在选择安装方式之后就需要进行设置,否则无法完成复制系统文件的过程。

        设置网络界面时首先要选择进行设置的网络界面,FreeBSD将列出内核探测出所有的网络界面,包括网卡、串口和并口等网络界面。一般这里只对网卡对应的网络界面进行设置,对应于并口、串口的网络界面常常需要较复杂的设置过程,需要在启动系统之后在额外设置。本例中系统有一个3C905B的网卡,网络界面名字为xl0。

        对选定的网络界面xl0,可以配置主机名、域名网关、名字服务器、IP地址和子网掩码等基本的网络设置。配置好这个界面之后,不需要重新启动系统就可以立即使其发挥作用,从而使得在安装过程中就可以连接到网络上。 Sysinstall弹出下面对话框提示安装者启动这个网络界面:

        然后在该对话框中选择Yes,使xl0这个网卡以前面设置的内容正常运行。

          o 基本网络服务

        配置好网络界面之后,还可以配置这台FreeBSD提供的基本网络服务功能,如Ftp服务、NFS服务、是否支持NIS、是否运行路由交换软件等。需要根据计算机实际要求的功能,设置相应的选项。加入使用者对这些选项不是很清楚,可以忽略这个步骤,因为这些设置选项可以在任意时候重新设置,没有必要一定在初始安装的时候将全部设置都设置的无可挑剔。FreeBSD的可伸缩性使得,可以在任意时候改动系统设置,不需要重新启动系统就能使得改动生效。

          o 定制控制台

        此外,安装程序也将帮助安装者正确设置其他的一些设置选项。比如可以进行控制台的一些配置。可以配置控制台上使用的字体,键盘的映射方式,键盘的重复率,字符模式的屏幕保护和屏幕映射等。

        字体设置中,可以选择安装自己喜爱的字体,常用的字体为8x16大小,如果选择了安装8x8(或8x14)的控制台字体,以后可以通过手工设置,使控制台的显示模式更丰富,例如可以设置为132列、60行的显示模式。

        键盘的映射方式只有在使用非标准键盘时才有用,一般欧洲用户需要更改这个设置,使用标准101/102/10 4键盘的使用者,不需要改动。但明确选择一个键盘映射文件也有好处,比如重新定义一些功能键的位置等。

        键盘重复率也能根据用户的具体要求而定,系统也提供了几种不同字符模式屏幕保护程序,如黑屏、BSD吉祥物等以供选择,还可以定制不同的屏幕组织方式。Screenmap则用于指定绘制字符界面的窗口时使用的特殊伪图象字符,这主要由于其他字体的伪图象字符与标准VGA字体的伪图象字符不同。这用于改变了字体设置的时候。

          o 时间和时区

        由于FreeBSD是一种网络操作系统,需要频繁和其他计算机打交道,正确的时间对于网络上计算机互相通信来讲非常重要,因此必须设置的时区信息。

        此时系统将询问,当前计算机CMOS中的时间是按照标准格林威士时间进行设置的,还是按照本地时间来设置的。习惯上在BIOS设置时,是将COMS时钟按照本地时间进行设置,因此一般选择No。如果选择错误也没有关系,只要在设置完好再重新修改系统时间就可以了,但是会影响系统中共存的其他操作系统的时间。

        然后就能按照洲、国家和地区选择时区,我国大多数地区应选择China coast。

          o 控制台鼠标设置

        FreeBSD也提供在控制台中使用鼠标的能力,能用鼠标器在控制台上进行复制/粘贴工作,并提供了一个伪鼠标接口sysmouse,其他需要使用鼠标的程序,如X,就能配置为使用这个逻辑设备而不必关心真实的鼠标类型,使得设置X Window更为简易。这个配置程序对鼠标进行设置简单且方便。

        鼠标类型Type可以选择鼠标的真实类型,或者简单使用Auto让FreeBSD自动检测,然后选择鼠标端口 Port,这个端口设置必须正确,对串口鼠标必须指定具体的串口,其他种类鼠标使用相应的鼠标端口等。然后就使用 Enable来激活moused守护进程,如果鼠标指针移动正常,说明设置正确。那么以后系统都在启动时就自动启动mou sed守护进程,在控制台的文本状态下进行鼠标操作。

          o 其他设置

        如果安装了X组件,安装程序还会提示用户设置X Window图形界面,然而X Window的设置是另一项复杂的任务,将在后面章节中单独进行介绍。

        还需要做的工作包括为root用户设置口令,以保证系统的安全性,进行添加用户和组等基本的系统管理。使用 sysinstall添加用户和组非常简单直观,当然操作步骤麻烦一些,但全屏幕操作方式就存在这个问题。

        如果这台计算机连接到了Internet上,并在前面配置好了网络界面,此时就可以登记到FreeBSD的用户群体中。

        由于FreeBSD是一个免费操作系统,登记只是为了FreeBSD用户之间,用户和开发者之间加强联系的一种方式。而且FreeBSD用户一般不选择商业性的服务和技术支持,而是通过用户之间、与系统开发者之间相互联系、相互支持的自支持方式来提供技术支持。实践证明,通过Internet得到技术支持是最有效的方式。

        如果安装者使用的是Novice或Express 安装方式,安装程序还会提示安装者安装安装介质上提供的软件包,熟练用户可以按需要选择安装不同的应用程序进行。由于这个步骤可以在系统运行的任何时候使用sysinstall程序进行,第一次安装系统时也可以略过这个步骤。

        在所有的步骤完成之后,就能够重新启动系统,此时,一个完整的FreeBSD系统就将展现在使用者的面前了。

未完,待续。。。  
 楼主| 发表于 2003-2-11 11:01:56 | 显示全部楼层

FreeBSD连载(08):其他安装问题

其他安装问题

  安装系统是一个复杂的过程,原因之一就是个人计算机硬件种类繁多,可组合的方式也是多种多样,因此就会引起复杂的安装问题。

    * 网络安装方式

  除了使用安装光盘来安装FreeBSD之外,还有其他几种安装介质可供选择,其中网络安装方式同样也是一种非常方便的安装方式。

  如果使用者是直接连接到Internet上的,就不需要安装光盘,而只需要制作启动软盘(磁盘镜象文件同样可以通过Internet下载),然后使用启动软盘就可以直接从Internet上安装FreeBSD系统,因此如果使用者的本地网络与Internet有稳定且快速连接的时候,也可以选择网络安装方式。

  网络安装方式包括ftp、ftp passive、和NFS方式,需要根据安装服务器提供的服务方式来选择网络安装方式。通常NFS方式更适合本地连接,用户自己设定的安装服务器才提供NFS安装服务(或者本地FreeBSD 爱好者之间也会相互共享资源),面向Internet的公共服务器通常提供更可靠的ftp服务,因此ftp安装方式更为常见。而ftp安装方式和ftp passive安装方式的区别是ftp passive方式在下载文件时使用ft p的passive模式,以克服大多数防火墙对端口的限制,因此如果要安装的系统不是直接与Internet相连,而通过防火墙连接到Internet,就需要使用ftp passive安装方式。

  使用网络安装方式时的一个重要问题是必须配置好网络界面,因此Sysinstall将在选择好安装介质之后、选择安装组件之前,就提示用户配置网络界面。由于Sysinstall设置的网络界面为永久连接型的网络接口,如网卡,而另一些网络界面为要求预先连接的网络接口,如拨号连接的ppp0界面,不能直接通过Sysinstall设置,因此不适合使用网络安装方式。

  上面为ftp安装方式的菜单,除了提供Internet上的多个现有FreeBSD的ftp安装站点之外,还可以选择手工输入URL(第二项),由用户输入一个距离最近的安装服务器的ftp站点。这个站点可以由用户自己维护,使得在一个网络中安装多台系统更为简易。

  如果网络连接比较慢,直接使用网络安装方式会由于网络速度的原因而造成安装过程不能正常进行。那么就可以先将 FreeBSD安装文件下载到本地硬盘上,再选择DOS安装介质或预先安装好的文件系统作安装介质,进行安装。

  当使用DOS基本分区作安装介质时,需要按照安装文件的原有目录结构,将安装文件复制到DOS分区中根目录下的FreeBSD目录中。安装光盘tools目录中的setup.exe工具,能在DOS下用于使用安装光盘来设置D OS安装介质。这种情况一般只用于系统光驱型号太老,不为FreeBSD识别,或者要安装的系统没有光驱或网卡,因而必须预先将安装文件拷贝到它的硬盘上。

  选择了这种安装方式,安装程序将询问FreeBSD安装文件位于哪个DOS分区中。

  无论安装系统是放置在DOS基本分区,还是以前安装好的FreeBSD分区中、光盘上,或者是放置在网络上的 NFS服务器上,都可以使用手工方式预先将这些文件系统安装到系统的目录树上,再选择File System安装介质选项进行安装。当然这需要首先打开一个应急Shell进行操作。通常这种方式主要用于安装好系统之后的系统维护,而在初始安装时用到的较少。

  此外,也可以使用软盘或磁带做安装介质,但实际使用中较为少见。

    * 升级系统

  可以在安装程序的主菜单中选择Upgrade方式进行系统升级。系统升级的好处是可以保留以前系统中的各种设置,以及用户的配置信息和数据文件。然而,这种使用安装程序的升级方式并不是最佳的升级方法,因为FreeBSD是一种极具活力的操作系统,而光盘等传统媒体的安装介质是静态的,使用这种方式升级系统并不能得到最新的系统。另一个原因是FreeBSD的源代码是公开的,使用源代码进行升级也十分方便,并且发生危险丢失数据的风险更小。

    * 手工安装系统组件

  FreeBSD的安装软件由不同的组件组成,例如bin、manpages等。这些组件通常被分割为较小的文件,以便它能被保存到软盘上,也能减少从网络下载时的可能会出现的网络故障。

  由于系统被分为不同的组件,很可能在系统安装过程中遗漏了某种非常有用的组件,或者由于偶然的原因,被某些组件被破坏了。此时就需要在安装系统之后,再来安装这些组件。这可以使用安装程序/stand/sysinstall来完成,然而手工进行安装这些组件却更为方便。

$ ls /cdrom/bin

CHECKSUM.MD5 bin.ao bin.be bin.bu bin.ck

TRANS.TBL bin.ap bin.bf bin.bv bin.cl

bin.aa bin.aq bin.bg bin.bw bin.cm

bin.ab bin.ar bin.bh bin.bx bin.cn

bin.ac bin.as bin.bi bin.by bin.co

bin.ad bin.at bin.bj bin.bz bin.cp

bin.ae bin.au bin.bk bin.ca bin.cq

bin.af bin.av bin.bl bin.cb bin.cr

bin.ag bin.aw bin.bm bin.cc bin.cs

bin.ah bin.ax bin.bn bin.cd bin.ct

bin.ai bin.ay bin.bo bin.ce bin.inf

bin.aj bin.az bin.bp bin.cf bin.mtree

bin.ak bin.ba bin.bq bin.cg install.sh

bin.al bin.bb bin.br bin.ch

bin.am bin.bc bin.bs bin.ci

bin.an bin.bd bin.bt bin.cj

  这些以bin开头,以两个字母为后缀的文件事实上是对一个使用tar和gzip打包压缩后的大文件进行分割得到的,因此可以使用gzip和tar进行解开,并安装到合适的位置。这个目录中也提供了一个脚本程序install. sh,能自动进行这一步工作。如果使用者想手工重新安装某一组件,可以运行相应目录下的install.sh脚本程序。例如,如果在初始安装时没有安装manpages组件(或者该组件被无意中破坏了),想要重新安装manpages 组件,可以运行:

  # /cdrom/manpages/install.sh

  注意:由于这样做会覆盖原有系统中的文件,主要是更改过的系统设置文件,因此这样安装某些系统相关的组件(例如bin组件)就非常危险!除非必要,不要重新安装bin组件(包括使用Sysinstall程序)!

  以MD5为后缀的CHECKSUM.MD5是根据这些文件生成的校验文件,用于检查这些文件是否在传输过程中出现错误。可以在一个安装好的FreeBSD系统下使用md5命令来生成文件的校验,与这个文件中保存的数据进行比较,如果校验数据一致,就说明文件没有在传输过程中出现问题。

  还有的组件,如X Free86组件没有被分割为小文件保存,是几个tar和gzip处理过的压缩文件,该目录下同样提供了脚本程序install.sh,以便来进行安装。ports目录下的组件Ports Collecti on也是一个单独的压缩包。

    * 使用其他启动引导程序

  在个人计算机上安装FreeBSD系统,常常会遇到与其他操作系统共存的问题,一般情况下使用FreeBSD 的Boot Manager来管理多个操作系统。但在某些情况下使用者可能希望使用其他种类的引导程序,无论使用哪个操作系统引导程序,都需要这些引导程序相互协作,而不发生冲突现象。

  对于同时使用FreeBSD与Linux共存的个人计算机,在使用FreeBSD Boot Manager 引导时,需要将Linux的引导程序LILO放在其自己分区的最前端(Super Block),而不能放到主引导区中。FreeBSD Boot Manager可以直接启动Linux分区上的LILO程序。但如果使用者是将Lin ux安装在扩展分区上的逻辑分区上,(这是一种很糟糕的分区设置方式,极度增加了系统的不安全性,至少不应该将根文件系统放置在逻辑分区上),就必须使用Linux LILO引导。因此就需要在FreeBSD安装时,安装BootMa nger选择None,而将LILO安装到主引导区,通过在Linux中编辑lilo.conf文件对FreeBSD 分区进行设置,更新LILO后,就可以通过LILO启动FreeBSD分区。建议使用Boot Manager来启动 Linux,因为Boot Manager不需要进行配置,使用起来最简单和方便。

  对于同时使用Windows NT的系统,如果使用FreeBSD Boot Manager引导,那么在F reeBSD Boot Manager的选择之后,会再有Windows NT的OS Loader的选择菜单,从而需要进行两次选择。因此也可以使用Windows NT OS loader来引导FreeBSD系统,此时不能安装Boot Manager,而应使用标准主引导区,此外,还需要FreeBSD基本分区的第一个扇区,以便OS L oader能用来启动FreeBSD。首先将激活分区设置为FreeBSD分区启动FreeBSD系统,使用dd命令将FreeBSD分区的第一个扇区写到一个文件中(假设FreeBSD安装到了第三分区wd0s3中)

  # dd if=/dev/rwd0s3 of=bootsect.bsd bs=512

  然后将这个命名为bootsect.bsd的文件拷贝到NT启动分区的根目录中,如果NT启动分区(假设为第一个分区wd0s1)为FAT文件系统,则可以在FreeBSD下拷贝。

  # mount -t msdos /dev/wd0s1 /mnt

  # cp bootsect.bsd /mnt/bootsect.bsd

  然后编辑C盘根目录下的boot.ini,增加一项c:\bootsect.bsd="FreeBSD",然后将启动分区更改为DOS的启动分区,则系统重起之后,在OS loader的启动菜单中就增加了一项启动FreeB SD的选择。

  注意,系统升级会导致第一个扇区的内容改变,因此需要及时更新启动扇区文件。

未完,待续。。。  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表