1、X window简介
X Window(也常称为X11或X)系统是一种以位图方式显示的软件视窗系统,最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所移植适用的标准化软件工具包及显示架构的运作协议。
X的实质是工具包及架构规范,即是一个协议,X协议主要有X应用程序(客户端)和X服务器组成,而XFree86(Linux现在使用的是Xorg)是实现X协议的一个X服务器软件,他能按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务。一般情况下,X协议的服务器和客户端都在同一台电脑上,X应用程序向本机的X服务器发出操作请求,然后X服务器将结果输出到本机显示器中,实现图像显示,因此我们感受不到。
2、X协议的客户端实现--Xlib
XFree86、Xorg是X协议的服务器软件,但客户端更多的是让程序员更方便的使用X协议使其能和服务端进行交互,因此就产生了一个Xlib库,这个库封装了X协议的内容,通俗地说,现在说的Xwindow编程就是利用Xlib进行客户端开发,但使用Xlib库非常不方便,于是就有开发者对Xlib进一步封装,产生了QT和GTK。QT直接使用Xlib库,GTK使用GDK和GliB函数库,这两个函数库也是使用Xlib的。
3、桌面环境
窗口管理器的作用是实现窗口的最小最大化、移动和关闭等操作,X服务器并不能操作窗口,要实现这个功能它必须借助窗口管理器,因此X服务器自带一个简单的窗口管理器(Xfree86的twm)。KDE和GNOME也是窗口管理器,在QT基础上实现的窗口管理器叫KDE,在GTK上实现的叫GNOME。启动他们后就进入了我们熟悉的可视化操作图形界面,但他们功能并不只有窗口管理,还有提供菜单桌面等很多实用程序和应用程序,因此我们又称KDE和GNOM为桌面环境(还有XFCE、LXDE等)。同一个linux有不同版本的桌面,比如ubuntu是GNOME桌面(从ubuntu11.04后就变成了UNITY),Kubuntu是KDE,Lubuntu是Lxde。
4、Display环境变量
在Linux/Unix类操作系统上,DISPLAY用来设置将图形显示到何处,DISPLAY环境变量的格式如下:host:NumA.NumB,host指X服务器所在的主机名或者ip地址,图形将显示在这一机器上,假如host为空(即DISPLAY=:0.0),则表示X服务器运行于本机中。要想连接别的机器的X服务器,必须设置DISPLAY环境变量。
参考资料:
X Window:
https://www.cnblogs.com/youxia/p/linux003.html
https://www.jb51.net/LINUXjishu/512251.html
Xlib:
https://tronche.com/gui/x/xlib-tutorial/
https://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html
https://blog.csdn.net/dbzhang800/article/details/6428207
https://blog.csdn.net/xqhrs232/article/details/78450316
DISPLAY环境变量:
http://blog.chinaunix.net/uid-23072872-id-3388906.html