X-сервер и X-клиент
Как уже было сказано ранее, в X Windows System информационный обмен осуществляется между Х-клиентом и Х-сервером. Давайте рассмотрим более детально эти две составляющие. Программное обеспечение, которое управляет монитором, “мышкой” и клавиатурой, принято называть Х-сервером. Приложения, результат работы которых отображается Х-сервером, называются Х-клиентами. Х-клиент отсылает запросы Х-серверу, а Х-сервер, который может одновременно работать с несколькими Х-клиентами, отвечает Х-клиенту нужной информацией, например, пользовательским вводом или возникшими ошибками.
Особенностью Х-сервера является то, что он всегда запускается локально, то есть на том компьютере (терминале), на котором работает пользователь. В функции Х-сервера входит:
- Отображение на экране визуальной информации;
- Ответы на информационные запросы пользователя;
- Реагирование на ошибки при выполнении запросов;
- Управление клавиатурой, “мышкой” и монитором как локально, так и по сети;
- Создание, управление и удаление окон (отображение в окнах графической информации).
Х-сервер может отображать окна различных Х-клиентов, в том числе и запущенных на разных компьютерах.
Х-клиент,как правило, работает в тесной взаимосвязи с графической библиотекой (например, Xlib) для обработки запросов Х-протокола. Наиболее распространенными его функциями являются:
- отправка сообщений Х-серверу (например, запрос на рисование линии на экране);
- обработка событий, поступающих от Х-сервера (например, события от “мыши” и клавиатуры);
- получение ошибок от Х-сервера (например, ошибка доступа к удаленному серверу).
И Х-клиент и Х-сервер взаимодействуют посредством Х-протокола, которому свойственны такие составляющие компоненты, как: запросы, ответы, события и сообщения об ошибках.
- Х-клиент направляет запросы Х-серверу, на выполнение определенных операций (например, запрос создания окна);
- Для улучшения скорости обработки запросов, Х-клиент обычно не ждет подтверждения получения его запроса Х-сервером, полностью полагаясь на сетевой транспортный протокол;
- Х-запросы всегда кратны 4-м байтам.
- Х-сервер отличает запросы, которые требуют ответа, и отвечает на них. Как было уже сказано выше, из соображений производительности далеко не все запросы требуют ответов;
- Х-ответ также, как и Х-запрос, кратен 4-м байтам, но всегда не меньше 32-х байт.
- Х-сервер пересылает Х-события клиентам, которые их ожидают. Это может быть ввод с клавиатуры или управление “мышкой”. Для минимизации сетевого трафика, Х-клиентам отсылаются только ожидаемые события;
- Длина Х-событий всегда 32 байта.
- Х-сервер может отвечать сообщениями об ошибках на запросы Х-клиентов. Сообщения об ошибках очень схожи с событиями, но по другому обрабатываются;
- Длина сообщения об ошибке 32 байта, и отправляется она специальной подпрограмме Х-клиента, которая предназначена для обработки Х-ошибок.
Базируясь на описанных выше понятиях, становиться понятно, что Х-клиент – это программный продукт, работающий с графической информацией на более высоком абстрактном уровне. В отличие от него, Х-сервер, а точнее его конкретная программная реализация, очень сильно зависит от того оборудования и операционной системы, для которых он спроектирован. Если анализировать особенности аппаратно-зависимого уровня Х-сервера, то ему свойственны:
- адаптация Х-сервера к выбранной платформе;
- учет порядка следования байтов и модификация его между компьютерами с разным порядком (MSB and LSB). Порядок следования байт учитывается при выполнении каждого Х-запроса;
- маскирование отличий аппаратного обеспечения и особенностей реализации операционных систем от Х-клиентов;
- работа с драйверами устройств, такими как клавиатура, “мышь” и монитор.
В зависимости от платформы Х-сервер может быть приложением однопотоковым, то есть выполняться в линейном режиме, или же быть полностью многозадачной системой и использовать преимущества многопотоковости центрального процессора.
Сегодня Х-сервера работают на трех основных типах компьютеров:
- Персональные компьютеры– обладают достаточной вычислительной мощью для локального запуска Х-сервера и Х-клиентов. Также незначительный сетевой трафик может приходиться на работу с удаленными Х-клиентами;
- Х-терминалы– выполняют по сути только одну программу Х-сервер, которая загружается по сети с сервера, поэтому они славятся скромными системными требованиями. Как правило, не содержат жесткого диска. Х-терминалы значительно дешевле персональных компьютеров и проще в обслуживании;
- Гибридные ПК– совмещают в себе преимущества традиционных персональных компьютеров и широкие возможности работы с удаленным рабочим столом. В зависимости от задач пользователя могут работать как в локальном так и в сетевом режимах. Просты в использовании, но значительно сложнее в администрировании.
Пока интересно, читаем дальше!