相信很多朋友Windows已经用得相当熟悉了,由于种种原因,想试试UNIX。无奈Windows的思想根深蒂固,这给学习UNIX造成很多困惑,经常四处碰壁。于是抱怨UNIX太难学,抛在一边眼不见为净,继续用着Windows。当然如果你只是普通用户,听听歌玩玩游戏灌灌水,那大可不必装什么UNIX,因为你根本没必要去跟UNIX瞎折腾。Windows那么方便,用着多舒服,何必自找麻烦,去弄那难配置又“莫名其妙”的UNIX? 说到这里,很多人可以不用看这篇文章了。这篇文章是为想学UNIX的跟我一样菜的新手写的,目的是为了在学习过程中少走一些弯路。就从我个人的经历来说吧!
最初听说UNIX,大概是在大一的时候。当时对这个系统超级崇拜,认为能驾驭这个系统的一定是绝顶大牛。某天偶然听说又有一个操作系统叫Linux,据说跟UNIX很像,而且还有一个叫做RedHat的东西。因为我有刻录机,于是在校网的某处下了三个ISO,刻成了盘,但一直不敢试,因为根本不知道怎么把它“放”到硬盘上去。也就是说,它有没有分区?有分区的话怎么弄?因为一直担心把Windows损坏,所以这几张盘就被我搁到了一边,这一搁就是一年。
大二了,Windows已经玩得相当熟了,这时对分区之类的也算挺了解了吧,于是又从抽屉的角落里找到那几张盘,打算试试。具体怎么样我也记不清了,反正是安装成功了,不过刷新率非常低,眼睛根本受不了,所以没多久又被我删了,还是继续我的Windows。说出来不怕笑话,到这时我还不知道 Linux有好多发行版本,以为RedHat就是Linux。
大二的暑假,Windows我已经玩得不想再玩了,而且随着对UNIX的渐渐了解,我开始对这东西有了点好感。于是在网上搜了一通,由于当初对Linux的感觉相当糟糕,所以我没把目光放在Linux上,而是放到了BSD上。BSD有三个分支——FreeBSD、NetBSD和OpenBSD。当时看着NetBSD和OpenBSD感觉不大舒服(呵呵,其实看着Linux这几个字也不怎么舒服,这也是我当时不选Linux的原因之一,不过现在不会了),于是自然而然地选择了FreeBSD。
然而,对于我这个有着很深的Windows情节的人来说,想一下子适应FreeBSD真的很不容易。还是回到分区。FreeBSD的“分区”是怎么样的?这让我怵了好久,直到从图书馆借到《FreeBSD使用大全》的时候才有点眉目。不过,当时并不知道这本书其实不大适合初学者。但那时在家里只能看这本书了,花了十几天吧,把这本书看了个大概。
回到学校后就开始了学FreeBSD,但也是断断续续,没有当初学Windows那么大的好奇心。不过,虽然进展缓慢,收获多多少少还是有一些的。在这当中逛了好多论坛技术,看了很多技术文章,说实话感觉还真的挺不错。现在就稍微总结一下吧,以下仅以FreeBSD为例,因为我到现在为止,经过一些比较,还是认为FreeBSD最适合我的性格。好了,现在开始言归正传了。
首先,我必须让你摆脱一些误解。或许你会有这样的不屑:UNIX那黑头土脸的能算得上系统?能正常工作?能提供FTP和Web等服务?能受得了大负荷?我才不相信,我才不用那破东西!如果你这么想,我可以很认真地告诉你,你错了!知道么,世界使用量第一的Web服务器Apache最初是为UNIX开发的,超级数据库Oracle最初也是为UNIX开发的,高端的服务器用的是什么操作系统?是UNIX!而不是你想象的Windows 2003!
当然,我用过Windows 2003,也用它架过相当多的服务,我知道2003的性能不错。但请相信,世界上这么多大型站点使用的都是UNIX,你说他们的管理员难道就都那么笨?如果Windows 2003性能真的比UNIX好,他们会不用这么好的东西?事实是,他们选择了UNIX。不相信?好,你可以去这里看看:http://www.netcraft.com,随便输入几个大型站点,如 www.google.com,www.yahoo.com,www.baidu.com,看看OS部分写的是什么?或者,你再看看这个网址:http://uptime.netcraft.com/up/today/top.avg.html,看看世界上运行时间最长的机器用的是什么系统?如果你还是执意认为Windows 2003牛,那么OK,这篇文章你也没有看下去的必要了,那么就关上这个网页吧!
如果你继续看下来了,那我继续说,呵呵。我们知道,Windows上的服务器很多都是以GUI页面和服务的方式存在的,但在UNIX中,它们基本上是在命令行下以daemon的形式存在。你可能很困惑,命令行下也能运行服务?嗯,没错,正是。daemon在UNIX中的地位,有点像服务在 Windows中的地位,但又不尽然。现在你可以把daemon就当成服务看待。
那么,UNIX下的文件是怎么样的?UNIX跟Windows不同,它把所有的文件都当成一回事,不像Windows那样以后缀名来区分不同类型的文件。可能你会很困惑,如果这样的话,我怎么打开不同的文件?事实上,在UNIX系统中,文件只是存储上硬盘上的单纯的字节。UNIX下区分不同文件的方法是看这些字节的前几个字符。当然,UNIX本身可不管你是什么文件,它只当你是一些字节。
区分这些文件的工作由应用程序来负责,比如你有一个文件名为“diogin”的文件,你想“打开”它。怎么打开?我不知道它的文件格式!麻烦大了吧?不大。用file命令一看,这个文件是什么类型马上出来了,虽然不一定准,但绝大多数情况下是没错的。好了,现在你知道它是个可执行文件,在 shell下敲入./diogin后,程序执行了,打印出了“Hello, World!”,看!就这么简单。可是问题又来了,什么是shell?还有,UNIX没有像Windows那样的桌面吗?
shell,简单地说,就是让用户与操作系统内核沟通的一个媒介,你在Windows下用过命令行吧,你可以把shell想象成命令行,但 shell可比命令行强大多了,功能上根本不是一个数量级,这一点在你深入理解shell后肯定会感觉到。那桌面呢?这个可能是最让人困惑的问题了,当时我就一直不理解这个X跟桌面到底是怎么回事,甚至一度抱怨Windows怎么这么霸道,把我的思想全禁锢住了。
当你开始使用UNIX系统的时候,你会遇到很多惊讶的事情,最让你惊讶的,可能就是重新编译内核。天哪,这是什么东西?刚从Windows转过来的用户可能会吓出一身冷汗。其实不用怕,编译内核是学习UNIX系统必须经过的一关,而且也不像想象中那么神秘。简单地说,就是改变系统最本质的部分,让它适合你的机器和你的需要,换句话说,你可以用重新编译内核来完全定制你的系统。
一个最高级的系统都是能让自己定制的,我不需要我用不着的东西。很好,那开始编译吧!怎么入手?以FreeBSD操作系统为例,安装的时候你选择安装系统内核源码(呵呵,没错,是系统内核源码,这个东西是最有价值含量的,但现在你可以完全免费得到它,而不是花几千元去买一个完全保密的东西!这通常会安装在/usr/src/sys目录下,然后根据你的CPU架构,选择不同的目录进入,里面会有内核配置文件。FreeBSD的内核配置文件为/usr/src/sys/i386/conf/GENERIC,即通用内核配置文件,适合大多数机器使用的内核配置文件。
说到这里你可能明白了吧,默认安装的时候使用的就是按这个配置文件编译出来的内核,很明显,为了让大多数不同的电脑能用,里面肯定包含了很多你机器上没有的东西。现在你的任务就是把这些东西全都去掉,同时加进去你想要的东西。用任何一个文本编辑器打开它,怎么编辑我就不说了,你可以查看手册,里面有详细的说明的。编译的过程,会在某个目录下产生新的内核源码,你进入那个目录后就可以开始编译并安装新系统了。我的机器,删除没用的东西后的内核非常精简,256M的内存启动后完全Free的内存有231M,也就是说在启动过程中被“经历”过的内存区域只有25M,而且这不是活动内存,活动内存只有 2650K,跟Windows的上百兆内存占用相比……
要想正常搞定新内核是有点挑战的,你需要对硬件相当熟悉。好了,接下来我讲讲文件安装吧,这也是在使用UNIX的过程中我感到挺困惑的一个问题。我们都知道,在Windows系统中,安装一个软件很简单,下载文件压缩包,解压,双击setup.exe开始安装,选择一下路径就OK了,很简单吧!安装好后,文件通常会写注册表,说实话这是很麻烦的一件事情,当你重装过系统后就知道了,你需要重新安装一次这些软件,很麻烦吧?