1 2 3
| # X Window 系统架构详解
## 基础架构
|
localhost(X server) --X protocol-- remotehost(X client)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| ### 核心组件说明 1. **X Server**: - 负责硬件管理(显卡、显示器、输入设备等) - 屏幕绘制与渲染 - 提供字体服务功能 - 典型实现:Xorg
2. **X Client**: - 应用程序逻辑处理 - 响应X Server的事件请求 - 例如:xterm、Firefox等GUI程序
3. **X Window Manager**: - 特殊的X Client - 负责管理窗口布局、装饰和交互 - 常见WM:twm、KWin、Metacity等
4. **Display Manager**: - 提供图形化登录界面 - 负责加载用户选择的WM和语言环境 - 常见实现:GDM、KDM、XDM
## startx 启动流程
### 命令语法 ```bash startx [X client 参数] -- [X server 参数]
|
X server 参数查找顺序
- startx 命令行参数
- 用户主目录
~/.xserverrc
- 系统默认
/etc/X11/xinit/xserverrc
- 最终回退
/usr/bin/X
(X server可执行文件)
X client 参数查找顺序
- startx 命令行参数
- 用户主目录
~/.xinitrc
- 系统默认
/etc/X11/xinit/xinitrc
- 最终回退
xterm
(基础终端模拟器)
底层调用
startx 最终调用 xinit
启动X系统:
1
| xinit [client option] -- [server or display option]
|
默认等效命令:
1
| xinit /etc/X11/xinit/xinitrc -- /usr/bin/X
|
最小化启动示例:
1
| xinit xterm -geometry +1+1 -n login -display :0 -- X :0
|
配置文件体系
核心配置文件
- 主配置文件:
/etc/X11/xorg.conf
- 模块目录:
/usr/lib64/xorg/modules/
- 字体目录:
/usr/share/X11/fonts/
- 显卡驱动:
/usr/lib64/xorg/modules/drivers/
配置段落(Section)
Section名称 |
功能描述 |
Module |
X Server加载的功能模块 |
InputDevice |
输入设备配置(键盘/鼠标) |
Files |
字体和颜色资源路径 |
Monitor |
显示器参数(刷新率等) |
Device |
显卡芯片组配置 |
Screen |
显示分辨率和色深设置 |
ServerLayout |
各模块的组合配置 |
配置生成工具
实用命令工具
显示调节
xvidtune
:GUI显示器频率调节工具
xhost
:X server访问控制1 2 3 4
| xhost +hostname xhost -hostname xhost + xhost -
|
环境变量
1 2
| DISPLAY=localhost:0 export DISPLAY
|
信息查询
命令 |
功能描述 |
showrgb |
显示可用RGB颜色值 |
xlsclients |
列出运行中的X客户端 |
xwininfo |
查询窗口几何属性 |
xdpyinfo |
显示X Server详细信息 |
显示管理器(XDM)
类型对比
类型 |
描述 |
XDM |
基础X Display Manager |
GDM |
GNOME显示管理器 |
KDM |
KDE显示管理器 |
XDM启动流程
- 启动XDM服务
- 加载
/etc/X11/Xsession
- 执行
/etc/X11/xinit/xinitrc.d/
下脚本
- 读取用户配置
~/.xsession
- 加载
~/.Xclients
或 /etc/X11/xinit/Xclients
关键配置文件
文件名 |
用途描述 |
xdm-config |
基础配置和访问控制 |
Xaccess |
主机访问权限设置 |
Xresources |
登录界面样式和X资源定义 |
Xservers |
X Server与Display映射 |
Xsetup_0 |
登录前环境设置(如壁纸) |
Xsession |
会话启动流程控制 |
窗口管理器列表
名称 |
特点描述 |
twm |
最基本的窗口管理器 |
fvwm |
轻量级窗口管理器 |
sawfish |
GNOME集成WM |
enlightenment |
高定制化WM |
metacity |
GNOME默认WM |
fluxbox |
轻量级高自由度WM |
WindowMaker |
NeXTSTEP风格WM |
KWin |
KDE标准窗口管理器 |
辅助功能技术
AccessX 功能
功能 |
描述 |
粘滞键 |
分离组合键输入 |
慢速键 |
调整按键响应时间 |
防反弹键 |
防止重复输入 |
切换键 |
切换状态声音反馈 |
鼠标键 |
键盘模拟鼠标操作 |
其他辅助工具
- 高对比度显示:增强视觉可读性
- 屏幕阅读器:Orca等文本转语音工具
- 盲文显示器:触觉输出设备
- 屏幕放大镜:视觉辅助工具
- 屏幕键盘:GOK等虚拟输入工具
专用软件
- Orca:GNOME屏幕阅读器和放大镜
- GOK:GNOME屏幕键盘
- emacspeak:为Emacs添加语音功能