转自 http://vbird.dic.ksu.edu.tw/linux_basic/0590xwindow_1.php
X Window System
主要组件: X Server/X Client/Window Manager/Display Manager
图 1.2.1、 X Window System 的架构
X Server 的重点就是在管理用户端的硬件,包括接受键盘/鼠标等设备的输入资讯,并且将图形绘制到萤幕上 (请注意上图的所有组件之间的箭头指示)。
X Client (就是 X 应用程序) 就很重要啦!他主要提供的就是告知 X Server 要绘制啥东西。
图 1.2.2、 X Server 用户端的操作系统与 X client 的沟通示意
Window Manager(窗口管理员)也是 X client ,只是他主要在负责全部 X client 的控管,还包括提供某些特殊的功能,例如:
- 提供许多的控制元素,包括工作列、背景壁纸的配置等等;
- 管理虚拟壁纸 (virtual desktop);
- 提供窗口控制参数,这包括窗口的大小、窗口的重叠显示、窗口的移动、窗口的最小化等等。
Display Manager:提供登陆需求
X Window 的启动流程:
启动 X Window System 时,必须要先启动管理硬件与绘图的 X Server ,然后才加载 X Client 。基本上,目前都是使用 Window Manager 来管理窗口介面风格的。
可以透过登陆本机的文字介面后,输入 startx 来启动 X 窗口;也能够透过 display manager (如果有启动 runlevel 5) 提供的登陆画面,输入你的帐号口令来登陆与取得 X 窗口的!
事实上启动 X 的是 xinit 这支程序, startx 仅是在帮忙找出配置值而已!那么 startx找到的配置值可用顺序为何呢?基本上是这样的:
- X server 的参数方面:
- 使用 startx 后面接的参数;
- 若无参数,则找寻使用者家目录的文件,亦即 ~/.xserverrc
- 若无上述两者,则以 /etc/X11/xinit/xserverrc
- 若无上述三者,则单纯运行 /usr/bin/X (此即 X server 运行档)
- X client 的参数方面:
- 使用 startx 后面接的参数;
- 若无参数,则找寻使用者家目录的文件,亦即 ~/.xinitrc
- 若无上述两者,则以 /etc/X11/xinit/xinitrc
- 若无上述三者,则单纯运行 xterm (此为 X 底下的终端机软件)