Способ работы X такой же, как и для любой сетевой программы. У вас есть сервер некоторого описания (в данном случае, сервер X-дисплея), который работает на определенной машине, и у вас есть X-клиенты (например, Firefox), которые пытаются подключиться к этому серверу, чтобы отобразить их информацию.
Часто (на «домашних» машинах) клиент и сервер работают на одном и том же компьютере, и есть только один сервер, но X достаточно мощный, чтобы этого не происходило. Он был построен с самого начала разделения сервера и клиента.
Это позволяет вам делать такие удивительные вещи, как войти в свой ящик (в текстовом режиме) на полпути вокруг планеты, сказать ему, что сервер отображения - это тот ящик, на котором вы сейчас находитесь, и, вуаля, окна неожиданно запускаются появляются локально.
Чтобы клиент мог взаимодействовать с пользователем, ему необходимо знать, как найти сервер. Есть несколько способов сделать это. Многие клиенты допускают указание опции -display
или --display
:
xeyes -display paxbox1.paxco.com:0.0
Многие будут использовать переменную окружения DISPLAY
, если отображение не указано специально. Вы можете установить эту переменную как любую другую:
DISPLAY=paxbox1.paxco.com:0.0; export DISPLAY # in .profile
export DISPLAY=paxbox1.paxco.com:0.0 # in your shell
DISPLAY=paxbox1.paxco.com:0.0 firefox & # for that command (shell permitting)
Первая часть переменной DISPLAY
- это просто адрес компьютера сервера дисплея. Он следует тому же правилу, что и любой другой IP-адрес; это может быть разрешаемое имя DNS (включая localhost
) или определенный IP-адрес (например, 192.168.10.55).
Вторая часть специфична для X. Он дает номер X "display" (X server) и номер экрана для использования. Первый (номер дисплея) обычно относится к группе устройств, содержащих один или несколько экранов, но с одной клавиатурой и мышью (то есть один поток ввода). Номер экрана обычно дает конкретный экран в этой группе.
Примером может быть:
+----------------------------------------+
|paxbox1.paxco.com| |
+-----------------+ |
| |
| +----------+----+ +----------+----+ |
| |Display :0| | |Display :1| | |
| +----------+ | +----------+ | |
| | | | | |
| | +-----------+ | | | |
| | |Screen :0.0| | | | |
| | +-----------+ | | | |
| | +-----------+ | | | |
| | |Screen :0.1| | | | |
| | +-----------+ | | | |
| | +-----------+ | | +-----------+ | |
| | |Screen :0.2| | | |Screen :1.0| | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | |Screen :0.3| | | |Screen :1.1| | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | | Keyboard | | | | Keyboard | | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | | Mouse | | | | Mouse | | |
| | +-----------+ | | +-----------+ | |
| +---------------+ +---------------+ |
| |
+----------------------------------------+
Здесь у вас есть один компьютер (paxbox1.paxco.com
) с двумя серверами дисплея. Первый имеет четыре экрана, а второй - два. Возможны следующие варианты:
DISPLAY=paxbox1.paxco.com:0.0
DISPLAY=paxbox1.paxco.com:0.1
DISPLAY=paxbox1.paxco.com:0.2
DISPLAY=paxbox1.paxco.com:0.3
DISPLAY=paxbox1.paxco.com:1.0
DISPLAY=paxbox1.paxco.com:1.1
в зависимости от того, где вы хотите видеть ваши фактические окна и какие устройства ввода вы хотите использовать.