X Window系统,又称X、X11,是MIT X联盟于1980年开发的一种基于网络的客户端-服务器的用户界面技术。
    X Window包括3个组成部分:客户端、服务器、两者之间的协议(X协议)

    一、X服务器与X客户端
    X服务器指的是一个程序,负责在屏幕上显示X客户端请求的图形,并将鼠标、键盘消息传递给X客户端。
    比如要在X服务器上显示一个窗口,实际发生的事情是X服务器在TCP6000端口绑定并监听,由远端的X客户端连接X服务器的TCP6000端口,并且请求X服务器在屏幕上画一个窗口。
    当你按下"A"键,X服务器将向远端的X客户端发送消息,然后X客户端再向X服务器请求在某个位置显示字母"A"。
    X服务器是面向用户的,而X客户端是面向开发者的,开发客户端应用程序基本上都调用Xlib函数库。

    二、X协议
    X协议为应用层协议,存在与X服务器和X客户端应用程序之间。X协议包括X客户端发送给X服务器的请求和X服务器发送给X客户端的事件和错误信息。
    如果客户端和服务器不在同一台主机上,X客户端运行在远程主机上时,需要设置服务器的IP地址,设置命令如下:
            typeset -x DISPLAY=156.27.60.4:0

    三、窗口管理器
    窗口管理器是负责用户桌面中窗口秩序的一种特殊的客户端。
    窗口管理器的主要功能是:控制窗口位置、移动窗口,改变窗口大小,图标化(最小化)窗口,改变窗口层叠顺序等等。窗口上的标题、按钮、边框,全都是窗口管理器创建的,而不是客户端应用程序创建的,所有窗口的样式也都是由窗口管理器控制的。

    四、GNOME和KDE
    GNOME和KDE是“桌面系统”,包括同一工具包编写的窗口管理器和一组应用程序。它提供了统一的程序外观和交互方式,具有更好的用户体验。

    五、工具包
    直接基于Xlib函数库开发客户端应用程序比较困难,因为该库提供的接口抽象层次太低,没有提供一些开发所必须的构件,如菜单、按钮、对话框等。工具包构建在Xlib基础上,提供了更高级的构件,可以很容易的开发应用程序,并且也增强了用户界面的一致性。主流的工具包有Gtk+, Xt/Motif, Xt/Xaw, Qt等。GNOME桌面系统是基于Gtk+的,Gtk+基于C语言;而KDE桌面系统是基于Qt的,Qt基于C++语言。

    六、使用Xming在windows下运行X Window程序

    1.在windows下开启Xming,作为X服务器,用来显示
    2.设置X服务器地址,在X客户端上输入命令:
            export DISPLAY=192.168.0.7:0.0
    其中等号右边第一个参数是X服务器的IP;第二个参数是6000需要加上或者减去的一个数,例如设置为10,则表示X服务器在6010端口监听,默认为6000端口,也就是该值应该设置为0;最后一个不常用,一般设置为0
    如果嫌每次重启colinux都要设置一下DISPLAY变量麻烦,可以让colinux在启动时自动设置,在~/.bash_profile文件末尾添加如下两行:
            DISPLAY=192.168.0.7:0.0
            export DISPLAY
    3.经过上面两步,就可以运行X Window程序啦~