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 参数查找顺序

  1. startx 命令行参数
  2. 用户主目录 ~/.xserverrc
  3. 系统默认 /etc/X11/xinit/xserverrc
  4. 最终回退 /usr/bin/X (X server可执行文件)

X client 参数查找顺序

  1. startx 命令行参数
  2. 用户主目录 ~/.xinitrc
  3. 系统默认 /etc/X11/xinit/xinitrc
  4. 最终回退 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 各模块的组合配置

配置生成工具

1
2
3
Xorg -configure
# 生成测试配置文件:/root/xorg.conf.new
# 测试命令:X -config /root/xorg.conf.new

实用命令工具

显示调节

  • 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启动流程

  1. 启动XDM服务
  2. 加载 /etc/X11/Xsession
  3. 执行 /etc/X11/xinit/xinitrc.d/ 下脚本
  4. 读取用户配置 ~/.xsession
  5. 加载 ~/.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添加语音功能