作为一个BSDer,在网上转得最多得就是UNIX相关论坛了,在与不少老手接触的过程中,发现有相当一部分人是从Windows下转过来的(几乎是“绝大多数”),在学习FreeBSD的时候会遇到不少困难,甚至觉得UNIX类系统极为难用,在这里,我把本人的经验总结一下,供大家参考。
首先是如何获得的问题,Windows四处有卖,甚至某些Linux,比如RedHat,Mandrake等都有卖,但FreeBSD,NetBSD等UNIX目前似乎还没有看见有出售——至少重庆是如此。获得BSD最好的途径是通过网络下载,比如FreeBSD的官方站点ftp://ftp.freebsd.org,ftp://ftp.cnfug.org,或者一些专门提供自在软件下载的站点,比如http://www.wormwang.net等都可以下载相关系统和使用程序。如果没有条件上网下载的朋友,可以在本人常去的论坛上找找与本人同城的朋友帮忙刻一下盘,通常大家都会比较乐意的。
其次,安装。安装一个操作系统,必然涉及到分区。然而,分区是很多人的噩梦……由于分区意味着数据丢失甚至整个分区表的丢失等不测情况。特别是BSD的分区,更是让不少人头疼,由于BSD承继了UNIX传统的磁盘管理概念,而那时PC还没有出现,因此,在BSD的传统磁盘管理机制中就没有PC中的“分区”这个概念。它是将磁盘划分为一个个Slice来进行管理的(如果对FreeBSD有兴味的朋友可以参阅王波的《FreeBSD使用大全》或者《FreeBSD Handbook》)。之所以要引见Slice这个概念,是由于它与后面的“挂载点”概念息息相关。既然在UNIX中没有分区这个概念,因此BSD就无法理解“扩展分区”这个概念,因此它必须被安装在主分区中。然后在其中划分Slice。而且Slice在文件系统中对于程序和用户是通明的,不像分区一样是可见的。在分配了Slice后,还要为其分配“挂载点(Mount Point)”,也就是相当于Windows下为分区分配盘符之类的任务。只要被分配了挂载点的Slice才能被操作系统挂载并可用。UNIX的文件系统构成也与Windows完全不同,这在后面将详细讲述。当然,为了与其他操作系统兼容,FreeBSD的安装程序还提供了支持“分区”概念的Fdisk。但FreeBSD必须被安装在主分区(不过不像Linux那样还需求一个单独的swap分区,FreeBSD的swap只是其所在分区的一个Slice),因此FreeBSD不支持对逻辑分区进行操作,它只显示扩展分区,并将其做为一个主分区对待,各位在这一点上一定要特别小心。分区完成后,开始安装,这个步骤没有什么特别之处,独一特别德就是FreeBSD可以不安装GUI(Graphic User Interface,图形用户界面)。
在文件复制进程完毕后,开始配置,不过配置过程并不难,看看提示就知道该怎样做。接下来进行X-Window配置(留意!是X-Window,没有X-Windows这个东西这是很多Windows下转过来的用户容易犯的一个错误),X-Window如今曾经能够识别大多数硬件,特别是主流硬件,因此不必进行过多干涉。X-Window配置之后,我们必须选择窗口管理器(Window Maker)或者桌面环境(Desktop Environment),否则只能使用默认的简陋的twm界面。在这里要说明一下:UNIX类系统本身是字符的,X-Window是在UNIX类系统上运转的一个程序,也是UNIX类系统最常用的GUI。在字符界面下输入startx就可以启动“XFree86”,也就是我们通常说的“X”,X-Window的一个最为流行的分支。但是,没有经过设置的X十分难看(毫不夸张的说,Windows95都比它好看)。但是,你只是看到了X最原始的面目而已,经过精心打扮的它甚至能比得上Mac OS X的GUI!X的设计哲学很像UNIX的设计哲学:“Tools,no policy!(工具,而不是策略!)”这些东西并没有规定最终用户做什么,而是提供工具,由用户决定本人使用它们做什么。X并没有规定它提供的GUI看上去是什么样子,而是把这个任务交给另外一个程序来完成,这个程序便是“窗口管理器(Window Maker)”。有很多这样的程序,比如AfterStep,Blackbox,Enlightenment,ctwm,ftwm,sawfish,WindowMaker(留意跟Window Maker区别开)等等。它们的外观千差万别,有的看上去像Mac OS,有的看上去像风景画,有的看上去像科幻小说中的东西,甚至有的看上去跟Microsoft Windows一样!另外还有一个概念是“桌面环境(Desk Environment)”,它们其实就是窗口管理器跟使用软件的集合,其中最著名的代表就是KDE和GNOME。推荐新用户使用KDE或者GNOME,由于它们配置简单,可以协助你在更短的时间内学习FreeBSD,而不是被复杂的设置所吓倒。当然,在熟悉了系统和X之后,尝试一下不同风格的窗口管理器也是一个好主意!^_^
安装完成之后,就可以重启机器进入系统了。记住一点(十分重要):UNIX类系统是不会回显密码的(也就是说,在你输入密码的时候你看不到Windows下熟悉的星号提示),至少在字符界面下是这样。不要误以为是键盘出了问题哦!^_^ 这个是出于安全性考虑,由于回显就意味着会暴露密码的长度,这个是十分不安全的。进入系统之后,我们必须了解它的文件系统才能进行操作。刚才说了,Slice是对用户通明的。你在FreeBSD下看不到熟悉的C:,D:,E:,而是一大堆文件和目录。UNIX类系统都是使用的倒树形目录结构,通过挂载点加载分区或者Slice,用户基本感觉不到它们的存在。在FreeBSD系统中,根目录(/)是目录树的顶点,它下面是/dev(设备文件所在目录),/etc(配置文件所在目录),/home(普通用户起始目录),/root(根用户起始目录),/bin(普通程序所在目录),/sbin(系统管理程序所在目录),/tmp(临时文件所在目录),/mnt(临时挂载点所在目录)等二级目录,在它们下面又有许多小目录,这样一级一级的衍生下去……你可以通过输入ls来浏览目录,它的作用相当于在DOS下或者Win2000/XP/2003的cmd窗口中输入dir /w。如果你想了解文件的详细信息,可以输入ls –l。此外,ls没有类似dir中的分页显示参数,但是你可以通过ls | more或者ls | less来达到相反的目的。在浏览了UNIX类系统的文件系统之后,你可以发现,它们的文件系统是一个统一的(只要一个根目录),完整的(不会由于Slice或者分区而被划分为类似C:,D:,E:的并行“分区”),复杂的(每个目录下可以有N多子目录和文件)树形结构。
此外,单独提一下加载的问题。传统的UNIX管理方式出于安全性考虑,并不自动加载除其本身所在的文件系统以外的任何文件系统——即便它能够识别它们,特别是光盘和软盘。FreeBSD也承继了这样的管理方式,因此,除了FreeBSD所在文件系统以外的任何文件系统通常都需求手动加载,或许你觉得这个很麻烦,但是这样会更安全。加载的命令是mount,至于用法,限于篇幅,我就不多说了。在这里要说明的是,UNIX类系统对任何其他分区采用传统的管理方式,因此,在FreeBSD下,它们是/dev/ad0s1,/dev/ad0s2,/dev/ad0s5,/dev/ad0s7之类,而不是Windows下的C:,D:,E:,F:。在这里解释一下。FreeBSD下,ad表示硬盘设备(留意:FreeBSD 3.x及其以前使用的是wd),0表示第一个主设备(也就是第一个IDE口的主设备),s是Slice的缩写,1是指第一个主分区,5是第一个逻辑分区。而在FreeBSD下CDROM的名称是/dev/acd0(第一个CDROM设备号为0),(留意大小写,UNIX类系统是要区分大小写的,任何情况下都是这样!因此/dev/CDROM和/dev/cdrom绝对不是同一个东西)。你也可以通过向/etc/fstab加入相关条目来达到自动加载的目的,但是,千万别自动加载CDROM和软驱,否则系统在启动的时候会抱怨无法加载,甚至启动出错。要想在使用的时候自动加载软驱或者光盘,可以考虑使用“amd(Auto Mounting Daemon”,自动加载守护程序),详细情况请参阅相关材料。
还有一点,可能许多朋友发现市面上很少有关于UNIX类系统命令的入门书籍,而UNIX类系统最强大的地方就是它的命令!正如UNIX的设计哲学所说:“Tools,no policy!”我们可以利用它们做任何事情。在这里提示一下各位,UNIX类系统有一个比Windows更强大的联机协助系统——“man”!如果想知道