Протоколи та стандарти

Протокол X-Window

6

Система X-window была разработана в Массачусетском Технологическом институте (сотрудники этого института внесли существенный вклад и в разработку всего комплекса TCP/IP-протоколов) в качестве многооконного программного интерфейса для ЭВМ с побитовым отображением графической информации.

Система предполагала отображение результатов работы нескольких программ одновременно. Сегодня это одна из наиболее популярных систем. Для каждой программы выделялась отдельная область на экране — «окно». С самого начала система предназначалась для работы в различных сетях (TCP, IPX/SPX и т.д.). Система может управлять окнами как на локальной, так и удаленной ЭВМ. Для управления окнами используются специальные сообщения. Для обмена этими сообщениями разработан x-windows протокол. Система X-window состоит из двух частей Xlib и X-сервера (RFC-1198).

Рис. 4.5.5.1. Схема взаимодействия различных частей X-window

xlib является интерфейсом для любого прикладного процесса и обычно представляет собой программу, написанную на C. Xlib отвечает за обмен информацией между сервером и терминалом пользователя (X-клиент). Под приложениями здесь подразумеваются независимые процессы. Для каждого терминала инсталлируется отдельный X-сервер. Один X-сервер может обслуживать несколько клиентов. X-сервер осуществляет отображение на экране всех окон, в то время как функция клиентов — управление окнами. Для управления окнами используются структуры типа стеков.

Прикладная программа-клиент и сервер взаимодействуют друг с другом через системный протокол X-window (RFC-1013 и RFC-1198). При этом используется четыре вида сообщений:

  1. Запрос: инструкция, направляемая серверу рабочей станции, например, нарисовать окружность.

  2. Отклик: направляется от сервера в ответ на запрос.

  3. Событие: используется сервером, чтобы сообщить прикладной программе об изменениях, которые могут повлиять на ее работу (например, нажатие клавиши на терминале или мышке, запрос из сети и т.д.).

  4. Ошибка: посылается сервером прикладной программе, если что не так (переполнение памяти, неправильно заданные параметры делают выполнение задания невозможным и пр.).

Форматы таких сообщений представлены на рис. 4.5.5.2.

Рис. 4.5.5.2 Форматы сообщений об ошибках

Некоторые X-запросы не нуждаются в откликах (например, связанные с перемещением манипулятора мышь), такие сообщения могут группироваться и посылаться единым потоком (batch stream). Такой подход позволяет пользователю выдать Xlib-запрос и перейти к выполнению других операций, в то время как схема запрос-отклик требует ожидания.

Сообщение типа событие посылается прикладной программе только в случае, если она запрашивала такого рода информацию.

X-Window приложения должны установить канал связи между собой, прежде чем они смогут обмениваться сообщениями. Приложение для того, чтобы установить связь с рабочей станцией использует запрос XOpenDisplay из библиотеки Xlib. Xlib формирует структуру дисплея, которая содержит необходимую информацию, определяющую режим обмена прикладная программа <-> рабочая станция. После того как связь установлена прикладная программа и рабочая станция готовы к работе. Если была нажата клавиша мышки (событие — ButtonPress), а не известно, в каком из окон находится ее указатель, прикладная программа выдает в Xlib запрос XQueryPointer. Положение указателя будет прислано в отклике на этот запрос.

Данный протокол, строго говоря, не входит в набор TCP/IP хотя, как было сказано, он описан в RFC. Но мне представлялось важным дать в руки операторов сетей информацию, которая позволит им лучше понимать, что «гуляет» по их кабельным сегментам.

citforum.ru

6 Comments

  1. … [Trackback]

    […] Read More to that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

  2. … [Trackback]

    […] Here you can find 82600 more Information on that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

  3. … [Trackback]

    […] Information on that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

  4. … [Trackback]

    […] Here you can find 63524 more Info to that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

  5. … [Trackback]

    […] Find More on on that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

  6. … [Trackback]

    […] Information on that Topic: portaltele.com.ua/articles/protocols-and-standards/2010-06-8-01-46-58.html […]

Leave a reply

error: Вміст захищено!!!