Индустрия программирования


X Window - часть 2


Система стандартизует способ задания ресурсов приложений, управления ими, и содержит ряд
процедур для работы с ними. Эта совокупность функций называется "менеджер ресурсов" (Xrm -
X resource manager). "Хранилище" параметров программы называется базой данных
ресурсов.

X функционирует согласно идеологии управляемости событиями (event-driven architecture)
- она организует общение между самими программами и между программами и внешней средой
посредством событий. Событие есть единица информации, идентифицирующая происходящие в
системе изменения или действия. По идентификатору события можно получить информацию о нём
- вид события, его характеристики, где оно произошло и т.п..

Общее устройство X Window

Система X Window представляет собой совокупность программ и библиотек. "Сердцем" её
является специальная программа - X-сервер. Это отдельный UNIX -процесс,
имеющий место быть на компьютере, к которому присоединён дисплей. Именно сервер знает
особенности конкретной аппаратуры, знает, что надо предпринять, чтобы вывести какой-либо
графический объект, например, примитив, на экран. Он же умеет воспринимать и обрабатывать
сигналы, приходящие от клавиатуры и мыши.

Сервер общается с программами-клиентами, посылая им или принимая от них пакеты данных.
Если сервер и клиент находятся на разных машинах, то данные посылаются по сети, а если на
одном, - то используется внутренний канал. Например, если сервер обнаруживает, что
пользователь нажал кнопку мыши, то он подготавливает соответствующий пакет (событие) и
посылает его тому клиенту, в чьём окне находился курсор мыши в момент нажатия кнопки. И
наоборот, если программе надо вывести что-либо на экран дисплея, она создаёт необходимый
пакет данных и посылает его серверу. Очевидно, описание этого взаимодействия, форматов
пакетов и т.п. и составляет спецификацию вышеупомянутого X-протокола.

Однако, чтобы программировать для X, совсем необязательно знать детали реализации
сервера и X -протокола.


Начало  Назад  Вперед



Книжный магазин