Система X-Window. Преимущества X-Window. Отличие X-Window от MS-Window
X-windows - надстройка над ОС (просто перезапустить)
X Window или просто X - это система для создания графического пользовательского интерфейса, изначально - на компьютерах, работающих под управлением ОС UNIX. X была создана в MIT (Масачусетский Технологический Институт). В настоящее время уже выпущена версия 11.6 (X11R6) и активно идёт подготовка к выпуску версии 7.
Особенностью 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 предоставляет набор средств для создания окон, их перемещения по экрану, изменения их размеров, вывода в них и т.п.
Общее устройство X Window
Система X Window представляет собой совокупность программ и библиотек. "Сердцем" её является специальная программа - X-сервер. Это отдельный UNIX -процесс, имеющий место быть на компьютере, к которому присоединён дисплей. Именно сервер знает особенности конкретной аппаратуры, знает, что надо предпринять, чтобы вывести какой-либо графический объект, например, примитив, на экран. Он же умеет воспринимать и обрабатывать сигналы, приходящие от клавиатуры и мыши.
Сервер общается с программами-клиентами, посылая им или принимая от них пакеты данных. Если сервер и клиент находятся на разных машинах, то данные посылаются по сети, а если на одном, - то используется внутренний канал. Например, если сервер обнаруживает, что пользователь нажал кнопку мыши, то он подготавливает соответствующий пакет (событие) и посылает его тому клиенту, в чьём окне находился курсор мыши в момент нажатия кнопки. И наоборот, если программе надо вывести что-либо на экран дисплея, она создаёт необходимый пакет данных и посылает его серверу. Очевидно, описание этого взаимодействия, форматов пакетов и т.п. и составляет спецификацию вышеупомянутого X-протокола.
Однако, чтобы программировать для X, совсем необязательно знать детали реализации сервера и X -протокола. Система предоставляет стандартную библиотеку процедур, с помощью которых программы осуществляют доступ к услугам X
"на высоком уровне". Так, для того, чтобы вывести на экран точку, достаточно вызвать соответствующую стандартную процедуру, передав ей требуемые параметры. Эта процедура выполнит всю работу по формированию пакетов данных и передаче их серверу.
X окно
Как уже упоминалось ранее, окно - это базовое понятие в X. Оно представляет, обычно, прямоугольную область на экране, предоставляемую системой программе-клиенту. Последняя использует окно для вывода графической информации.
Окно имеет внутренность и край. Основными атрибутами окна являются ширина и высота внутренности, а также ширина (толщина) края. Эти параметры называются геометрией окна.
С каждым окном связывается система координат, начало которой находится в левом верхнем углу окна (точнее - его внутренности). Ось x направлена вправо, а ось y - вниз. Единица измерения по обеим осям - пиксель.
X Window позволяет программе создавать несколько окон одновременно. Они связаны в иерархию, в которой одни являются "родителями", а другие - "потомками". Сам сервер на каждом экране создаёт одно основное окно, являющееся самым верхним "родителем" всех остальных окон. Это окно называется "корневым" (root).
Управление окнами
Окна могут располагаться на экране произвольным образом, перекрывая друг друга. X Window имеет набор средств, пользуясь которыми, программа-клиент может изменять размеры окон и их положение на экране. Особенностью системы является то, что она не имеет встроенной возможности управлять окнами с помощью мышки или клавиатуры. Чтобы это можно было осуществить, нужен специальный клиент - менеджер окон (window manager).
Однако, менеджер не может корректно управлять окнами, ничего о них не зная. Окна могут обладать различными свойствами, которые должен обеспечивать именно менеджер окон: например, во многих случаях удобно иметь заголовки окон, в других - желательно, чтобы окно нельзя было сделать меньше, или наоборот - больше, определённого размера. Окно может быть "свёрнуто" в пиктограмму ("иконку") - в этом случае менеджер должен знать, какую пиктограмму использовать и как её назвать. Клиенты могут сообщать менеджеру свои пожелания относительно окон двумя способами:
при создании окна X могут быть переданы "рекомендации" (hints) о начальном положении окна, его геометрии, минимальных и максимальных размерах и т.д.;
можно использовать встроенный в X способ общения между программами - механизм "свойств".
58. Интерфейс пользователя ОС
Существует 2 типа
1- интерфейс командной строки (работа в текстовом режиме)
2- графический интерфейс (окошки)
1)приглашение
($ - в UNIX для простого пользователя; # - для зарегистрированного как root)
этот интерфейс не требователен к скорости линии связи
потребляет мало ресурсов
2) 2 крупные разработки(смотри вопрос 57) – их преимущество в том что всё красиво