如果你继续看下来了,那我继续说,呵呵。我们知道,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内核紧密结合在一起的,区分不开,你就把它跟系统当成一整套的东西吧,因为结合得太紧密了,我也分不开,呵呵。
标签: