X Window系统
一种以位图方式显示的软件窗口系统。诞生于1984,比Microsoft Windows要早。是一套独立于内核的软件
Linux上的X Window系统
X Window系统由三个基本元素组成:X Server、X Client和二者通信的通道。
-
X Server:是控制输出及输入设备并维护相关资源的程序,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上(在屏幕上构造方块(窗口),然后画出里面的元素 )。
-
X Client:是应用程序的核心部分,它与硬件无关,每个应用程序就是一个X Client。X Client可以是终端仿真器(Xterm)或图形界面程序,它不直接对显示器绘制或者操作图形,而是与X Server通信,由X Server控制显示。
-
X通信通道 :X Client与X Server之间传输信息的媒介 。
X Server
每一套显示设备只对应唯一的X Server。由系统供应商提供,通常无法被用户修改 。只是一个普通的用户程序
自由软件编写者或厂商开发出了多种X Server:
- XFree86:一个免费的X Server软件,2004年弃用GPL协议。
- Xorg:XFree86的衍生版本。这是运行在大多数Linux系统上的X Server,Red Hat Enterprises Linux 5.0上也是如此。
- Accelerated X:由Accelerated X Product开发,在图形的加速显示上做了改进。
- X Server suSE:SuSE Team’s开发。
X Client
X Client是X Window中的用户端程序
多种多样的X Client程序向X Server发出请求,由X Server运算得出结果,再显示到指定的地方去,如本地或者远程的一台显示器
X Client无法直接影响视窗行为或显示效果,它们只能发送一个请求给X Server,由X Server来完成这些的请求
X 通信通道
X通信通道的主体是xlib(X函数库)
X Client调用xlib,利用相应的通信功能向X Server发出请求
X Server完成任务之后,同样调用xlib把结果显示指点的设备上去
X window 特点
在Windows下,构建图形界面的功能都做在了操作系统里面,你只能使用那些。这个方法很简单,但是却不灵活。
Unix和类Unix的操作系统没有内建这个功能,要使用GUI你就不得不使用窗口系统(X Window)。
X window运行原理
C/S模式应用程序
X Server 为S,X Client 为C
X Client只是单纯地执行程序、计算,它只能使用XServer提供的服务进行输入输出
X Server是一个管理显示的进程,必须运行在一个有图形显示能力的主机上
X Protocol(X协议)
X Protocol是X Client和X Server进行通信的一套协定 ,支持的网络协议有TCP/IP、DECnet等 。可以认为X Protocol就是X Client和X Server交互的一种语言 。X Protocol只是一种协议,并不是一个软件,该协议需要具体的软件来实现
实现 X protocol的服务器软件
各种X Server软件,实质上就是实现了X Protocol的软件
这些软件并没有规定只是在UNIX和类UNIX操作系统上运行,在Windows上也有X Server软件
在Windows上运行一个X Server,在Linux上运行X Client,X Client显示在Windows上也是可行的
苹果电脑的图形界面用的也是X Protocol
X Server和WM(Window Manager窗口管理器)
X Server只负责建立窗口,在其中写入文字或者画图,控制输入设备等,
X Server创建的窗口会一个叠一个的堆积在屏幕上,不能操纵和移动,也无法改变大小和最小化
所以需要引入 窗口管理器实现
启动画面/背景图案与颜色/字体/按钮/菜单/桌面设置/移动/放大/缩小等
窗口管理器有:如FVWM、Afterstep、AMIWM、Blockbox、Enlightenment、WindowMaker、TWM、KVM等
使用了不同的窗口管理器,就有不同风格的窗口外形、桌面设置与菜单
窗口管理器必须运行在X Window上
X Window的启动和关闭
启动
- init 5
- startx(已经启动了WM)
关闭
- 点击菜单中的退出
- Alt+Ctl+Backspace
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EixRK1j9-1622687974020)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/186e17b4479a42dda5b978c78f3f6922~tplv-k3u1fbpfcp-watermark.image)]