Unix Like 操作系统上面的 GUI 使用的是最初由 MIT 所开发的 X window system,在 1987 释出 X11 版,并於 1994 更改为 X11R6 ,故此 GUI 介面也被称为 X 或 X11
X window system 的 X server 最初由 XFree86 计画所开发,后来则由 Xorg 基金会所持续开发;
X window system 主要分为 X server 与 X client ,其中 X Server 在管理硬件,而 X Client 则是应用程序。
在运行上,X Client 应用程序会将所想要呈现的画面告知 X Server ,最终由 X server 来将结果透过他所管理的硬件绘制出来!
每一支 X client 都不知道对方的存在,必须要透过特殊的 X client ,称为 Window Manager 的, 来管理各窗口的重叠、移动、最小化等工作。
startx 可以侦测 X server / X client 的启动脚本,并呼叫 xinit 来分别运行;
X 可以启动多个,各个 X 显示的位置使用 -display 来处理,显示位置为 :0, :1...
Xorg 是一个 X server ,配置档位於 /etc/X11/xorg.conf ,里面含有 Module, Files, Monitor, Device 等配置阶段
字型管理为 X server 的重点,目前字型管理可由 xfs 及 fontconfig 来处理
本章习题
( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看 )
在 X 配置没问题的情况下,你在 Linux 主机如何取得窗口介面?
如果是在 run level 3 ,可以使用 startx 进入,至於 run level 5 ,则直接进入 tty7 即可使用 display manager 登陆 X Window 系统。
利用 startx 可以在 run level 3 的环境下进入 X Window 系统。请问 startx 的主要功能?
整个 X 窗口系统的重点在启动 X server 并加载 X client ,而运行 X server/X client 呼叫的任务为 xinit ,startx 只是一个较为亲和的脚本程序,可以搜寻系统上面的 X server / X client 配置值, 以提供 xinit 来运行而已。
如何知道你系统当中 X 系统的版本与计画?
最简单可以利用 root 的身份下达 X -version 即可知道!
要了解为何 X 系统可以允许不同硬件、主机、操作系统之间的沟通,需要知道 X server / X client 的相关知识。 请问 X Server / X client / Window manager 的主要用途功能?
X Server 主要负责萤幕的绘制,以及周边输入装置如鼠标、键盘等数据的收集,并回报给 X Client ; X Client 主要负责数据的运算,收到来自 X Server 的数据后,加以运算得到图形的数据,并回传给 X Server, 让 X server 自行绘制图形。至於 Window manager 是一个比较特殊的 X Client ,他可以管理更多控制元素, 最重要的地方还是在於窗口的大小、重叠、移动等等的功能。
如何重新启动 X
最简单在 X Window System 下,直接按下 [alt]+[ctrl]+[backspace<--] 即可, 也可以 init 3 再 init 5,也可以关闭 X 后,再 startx 启动等等。
试说明 ~/.xinitrc 这个文件的用途?
当我们要启动 X 时,必须要启动 X Client 软件端。这个 ~/.xinitrc 即是在客制化自己的 X Client , 你可以在这个文件内输入你自己的 X Client 。若无此文件,则默认以 /etc/X11/xinit/xinitrc 替代。
我在 CentOS 的系统中,默认使用 GNOME 登陆 X 。但我想要改以 KDE 登陆,该怎么办?