作者:xdkui
一) 基本运行原理 【相关文章:RedHat9-DB2V8.1安装过程(】
第一次在debian下装xfree86,startx启动了twm,装了gnome 后startx启动了gnome环境,为什么?装gnome 时修改了什么文件以及x环境是怎么起来的?本来是想搞清这几个文题开始研究这个题目的,没想到还学到了很多别的东西^_^本文主要说明x window system的基本运行原理,其启动过程,及常见的跨网络运行x window system。 【扩展阅读:发一个原创的mplayer-1.Open】
x window system采用c/s结构,但与我们常见的c/s不同。常见的c/s结构中,称提供服务的一方为server,即服务器端(如http服务,ftp服务等),使用服务的称为client,即客户端。但在x window system中,client是执行程序的一方,在上面执行各种x程序,而server则是负责显示client运行程序的窗口的一方。 【扩展信息:Iptables 指南 1.1.19】 x window system的组成可以分为x server,x client,x protocol三部分。x server主要控制输入输出,维护字体,颜色等相关资源。它接受输入设备的输入信息并传递给x client,x client将这些信息处理后所返回的信息,也由x server负责输出到输出设备(即我们所见的显示器)上。x server传递给x client的信息称为event,主要是键盘鼠标输入与窗口状态的信息。x client传递给x server的信息则称为request,主要是要求x server建立窗口,更改窗口大小位置或在窗口上绘图输出文字等。x client主要是完成应用程序计算处理的部分,并不接受用户的输入信息,输入信息都是输入给x server,然后由x server以event的形式传递给x client(这里感觉类似windows的消息机制,系统接收到用户的输入信息,然后以消息的形式传递给窗口,再由窗口的消息处理过程处理)。x client对收到的event进行相应的处理后,如果需要输出到屏幕上或更改画面的外观等,则发出request给x server,由x server负责显示。常见的情况是x server与x client都在同一台电脑上运行,但他们也可分别位于网络上不同的电脑上。在x window system中,x client是与硬件无关的,它并不关心你使用的是什么显卡什么显示器什么键盘鼠标,这些只与x server相关。我们平常安装完xfree86后运行xf86config或xf86cfg进行的配置实际上只是与x server有关,可以说就是配置x server吧,不配置照样可以运行x client程序(如:xeyes -display xserver:0就可以在xserver这台机器上的0号屏幕(屏幕编号displaynumber为0)上显示那对大眼睛了)。
x protocol就是x server于x client之间通信的协议了。x protocol支持现在常用的网络通信协议。我只能测试tcp/ip,可以看到x server侦听在tcp 6000端口上。那x protocol就是位于运输层以上了,应该属于应用层吧?。
总结下运行过程吧: (1) 用户通过鼠标键盘对x server下达操作命令 (2) x server利用event传递用户操作信息给x client (3) x client进行程序运算 (4) x client利用request传回所要显示的结果 (5) x server将结果显示在屏幕上二) 启动过程
我们从控制台进入x一般是用startx命令。下面就从startx分析起。首先man startx与man xinit可以看到staratx与xinit的使用方法: startx [[client] options .....] [-- [server] options ....] xinit [[client] options ] [-- [server] [display] options] 把上面[client]与[server]分别称为client程序与server程序。man手册里写明其必须以/或者./开头。 下面看看startx这个脚本,中文为我加的注释,这个脚本是安装x-window-system-core后得到的,都是xfree86,不同发行版的linux里该脚本应该大同小异: #!/bin/sh userclientrc=$home/.xinitrc #用户的client定义文件 userserverrc=$home/.xserverrc #用户的server定义文件 ... 下一页