Ответ 1
Способ работы 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-сервер) и номер экрана для использования. Первый (номер дисплея) обычно относится к группе устройств, содержащих один или несколько экранов, но с одной клавиатурой и мышью (то есть одним входным потоком). Номер экрана обычно дает конкретный экран внутри этой группы.
Пример:
+----------------------------------------+
|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
в зависимости от того, где вы хотите, чтобы отображались ваши фактические окна и какие устройства ввода вы хотите использовать.