目录
1. linux图形界面
linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的。
图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和 WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样 XFree只是linux下的一个应用程序而已。不是系统的一部分,但是X的存在可以方便用户使用电脑。WINDOWS95及以后的版本就不一样了,他们 的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形 界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一。
linux图形相关软件层次:
2. X协议
X是一个开放的协议规范,当前版本为11,俗称X11。X Window System由客户端和服务端组成,服务端X Server负责图形显示,而客户端库X Client根据系统设置的DISPLAY环境变量,将图形显示请求发送给相应的X Server。
3. Xfree86 Xorg
Xfree86,Xorg是X协议的软件实现。XFree86只是实现X协议的一个免费X服务器软件,只不过现在LINUX上最常用的是Xorg了。而苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。
/usr/X11R6这个目录,这是XFree的默认安装目录,X11R6 实际上是 X Protocol version 11 Release 6。
4. WM(window manager:窗口管理器)
WM的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的,所以,我们看到的linux图形界面,都是启动了WM的,否则linux图形界面的窗口将不能移动,放大和缩小。
5. X协议的Client端实现
XFree86是X协议的服务器软件(注以软件的形式实现),但Client端更多的是方便程序员更方便的使用X协议与服务器端的XFree86交互,故就产生了一个Xlib库,封装了X协议内容,如果你还觉得直接使用Xlib不方便,于是就产生了qt和gtk,对Xlib进一步封装,提供了很多控件,可以可视化的使用X协议更方便程序员的开发。
Xlib、qt、gtk直接关系如下图:
QT是直接使用xlib库的,GTK并为直接使用xlib,而是使用更低层的函数库GDK和Glib。这种结构使得Gtk可以更方便地移植到其它系统上,或使用与XWindows系统无关的图形库。
6. KDE、GNOME、QT和GTK直接关系
KDE和GNOME是窗口管理器,启动他们后我们进入了可视化操作(图形界面),既然需要显示图形,自然少不了与X协议的服务器软件打交道,既然QT和GTK进一步封装了X协议,并且他们提供了更为丰富的窗口及控制机制,于是在QT基础上实现的窗口管理器叫KDE,在GTK基础上实现的窗口管理器叫GNOME.
再次提示:KDE和GNOME并不只是窗口管理器,同时提供了桌面、菜单等等。
其它的小型窗口管理器有:
windowmaker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有windowmaker 但是默认不安装,大家可以装来试试.只要xinit再wmaker&就可以用windowmaker了.
7. 参考:
https://blog.csdn.net/zhangna20151015/article/details/51280578
https://www.cnblogs.com/wangkangluo1/archive/2012/06/14/2548706.html
https://www.cnblogs.com/newjiang/p/8414625.html