Windows转向UNIX的一些困惑( 二 )


如果你继续看下来了,那我继续说,呵呵 。我们知道,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怎么这么霸道,把我的思想全禁锢住了 。首先必须明确,X是图形界面的基础,X不是桌面的简称!X提供了一些图形调用接口,至于怎么用这些接口,怎么显示你想要的图形,是你的事情,它可不管 。那么,你应该用什么东西来控制自己想要显示的图形?答案是窗口管理器,典型的如fvwm 。有了这两个东西,应用程序就可以以特定的图形窗口方式显示了 。现在你可能又会有问题了,不是说X是CS方式的架构吗?这个架构是怎么回事?在我们通常的理解中,Server一般是有着高性能的机器,而ClIEnt是普通的客户机 。但这个理解却不适合X,X中的Server,指的是有键盘鼠标有显示器的机器,而Client则是指一些在X上运行的程序!这些程序,完全可以在另一台机器上运行,通过网络,向X服务器发送命令,X服务器收到这些命令后为这些程序显示图形 。只要双方遵循X协议,不管你的客户程序在什么系统上运行,在哪运行,都无所谓 。呃,说了半天,什么是桌面?桌面是在X和窗口管理器上集成了相当多的X应用软件的一整套系统的合称,它包括了底层的X,中间层的窗口管理器和上层的X应用程序 。很简单明了吧?事实上UNIX系统的运行根本不需要X,只当你想要图形页面的时候才需要安装,它只是UNIX系统上运行的一个软件而已 。那Windows的桌面呢?Windows的桌面是跟Windows内核紧密结合在一起的,区分不开,你就把它跟系统当成一整套的东西吧,因为结合得太紧密了,我也分不开,呵呵 。
当你开始使用Unix系统的时候,你会遇到很多惊讶的事情,最让你惊讶的,可能就是重新编译内核 。天哪,这是什么东西?刚从Windows转过来的用户可能会吓出一身冷汗 。其实不用怕,编译内核是学习UNIX系统必须经过的一关,而且也不像想象中那么神秘 。简单地说,就是改变系统最本质的部分,让它适合你的机器和你的需要,换句话说,你可以用重新编译内核来完全定制你的系统 。最高级的系统都是能让自己定制的,我不需要我用不着的东西 。很好,那开始编译吧!怎么入手?以FreeBSD操作系统为例,安装的时候你选择安装系统内核源码(呵呵,没错,是系统内核源码,这个东西是最有价值含量的,但现在你可以完全免费得到它,而不是花几千元去买一个完全保密的东西:)),这通常会安装在/usr/src/sys目录下,然后根据你的CPU架构(普通PC都是i386架构),选择不同的目录进入,里面会有内核配置文件 。FreeBSD的内核配置文件为/usr/src/sys/i386/conf/GENERIC,即通用内核配置文件,适合大多数机器使用的内核配置文件 。说到这里你可能明白了吧,默认安装的时候使用的就是按这个配置文件编译出来的内核,很明显,为了让大多数不同的电脑能用,里面肯定包含了很多你机器上没有的东西 。现在你的任务就是把这些东西全都去掉,同时加进去你想要的东西 。用任何一个文本编辑器打开它,怎么编辑我就不说了,你可以查看手册,里面有详细的说明的 。编译的过程,会在某个目录下产生新的内核源码,你进入那个目录后就可以开始编译并安装新系统了 。我的机器,删除没用的东西后的内核非常精简,256M的内存启动后完全Free的内存有231M,也就是说在启动过程中被“经历过的内存区域只有25M,而且这不是活动内存,活动内存只有2650K!呵呵 。跟Windows的上百兆内存占用相比……

推荐阅读