<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

История

Система X-Window была создана совместно Массачусеттским Технологическим Институтом (MIT) и фирмой DEC в 1984 году.

Последняя версия называется X11R6 (сокращение от "X11 release 6"), обычно для краткости используется название "X11", или даже просто "X". Полное название системы -- X Window System, сокращенно -- X-Window (именно "Window" -- никакого "s" на конце нет!).

X11 -- сетевая система

Система X-Window построена по клиент-серверной модели. Она состоит из двух частей: X-сервера и прикладных программ ("клиентов"), которые пользуются услугами X-сервера для взаимодействия с экраном и с пользователем.

X-сервер -- это единственная программа, "общающаяся с железом" -- с монитором, клавиатурой и мышью; эти три компонента объединяются термином дисплей. Прикладные же программы взаимодействуют с X-сервером при помощи "программных каналов", и могут быть запущены с другого компьютера -- при этом связь будет идти через сеть (по протоколу TCP/IP).

X11 -- распределенная система

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

Реализации как X-серверов, так и приложений под X-Window существуют практически во всех современных операционных системах -- во всех клонах Unix, в VMS, Dos, Windows, MacOS. И они полностью совместимы друг с другом -- можно запустить программу на Unix-машине, и работать с ней на Windows-компьютере.

Существенным отличием от Windows и Mac в Unix является то, что графическая оболочка -- это не жизненно важная часть операционной системы, а всего лишь дополнительная программа, без которой Unix будет продолжать нормально функционировать (а видели ли вы когда нибудь Windows NT, способную работать без графического интерфейса?).

Замечание

Название "X-сервер" вначале приводит к путанице -- ведь обычно сервер -- это какой-то другой компьютер, услугами которого мы пользуемся (например, файловый сервер Novell, или большой Unix-сервер, на который мы заходим по telnet).

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

Window Manager и его функции

X-сервер -- программа в определенном смысле довольно глупая. Все, что он умеет -- это выделять программам прямоугольные области экрана ("окна") и рисовать в них то, что программы попросят; плюс он знает, что одно окошко может располагаться поверх другого, и правильно их отрисовывает.

Но ведь надо еще изобразить рамку вокруг окошка, заголовок над ним, уметь "сворачивать" окно в пиктограмму и еще многое другое. Этим занимается специальная программа, называемая "Window Manager" (дословно "менеджер окон").

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

Одновременно экран может обслуживаться ровно одним window manager'ом. Поскольку window manager -- это не интегральная часть системы X-Window, то их существует огромное количество. Вот лишь самые часто используемые: Fvwm, AfterStep, Mwm, Olwm, KDE. Примеры их внешнего вида есть в следующем разделе, а в разделе "Использование MWM" приведено краткое руководство по работе в X-Window с Mwm.

Библиотеки интерфейсных элементов

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

В X-Window используется многоуровневая реализация интерфейсных элементов. Не вдаваясь в подробности, отметим лишь, что практически никакие программы не взаимодействуют с X-сервером напрямую. Эти функции возложены на компонент Xlib, услугами которого в свою очередь пользуется компонент Xt. В Xt заложена абстракция "интерфейсного элемента" (они в X называются "widgets"), и на основе Xt можно в принципе построить большое количество разнообразных наборов элементов.

Взаимоотношения между X-сервером,библиотеками и программами

Первоначально вместе с X была создана библиотека под названием Athena Widgets, с использованием которой и изготовлены все стандартные (самые "старые") программы -- xterm, xedit, xcals и многие другие. Хотя сейчас Athena Widgets выглядит довольно архаично, написанные с ее использованием программы работают довольно неплохо, и при некотором навыке вполне удобны.

В дальнейшем была создана библиотека Motif, близкая по виду к интерфейсу MS Windows, которая и стала стандартной -- с ее использованием написаны такие программы, как Netscape и Nedit. Полностью вытеснить Athena Widgets Motif так и не смог по причине своей небесплатности.


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел