|
| ||||||||||||
| ||||||||||||
X WindowОсобенностью X Window является её архитектура - она построена по схеме клиент--сервер. Взаимодействие X-клиента и X-сервера происходит в рамках соответствующего протокола прикладного уровня - X-протокола. X Window безразличен используемый транспорт, которым может быть служить как локальный UNIX -socket, так и любой сетевой, например, TCP. Это означает, что X-клиент и X-сервер могут "проживать" и на разных компьютерах, т.е. программа может осуществлять ввод-вывод графической информации на экране другого компьютера, причём, различия в архитектуре X- клиента и X-сервера не играют никакой роли - это обеспечивается стандартом X- протокола. Система обеспечивает графический вывод на экран машины, воспринимает сигналы от устройств ввода, таких, как клавиатура и мышь, и передаёт их программам. Следует отметить, что устройство вывода может иметь более одного экрана. X обеспечивает вывод на любой из них. Всё это: экран (экраны), устройства ввода (клавиатура, мышь) называется в терминах X Window - дисплей. Благодаря своей архитектуре X Window свободно используется в распределённых вычислительных системах, например, в сетях TCP/IP (internet). X позволяет пользователю (за дисплеем) общаться со многими программами одновременно. Чтобы вывод из них не смешивался, система создаёт на экране дисплея "виртуальные подэкраны" - окна. Каждое приложение (как правило) рисует только в своём окне (или своих окнах). X предоставляет набор средств для создания окон, их перемещения по экрану, изменения их размеров, вывода в них и т.п. Как правило, программы имеют набор конфигурационных параметров - ресурсов. Это может быть цвет окна, различные параметры текстового шрифта (лигатура, кегль, etc.) и многое другое. Система стандартизует способ задания ресурсов приложений, управления ими, и содержит ряд процедур для работы с ними. Эта совокупность функций называется "менеджер ресурсов" (Xrm - X resource manager). "Хранилище" параметров программы называется базой данных ресурсов. X функционирует согласно идеологии управляемости событиями (event-driven architecture) - она организует общение между самими программами и между программами и внешней средой посредством событий. Событие есть единица информации, идентифицирующая происходящие в системе изменения или действия. По идентификатору события можно получить информацию о нём - вид события, его характеристики, где оно произошло и т.п..
Система X Window представляет собой совокупность программ и библиотек. "Сердцем" её
является специальная программа - X-сервер. Это отдельный UNIX -процесс,
имеющий место быть на компьютере, к которому присоединён дисплей. Именно сервер знает
особенности конкретной аппаратуры, знает, что надо предпринять, чтобы вывести какой-либо
графический объект, например, примитив, на экран. Он же умеет воспринимать и обрабатывать
сигналы, приходящие от клавиатуры и мыши. Как уже упоминалось ранее, окно - это базовое понятие в X. Оно представляет, обычно, прямоугольную область на экране, предоставляемую системой программе-клиенту. Последняя использует окно для вывода графической информации. Око имеет внутренность и край. Основными атрибутами окна являются ширина и высота внутренности, а также ширина (толщина) края. Эти параметры называются геометрией окна. С каждым окном связывается система координат, начало которой находится в левом верхнем углу окна (точнее - его внутренности). Ось x направлена вправо, а ось y - вниз. Единица измерения по обеим осям - пиксель. X Window позволяет программе создавать несколько окон одновременно. Они связаны в иерархию, в которой одни являются "родителями", а другие - "потомками". Сам сервер на каждом экране создаёт одно основное окно, являющееся самым верхним "родителем" всех остальных окон. Это окно называется "корневым" (root). Окна могут располагаться на экране произвольным образом, перекрывая друг друга. X Window имеет набор средств, пользуясь которыми, программа-клиент может изменять размеры окон и их положение на экране. Особенностью системы является то, что она не имеет встроенной возможности управлять окнами с помощью мышки или клавиатуры. Чтобы это можно было осуществить, нужен специальный клиент - менеджер окон (window manager). Однако, менеджер не может корректно управлять окнами, ничего о них не зная. Окна могут обладать различными свойствами, которые должен обеспечивать именно менеджер окон: например, во многих случаях удобно иметь заголовки окон, в других - желательно, чтобы окно нельзя было сделать меньше, или наоборот - больше, определённого размера. Окно может быть "схлопнуто" в пиктограмму ("иконку") - в этом случае менеджер должен знать, какую пиктограмму использовать и как её назвать. Клиенты могут сообщать менеджеру свои пожелания относительно окон двумя способами:
Система X Window предназначена для работы на растровых дисплеях. Число бит на пиксель называют глубиной или толщиной дисплея. Биты с одинаковыми номерами (одинаковые двоичные разряды) во всех пикселях образуют как бы плоскость, как бы параллельную экрану. Её называют цветовой плоскостью. X позволяет рисовать в любой цветовой плоскости (-ях), не затрагивая остальные. Значение пикселя не задаёт цвет точки на экране непосредственно, но задаёт номер ячейки в специальном массиве, в которой и хранится значение цвета, т.е. значение пикселя задаёт номер цвета в текущей палитре. X имеет большой набор процедур, позволяющих рисовать графические примитивы: точки, линии, дуги, текст; работать с областями произвольной формы. В X Window встроены средства для обеспечения информацией между программами- клиентами. Для этого используется механизм "свойств" (properties). "Свойство" - это информационная структура, связанная с некоторым объектом, например, окном, доступная всем клиентам X. Каждое свойство имеет имя и уникальный идентификатор - атом. Обычно, имена свойств записываются большими буквами. Атомы используются для доступа к содержимому свойств с тем, чтобы уменьшить объём информации, пересылаемой между клиентами и X сервером. В X предусмотрен ряд процедур, позволяющих перевести имя свойства в уникальный атом, и, наоборот, по атому получить необходимые данные. Некоторые свойства и соответствующие им атомы являются предопределёнными и создаются в момент инициализации сервера.
|
|
CITForum © 1997–2025