Linux 5 —— X Windows

image-20220526001845730

三个基本元素

  • X 服务端:
    • 控制输入及输出设备并维护相关资源的程序。
    • 接收输入设备的信息,并将其传给X Client。
    • 将X Client传来的信息输出到屏幕上(在屏幕上构造方块(窗口),然后画出里面的元素)。
  • X 客户端:
    • 应用程序的核心部分,与硬件无关,每个应用程序就是一个X Client。
    • 可以是终端仿真器(Xterm)或图形界面程序,它不直接对显示器绘制或者操作图形,而是与X Server通信,由X Server控制显示。
    • 无法直接影响视窗行为或显示效果,它们只能发送一个请求给X Server,由X Server来完成这些的请求 。
    • X Client程序向X Server发出请求,由X Server运算得出结果,再显示到指定的设备。
  • X 通信通道:
    • 主体是 xlib(X函数库)
    • 调用 xlib,利用相应的通信功能向 X Server 发出请求
    • X Server 完成任务之后,同样调用 xlib 把结果显示指点的设备上去

特点

良好的网络支持
X Window采用了C/S网络结构,X Client和X Server可以通过网络来通信,而且有良好的网络透明性
个性化的窗口界面
X Window并未对窗口界面作统一的规范,程序员可以根据需求自行设计,其中最有名的就是后面将要介绍的GNOME与KDE
不内嵌于操作系统
X Window只定义了一个标准,而不属于某个操作系统,因此可在不同的操作系统上运行相同的X Window软件

运行原理

C/S 模式应用程序 ,X Server 为 S,X Client 为 C

X Client 只是单纯地执行程序、计算,它只能使用 X Server 提供的服务进行输入输出

X Server是一个管理显示的进程,必须运行在一个有图形显示能力的主机上

X Protocol 是 X Client 和 X Server 进行通信的一套协议,支持的网络协议有TCP/IP、DECnet等。X Protocol 只是一种协议,并不是一个软件,该协议需要具体的软件来实现 。各种 X Server 软件,实质上就是实现了 X Protocol 的软件。

GNOME

GNOME 是 **GNU网络对象模型环境(GNU Network Object Model Environment)**的缩写,由 GNOME 面板(Panel)和桌面组成

KDE

KDE 是 K Desktop Environment 的缩写,基于 Qt

Unity

Unity 运行在 GNOME 桌面环境之上,使用了所有 GNOME 的核心应用程序。

更改系统运行级别

临时

1
2
init n
telinit n
1
2
# 启动图形化环境
startx

永久

CentOS 6 及之前:修改配置文件 /etc/inittab

CentOS 6 之后:systemctl set-default *.target