1.Linux图形界面
Linux本身没有图形界面,Linux现在的图形界面的实现只是Linux下的应用程序实现的,我们在linux下看到的像windows一样的操作界面是由桌面环境(登录管理器、窗口管理器等等)提供的。比如GNOME
、KDE
、XFCE
和LXDE
等等。
2.X window system
2.1 X Server
负责屏幕画面的绘制与显示,以及用户的输入。
接收来自 client 的数据,将这些数据绘制呈现为图面在屏幕上。此外,移动鼠标、点击、由键盘输入等等,也会透过 X Server 来传达到 X Client 端,而由 X Client 来加以运算出应绘制的数据。
2.2 X Client
在接收到 X Server 传来的数据后 (例如移动鼠标、点击 icon 等动作),会经由本身的运算而得到鼠标应该要如何移动、点击的结果应该要出现什么样的数据、键盘输入的结果如何呈现等,然后将这些结果告知 X Server,让他自行去绘制到屏幕上。像是firefox,gedit这类就属于X Client。
注意:Xorg 的服务端运行在本地,而客户端运行在远端。这和一般的服务端和客户端的概念不同。
2.3 Window Manager(WM)
运行时通常只有一个 X Server,而有很多个 X Client,如果 X Client 只是根据自己的需求进行绘制,必然会导致叠图的问题,因此需要一组特殊的 X Client 来管理其他的 X Client,这就是 Window Manager。窗口管理器就是用来管理窗口的软件,包括最大化、最小化、关闭、调整窗口大小,拖动窗口、呈现菜单选项。
2.4 Display Manager(DM)
显示管理器,或者叫做登录管理器,也就是那个需要输入账户密码的图形化的登录界面。
3.测试一下
sudo X :1 -retro
这一句命令开启了一个新的 X server,并且指定一个有条纹的背景。此时能够看到的只有一个背景和一个鼠标,鼠标点击不会有任何反应。xterm -display :1
这一句命令在刚才的X界面运行了一个xterm程序,可以输入命令并执行,但是窗口没办法移动。- 在这个xterm下输入
xfwm4
(这是一个xfce4的窗口管理器),然后可以看到窗口已经可以操作,可以移动,最大化,最小化。