Графическая оболочка X Window

Как в системе UNIX так и в Linux, пользовательский интерфейс не встраивается в ядро системы. Вместо этого он представляется программами пользовательского уровня. Это применяется как к текстовым, так и к графическим оболочкам. Такой стандарт делает систему более гибкой, хотя и имеет свои недостатки. Например, это легко позволяет создавать новые интерфейсы для программ, что затрудняет изучение системы. Первоначально используемой с системой Linux графической оболочкой была система X Window System (сокращенно X). X является основой графического интерфейса Linux, на которой базируются все графические оболочки (KDE, GNOME, AfterStep, WindowMaker и многие другие). X не реализует пользовательский интерфейс, а только оконную систему, т.е. средства, с помощью которых может быть реализован графический интерфейс. Три наиболее популярных версии графических интерфейсов на основе X - это Athena, Motif и Open Look.

X Window – это сетевая оконная система, созданная Массачусетским технологическим институтом как часть проекта Athena, оперирует основными функциями окна, позволяя пользователю создавать, удалять, перемещать окна и изменять их размеры с помощью мыши.

Сетевой характер системы X Window обусловлен ее моделью – клиент-серверной, в которой взаимодействие между сервером и клиентами осуществляется (даже на локальной машине) за счет специального сетевого X-протокола. По этому протоколу происходит также любое взаимодействие между клиентскими программами Х-ов, и их связь с главной для Х-ов библиотекой – Xlib, которая обеспечивает открытие дисплея и взаимодействие с ним любой клиентской программы, создание и уничтожение окон, а также их отображение вместе с некоторыми простыми атрибутами.

X Window не является полным графическим интерфейсом пользователя. Для предоставления пользователю полного графического интерфейса поверх системы X запускаются другие уровни программного обеспечения. Одним таким уровнем является Xlib, представляющий собой набор библиотечных процедур, необходимых для предоставления доступа к функциям системы X Window.

X Window работает на Х-терминале. Х-терминал представляет собой компьютер, на котором работают Х-программы и который взаимодействует с программами, работающими на удаленном компьютере. Программа, работающая на Х-терминале, собирающая ввод с клавиатуры и мыши и принимающая команды от удаленного компьютера, называется Х-сервером. Она должна следить за тем, которое из окон выбрано в данный момент. Таким образом, Х-сервер узнает, какому клиенту направлять ввод с клавиатуры. Х-сервер общается по сети с Х-клиентами, работающими на удаленном хосте. С точки зрения программы, клиент велит серверу выполнить те или иные действия, а сервер, как и все серверы, просто делает то, что ему велят. Схема клиента и сервера показана на рисунке 22222

 

Рисунок – Клиенты и серверы в системе X Window

 

Примечание: Название X-сервер вначале приводит к путанице, ведь обычно сервер – это какой-то другой компьютер, услугами которого мы пользуемся. В данном же случае X-сервер – это программа, которая обслуживает не столько нас, сколько другие программы. Так, Netscape «просит» X-сервер отобразить на экране содержимое web-страницы, и тот это делает (он предоставляет программе Netscape некоторый сервис, т.е. является для нее сервером).

Процесс «общения» между Х-сервером и клиентом осуществляется с помощью специального сетевого протокола – так называемого X-протокола, как показано на рисунке 22222. Это весьма скромный как по количеству понятий, так и по требованиям к пропускной способности сети протокол. В нем всего 4 базовых типа сообщений с простейшими форматами: запрос, ответ, оповещение о событии и сообщение об ошибке. На этом базисе и строится все "общение". Не имеет значения, работают ли клиент и сервер на одной машине, или они в локальной сети, или обмениваются информацией по Интернету, протокол и операционная система идентичны в любых случаях.

Чтобы облегчить программирование в системе X Window, вместе с ней поставляется набор инструментальных средств, называющийся Intrinsics (встроенные средства). Этот уровень управляет кнопками, полосами прокрутки и другими элементами графического интерфейса пользователя.

Управление окнами не является частью самой системы X Window. Созданием, удалением и перемещением окон по экрану управляет отдельный Х-клиентский процесс, называемый оконным менеджером. Для этого он посылает команды Х-серверу.

Такой модульный дизайн, состоящий из нескольких уровней и большого количества программ, делает систему X Window в высочайшей степени переносимой и гибкой. Она была установлена на большинство версий Unix, включая Sun Solaris, BSD, AIX, Linux и т.п., что предоставило разработчикам стандартный интерфейс пользователя на различных платформах. Система так же была установлена и на другие операционные системы. Напротив, в системе Windows управление окнами и графический интерфейс пользователя смешаны вместе в интерфейсе GDI и располагаются в ядре, в результате чего управление ими усложняется.

Х-ы функционируют на любом "железе" и поверх любой операционной системы. Единственное требование – способность видеосистемы данной платформы хоть как-то воспроизводить графику.

 

Оконные менеджеры

От современной операционной системы требуется не только стабильность, большие возможности и высокая скорость работы. Кроме всего вышеперечисленного, она должна иметь дружественный интерфейс пользователя. Для этого в Linux существует два вида программ: оконные менеджеры (window managers) и окружения десктопа (desktop environments).

