196
Вотличие от MS Windows, имеющей встроенное в ядро ОС графическое ПО, без которого она не может работать, Linux и другие UNIX-подобные ОС, для этих целей, используют набор приложений, взаимодействующих на основе модели «клиент/сервер».
Базовая часть графического ПО Linux назвается X Window System или просто - X
Window.
Начиная с 1988 года, этот стандарт поддерживался консорциумом X, созданным с целью унификации графического интерфейса для ОС UNIX.
В 1997 году, консорциум X был преобразован в X Open Group, в чем можно убедиться на сайте http://www.x.org.
X Window - сложная система, подробно описаная большим количеством первоисточников. Основой ее является программа X-сервер, которая через драйверы устройств взимодействует с видеоплатой, клавиатурой, мышью и монитором компьютера.
Именно Х-сервер:
•устанавливает и переключает графические режимы видеплаты;
•рисует элементы изображений;
•определяет координаты мыши;
•формирует программные прерывания при нажатии кнопок мыши и клавиа-
туры.
Все остальные программы, включая менеджер окон, взаимодействуют с Х-сер- вером по особому протоколу, который называется X-протокол, или протокол сетевой связи (X Network Protocol).
Для написания программ, поддерживающих Х-протокол, имеется базовая библиотека X-lib. На основе этой библиотеки пишутся дополнительные графические библиотеки более высокого уровня, например, GTk+, Qt, Motif и другие.
Обычно, менеджеры окон, рабочие столы и сложные графические приложения пишутся с использованием этих библиотек.
Общая архитектура X Window может быть представлена рисунком 6.1, где Х-сер- вер обрабатывает 4 типа сообщений:
•Запрос – клиент требует нарисовать что-либо в окне или запрашивает у сервера информацию;
•Ответ – сервер отвечает на запрос;
•Событие – сервер сообщает клиенту о событии, например, о нажатии клавиши пользователем;
•Ошибка – сервер сообщает об ошибке.
197
Рисунок 6.1 - Общая архитектура графической системы X Window
Замечание
Дистрибутив Х-сервера содержит набор шрифтов настроечные файлы и ряд приложений, которые можно найти в директории: /etc/X11/app-defaults
На рисунке 6.2 представлен пример одного из таких приложений, которое поставляется вместе с дистрибутивом X-сервера. Это - xcalc (калькулятор), работающий на всех системах X Window System, включая запуск его в сети.
Замечание
Приложение, показанное на рисунке 6.2, запущено в среде рабочего стола Xfce4, поэтому оно имеет окно с титульной надписью, которое отображает менеджер окон. Х- сервер обычно отображает приложения в верхнем левом углу дисплея (display).
ОС УПК АСУ не содержит этого приложения!
198
Рисунок 6.2 — Калькулятор системы X Window System
Писать и настраивать приложения для Х-сервера довольно сложно, поэтому все современные ОС, использующие графический интерфейс с пользователем, имеют специальное приложение, которое называется оконным менеджером.
Оконный менеджер - это приложение, которое отвечает за размещение, декорирование окон и за взаимодействие между окнами:
•изменение размеров,
•максимизация,
•свертывание,
•закрытие.
Оконный менеджер взаимодействует с графическим сервером X11, который, в свою очередь, занимается взаимодействием c видеокартой и устройствами ввода/ вывода:
клавиатура, мышь и монитор.
199
Именно оконный менеджер обеспечивает функциональность графической среды пользователя.
Чтобы максимально обеспечить удобство работы пользователя, в каждой ОС, разрабатывается набор приложений, который называются окружение рабочего стола или просто — рабочий стол.
Учебная система ОС УПК АСУ, созданная на основе ОС ArchLinux, использует рабочий стол:
•Xfce — как окружение рабочего стола;
•xfwm4 — как оконный менеджер.
Замечание
Абревиатура Xfce появилась как акроним toolkit's: XForm Common Environment. Ее автор, Оливер Фордан, начал проект в 1996 году.
Целью проекта было создание лёгкого настольного рабочего окружения для различных UNIX-подобных систем, способного быстро загружать и выполнять приложения, сохраняя ресурсы системы.
Со временем, основа была много раз переписана, а название осталось. В настоящее время, Xfce включает следующие приложения:
thunar — файловый менеджер; xfwm — менеджер окон; xfce4-panel — панель задач;
xfdesktop — менеджер рабочего стола; xfce4-session — менеджер сеансов; xfce4-settings — диспетчер настроек;
xfconf — система хранения настроек, работающая через D-Bus; xfce4-appfinder — поиск приложений;
xfce4-terminal — эмулятор терминала; xfce4-power-manager — менеджер питания.
Имеется также, набор приложений, которые традиционно устанавливаются, по умолчанию: mousepad, orage, parole, ristretto, xburn и другие.
Имеются операционные системы, которые не могут работать без графического окружения.
К таким ОС относятся: MS Windows и MacOS.
Для UNIX и Linux, графическое окружение ОС является необязательным и может быть отключено с целью экономии ресурсов ЭВМ.
Вцелом, оконные менеджеры могут работать:
•как вместе с окружением рабочего стола;
•так и отдельно от него.
Функционал, предоставляемый оконными менеджерами, может достаточно сильно различаться.
200
Вчастности, оконные менеджеры подразделяются на:
•тайловые, в которых окна не перекрываются;
•композитные, позволяющие окнам перекрываться.
Принципиально, для использования графических приложений, не требуется наличие окружения рабочего стола. Например, оконный менеджер openbox прекрасно работает без рабочего стола LXDE, который его использует.
Ряд рабочих столов используют собственные менеджеры окон, например:
•Xfce — xfwm;
•KDE — Kwin;
•Gnome — Metacity.
•Возможно также переключение рабочего стола на другие оконные менеджеры, например, Compiz.
Замечание
Переключение рабочего стола на другой менеджер окон может потребовать множества дополнительных настроек, что не всегда удобно.
Учитывая, что за последние двадцать с лишним лет X11 уже морально устарел, ведется разработка нового графического сервера, в рамках текущего проекта
Wayland.
Первый выпуск этого сервера состоялся в 2008 году, но до сих пор эта работа продолжается.
Wayland будет использовать Weston — в качестве композитного менеджера. Для Linux, будут задействованы уже существующие в ядре технологии:
•KMS — Kernel mode-setting;
•DRM — Direct Rendering Manadger;
•GEM — Graphics Execution Manadger.
Для обеспечения работы с уже используемыми Х-приложениями, разработана специальная программная прослойка xwayland, - сервер доступа к Wayland.
Важной особенностью Х-сервера является возможность его работаты на стеке протоколов TCP/IP с программами, запущенными на удаленных компьютерах. Обычно, для этих целей используется ассинхронная связь (протокол UDP), но возможна и синхронная связь по протоколу TCP, которая работает в 30 раз медленнее, чем асинхронная связь по UDP.
Кроме того, на компьютере может быть запущено несколько Х-серверов, которые выводят графическую информацию на разные дисплеи с разными номерами: 0, 1, 2 и так далее.
X-сервер запускается дисплейным менеджером, который предлагает клиенту ОС