Операционная система Linux

DISPLAY


Чтобы начать работу с графической средой, X-клиенты должны каким-то образом доставить свой запрос X-серверу – для этого у X-сервера должен быть какой-то точный адрес. Адрес X-сервера, к которому должны обращаться с запросом X-клиенты, хранится в переменной окружения DISPLAY. Формат DISPLAY прост: способ_доступа:номер_сервера.номер_экрана. Под способом доступа может подразумеваться сеть (тогда используется сетевой адрес машины с X-сервером) или какой-нибудь другой механизм, принятый в конкретной системе. Если не написать ничего, будет выбран способ по умолчанию. Номер сервера нужен для различения разных X-серверов, запущенных на одном компьютере. В Linux можно запустить несколько X-серверов и переключаться между ними, как между виртуальными консолями – с помощью Ctrl+Alt+F7, Ctrl+Alt+F81) и т. д. В системе может быть несколько виртуальных серверов (см. раздел "Виртуальный сервер"). Все они должны иметь разные номера. Наконец, один сервер может работать с несколькими экранами – и физически (есть видеокарты с выходами на несколько мониторов), и виртуально (вот тут уж никаких ограничений нет). Правда, это бывает нечасто, и номер экрана тоже можно не указывать.

Адрес X-сервера, запущенного Мефодием, будет выглядеть так: ":0" – поскольку сервер запущен на той же машине, на которой работает Мефодий, можно использовать способ доступа по умолчанию (поэтому адрес начинается с двоеточия), поскольку сервер единственный, он получил номер "0", а экран можно не указывать. Теперь Мефодий может в любой командной оболочке (shell) указать адрес X-сервера в переменной DISPLAY, так что любой запущенный из этой shell X-клиент унаследует это значение и будет отправлять X-запросы тому серверу, который запустил Мефодий:

methody@susanin:~ $ export DISPLAY=:0 methody@susanin:~ $ echo $DISPLAY :0 methody@susanin:~ $ xcalc &

Пример 16.1. Запуск X-клиента из виртуальной консоли (html, txt)

В результате этих действий изменился экран X-сервера: в левом верхнем углу открылось окно калькулятора – xcalc. Произошло следующее: при запуске xcalc проверил значение переменной DISPLAY и направил X-запрос по указанному там адресу; по запросу от X-клиента (xcalc) X-сервер выделил ему окно и выполнил необходимые операции графического вывода, чтобы отрисовать содержимое окна (опять же, по запросам xcalc). Теперь при помощи мыши и клавиатуры, переместив точку ввода на это окно, вполне можно что-нибудь вычислить, однако ни переместить окно, ни изменить его размер, ни свернуть – то есть выполнить те операции, к которым так привыкли пользователи оконного интерфейса, – невозможно: сам X-сервер их не производит. Для этих операций требуется специальная программа – диспетчер окон, о которой речь пойдет ниже (см. рис. 16.4.).


Рис. 16.4.  Запуск X-клиента

С помощью специальных X-запросов можно изменить вид и поведение самого X-сервера из той же командной оболочки, в которой установлена переменная окружения DISPLAY. Например, команда "xsetroot-solid green &" изменит цвет фона на экране сервера на зеленый.

Итак, X-сервер запускается на одном компьютере, а X-клиенты вполне могут работать на других (причем на нескольких!), посылая ему запросы. С точки зрения человека, сидящего за (обратите внимание!) X-сервером, каждый такой клиент представлен в виде окна. Требования к аппаратуре на машинах, запускающих X-клиенты, будут изрядно отличаться от требований к аппаратуре машины для X-сервера. Типичная машина с X-сервером – это рабочее место (workstation). Она должна быть оборудована качественными устройствами ввода-вывода – монитором, видеокартой, клавиатурой и мышью. Что же касается ее вычислительных способностей, то их должно быть достаточно для выполнения X-запросов, и только. Такой компьютер не обязан работать под управлением Linux, на нем даже может вообще не быть операционной системы! В восьмидесятые годы выпускались подобные устройства, называемые "X-терминал" (X-terminal).

X-клиент. Программа, осуществляющая ввод и вывод графических данных при помощи X-запросов, обрабатываемых X-сервером.

В отличие от машины с X-сервером, компьютер для запуска X-клиентов может совсем не иметь устройств графического ввода-вывода. Его задача в том, чтобы все X-программы и запустившие их пользователи не мешали друг другу работать. На такой машине нужна хорошо настроенная операционная среда, с достаточным для запуска многих процессов быстродействием и объемом оперативной памяти. Пара X11R6—Linux весьма неплохо работает на так называемых бездисковых комплексах. Рабочие станции в таких комплексах – самые настоящие X-терминалы, они не имеют жестких дисков. Вся работа происходит на центральном компьютере, с которого на рабочую станцию загружаются по сети урезанный вариант системы, достаточный для запуска X-сервера, и сам X-сервер. В таких комплексах администрировать нужно одну только центральную машину, они надежнее компьютерных залов и, что немаловажно, стоят дешевле, причем в качестве X-терминалов можно использовать и довольно маломощные, "пожилые" компьютеры.



Содержание раздела