Оконный менеджер (или window manager – менеджер экрана) – это программа, которая, прежде всего, заботится о том, как будут выглядеть ваши окна и определяет, как окна можно будет перемещать, и какие операции над ними можно будет проводить (закрытие, минимизация, максимизация, максимизация только по вертикали и т. д.). Все, что относится к окнам на экране вашего монитора, вменяется в обязанности менеджера окон. Собственно, поэтому он так и называется. Однако современным программам, которые выполняют функции менеджера экрана в системе, приходится также заниматься фоновой картинкой, подвешивать различные иконки на десктоп и так далее.

Менеджер окон занимает второй уровень в иерархии программ графической оболочки X Windows (XFree86 в случае Linux). На первом уровне (самом низком) находится сервер X Windows (XFree86), а на третьем (самом высоком) - прикладные программы, которые взаимодействуют с сервером XFree86 либо напрямую, либо через менеджер окон при помощи специального набора библиотек (Motif, Lesstif, KDElibs, GTK и т. д.). Менеджеры окон в системах, работающих под управлением X Window (это справедливо и для XFree86 – свободно распространяемой версии X Window для Linux и FreeBSD), отвечают за управление визуальными компонентами экрана (окна, кнопки, рамки, строки текста).

В X Windows (Xfree86) можно работать и без какого-либо менеджера окон. Однако даже на минимальный комфорт в таком случае надеяться не следует. Ваши окна не будут иметь заголовка и границ, а следовательно, их нельзя будет двигать по рабочему столу и изменять размеры. Так что менеджер экрана вам просто необходим для того, чтобы чувствовать себя человеком. Примеры оконных менеджеров:

IceWM – несмотря на малые размеры, обладает всеми возможностями нормального менеджера окон. Он даже позволяет устанавливать различные темы. IceWM написан на C++ с самого начала, т. е. в нем не используется исходный код ни от какого другого менеджера окон. IceWM полностью совместим с GNOME и частично с KDE, но может использоваться и отдельно.

AfterStep – основан на другом менеджере окон - Fvwm, но переработан таким образом, чтобы воспроизводить внешний вид и поведение NextStep. К главным характеристикам AfterStep, которые делают его привлекательным для пользователей, можно отнести следующее: стабильность и вдумчивую проработку всех компонентов, совместимость с большинством библиотек и менеджеров экрана (GNOME, KDE, Motif), размер основного исполняемого кода составляет не более 750 килобайт.

Окружение рабочего стола или среда рабочего стола возлагает на свои плечи заботу обо всем, что касается комфортной работы пользователя в графической оболочке операционной системы. Как и большинство оконных менеджеров, все среды рабочего стола имеют средства для переключения между виртуальными экранами. Современные среды рабочего стола (к примеру, GNOME и KDE) базируются на определенной библиотеке графического интерфейса пользователя и включают в свой дистрибутив разнообразные полезные программы (редакторы, электронные записные книжки, органайзеры, простенькие игры, почтовые клиенты и прочее). Примеры сред рабочего стола:

GNOME (GNU Network Object Model Environment) – это окружение рабочего стола, основанное на библиотеке GTK+. Имеет высокую степень интеграции с Интернетом, множество опций настройки под конкретного пользователя и берет на себя дополнительные функции управления пользовательским интерфейсом. GNOME очень удобен и гибок.

Основанный на библиотеке GTK+, GNOME содержит в своей поставке множество приложений, построенных на этой библиотеке. Различные текстовые редакторы и редакторы электронных таблиц, календари, графические редакторы и много чего еще. Кстати, GIMP (GNU Image Manipulation Program) - самый известный редактор растровой графики для Linux – тоже основан на библиотеке GTK. Вернее будет сказать, что библиотека GTK обязана своим рождением GIMP'у. Приложения, написанные для GTK и GNOME, обычно можно отличить по первой букве "G" в названии. Например: gnumeric, gftp, GQView.

KDE (K Desktop Environment) – это среда рабочего стола, основанная на библиотеке QT. KDE это не просто менеджер окон, а полный комплект "окружения рабочего стола" (desktop environment). Кроме библиотек и программ, определяющих внешний вид экрана под Linux, в него входят программы для организации удаленного доступа к Интернету (dial-up), органайзер, текстовый редактор с подцветкой синтаксиса и множество других приложений для комфортной работы.

KDE по функциональности во многом похож на Windows. То же стремление облегчить жизнь пользователю до максимума, что этой системе успешно удается. Если вам понадобилась программа, чтобы что-то сделать, то, скорее всего, вы найдете ее в KDE. Процесс установки связи с интернет-провайдером не займет много времени и сил, если вы воспользуетесь программой kppp, входящей в состав KDE. По аналогии с GNOME, название приложения для KDE начинается с буквы "K": Konsole, Klock, Killustrator и т. д.

 

 

Вопросы для самоконтроля:

 

1 Встраивается ли в Linux пользовательский интерфейс в ядро системы?

2 Что такое X Window?

3 Какую сетевую модель использует X Window для своей работы?

4 Какой протокол реализует работу сетевой модели X Window?

5 Какая главная библиотека для работы Х-ов? В чем назначение этой библиотеки?

6 В чем назначение Х-терминала?

7 В чем назначение Х-сервера?

8 Что такое оконный менеджер и в чем заключается его работа?

9 Из каких уровней состоит иерархия программ графической оболочки X Windows?

10 Что такое XFree86?

11 В чем назначение окружения рабочего стола (среды рабочего стола)?

12 В чем отличие сред GNOME и KDE


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: