当前位置:首页 » 专业资讯
开发技术指南» 文章正文
    引言: 第一次在Debian下装XFree86,startx启动了twm,装了gnome 后startx启动了gnome环境,为什么?装gnome 时修改了什么文件以及X环境是怎么起来的?本来是想搞清这几个文题开始研究这个题目的,没想到还学到了很多别的东西^_^本文主要说明X Window Syste...
 

 

 ·kde下theme的安装    »显示摘要«
    摘要:我一般都在www.kde-look.org上找theme。感觉他们的screenshot都很漂亮,当然玩linux玩的就是个性,所以有个漂亮的theme就对得起咱这张脸。这里主要讲的是原代码包形式发布的theme的安装,如.deb,.rpm的傻子都会。准备工作:apt-get install libqt3-mt-dev libqt3-headers(这些是编译qt要用到的库) kde编译库我的做法:安装kdevelop首先下载个看中的theme,解包---......
 ·让xmms播放mp3    »显示摘要«
    摘要: 到http://www.gurulabs.com/files/xmms-mp3-1.2.7-13.p.i386.rpm下载软件包 然后执行rpm -uvh xmms-mp3-1.2.7-13.p.i386.rpm就可以听mp3了 ......


探究X Window System运行原理与启动过程

作者: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定义文件


...   下一页
    摘要:第一届中国开源软件周网页已经开通,地址为: http://www.chinaossweek.org 欢迎有兴趣参与人士登记参加debian大会、第五届亚洲开源软件论坛及亚洲编程节。......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE