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添加语音功能