概念
- X client:X客户端。通常是各类GUI应用,如Firefox、xterm、xclock等
- screen:逻辑概念上的屏幕。可以是一台物理显示器、多台物理显示器或者是VNC虚拟显示器
- X client与X server的通信方式有三种:
TCP
,unix socket
和通过内存通信
。后两种方式仅限于X
client与X server都位于同一机器的情况,通信效率更高。
关系
- 一台电脑上可以运行多个X server
- 一个X server可以管理多个screen
- 一个screen可以对应单个或多个物理显示器(多个显示器合成一个逻辑screen)
手动启动Xserver
每一个Xserver启动后都会占用一个TCP端口,用来监听客户端的连接,监听端口号为 6000+display,比如,:0 号display的TCP端口号为6000+0=6000,以此类推。
启动Xserver的方式有很多:
- 直接使用 X 命令:
sudo X :10 & sleep 2 ; DISPLAY=:10 xterm
- 通过xinit程序启动Xserver:
sudo xinit /usr/bin/xterm -display :10 -- :10
- 通过startx脚本启动Xserver:
sudo startx /usr/bin/xterm -- :10
DISPLAY作用
它是Linux X11 client用到的一个环境变量,X client首先会获取并解析当前Shell中DISPLAY变量的值。接着,X client根据解析结果,把绘图命令发送给对应的X server。通常会被设为:0.0 。
DISPLAY格式
格式有三部分组成: [主机名]:显示服务端口号-6000.显示器编号
[主机名]
:可以省略不写,也可以写成$HOSTNAME变量表示的主机名 或 localhost显示服务端口号-6000
:是指sshd服务的X11Forwarding占用端口减去6000的值显示器编号
:一般都是0,表示第一个显示器