Lecture

Created: 23.07.2006 | Level: for all | Access: free
Lecture 8:

Графический интерфейс

Расширенные графические среды типа Motif, CDE, KDE, GNOME, GNUStep и т. д. не замещают перечисленные выше компоненты системы X Window, а расширяют и дополняют их. KDE, например, добавляет библиотеку графических функций Qt в дополнение к X-Lib. Motif имеет собственный набор графических функций. GNOME использует библиотеку GTk+, которая составляет основу GIMP. Кроме того, в GNOME используется также CORBA (The Common Object Request Broker Architecture - универсальная архитектура посредничества при запросе объектов) и библиотека Imlib для дальнейшего расширения возможностей графической подсистемы.

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

Кстати, в Linux (и вообще в UNIX) нет жесткого деления между графическими и текстовыми программами, как в MS Windows или OS/2. С точки зрения системы нет разницы между программой, работающей в графике, и обычной. Программы для графического режима запускают как обычные программы, т. е. из командной строки, из Midnight Comander и т.п. Единственным необходимым условием для их работы является то, что должен работать X-сервер. При необходимости программа сама обращается к X-серверу (через TCP/IP в общем случае, и через локальный сокет в частном, когда X-сервер и X-клиент работают на одной машине). Делает она путем вызова библиотечных функций из X-lib. Все, что ей надо для работы, это знать, где искать X-сервер (для этого используется либо переменная окружения DISPLAY, либо опция в командной строке). Более того, существуют даже программы, которые умеют работать и с X-сервером и с обычным текстовым терминалом (например, emacs ) и сами разбираются при старте, как именно им работать в данном случае.

Конечно, приведенный выше рис. 7.1 очень схематичен. К примеру, как мы уже упоминали, взаимодействие библиотеки X lib с сервером в общем случае осуществляется по протоколам TCP/IP. Так что следовало бы еще отобразить программное обеспечение, реализующее протоколы TCP/IP. Еще одним важным ресурсом графической подсистемы являются шрифты. Оперировать со шрифтами может как непосредственно X-сервер, так и специальная программа, которая называется сервер шрифтов, и которую также следовало включить в рисунок.

Для каждого из типовых компонентов графической системы существует множество конкретных реализаций. В состав пакета XFree86 версии 3 входят несколько различных серверов, причем выбор конкретного сервера зависит от того, какие у вас видеоплата и монитор. Например, сервер XF86_Mono - это сервер для монохромных видео-режимов; XF86_S3 - сервер для карт, основанных на S3; XF86_S3V - сервер для S3 ViRGE и ViRGE/VX; XF86_SVGA - сервер для карт, работающих в режимах Super-VGA. Последнюю версию списка поддерживаемых X-сервером видеокарт вы можете найти на сайте http://www.xfree86.org/.

В четвертой версии XFree86 уже один X-сервер для большинства видеоадаптеров, называется он XFree86 и располагается в каталоге /usr/X11R6/bin/. Обычно на него делается ссылка с именем X, так что запустить X-сервер можно просто введя в командной строке букву X.

Различных менеджеров окон тоже существует очень много, и вы можете использовать любой из них по своему выбору. Вот несколько примеров.

  • fvwm - Free Virtual Window Manager.
  • fvwm2 - улучшенный вариант fvwm, позволяющий, в частности, использовать различные темы рабочего стола и динамические меню. Официальный сайт разработчиков FVWM и FVWM2 - http://www.hpc.uh.edu/fvwm/.
  • fvwm95 - менеджер окон с графическим интерфейсом в стиле Windows 95.
  • IceWM (http://berta.fri.uni-lj.si/~markom/icewm) - это оконный менеджер, который может эмулировать различные стандарты оконных систем (в частности, OS/2 Workplace Shell), имеет, по некоторым отзывам, довольно маленький обьем и быстро работает.
  • Enlightenment (http://www.Enlightenment.org) - один из самых развитых менеджеров окон.

Можно упомянуть также Motif - коммерческий продукт, используемый во многих UNIX-системах, или его бесплатный аналог LessTif (http://www.lesstif.org), а также Xview - Linux-версию интерфейса OpenLook фирмы Sun.

Описание нескольких оконных менеджеров ( Window Maker, IceWM, FLWM, FailSafe ) и их сравнительный анализ вы можете найти в книге А.Федорчука [П1.6].

Разные менеджеры окон могут обеспечивать различный вид окон за счет использования различных рамок и оконных меню. Но все они используют одну и ту же базовую графическую утилиту X Window - X сервер.

Итак, вы теперь в общих чертах представляете, из каких основных частей формируется графический интерфейс в Linux. Как видите, строится он по модульному принципу и вполне возможно "собрать" его самостоятельно из отдельных компонент. Но для начинающего пользователя этот путь не самый легкий. К счастью, и не обязательно этим путем идти, поскольку разработаны (и включены практически во все дистрибутивы) так называемые интегрированные графические среды. Наиболее известными представителями таких сред являются KDE (http://www.kde.org) и GNOME (http://www.gnome.org).

Основу интегрированной графической среды KDE (K Desktop Enviroment) образует расширенная библиотека графических функций Qt фирмы TrollTech (http://www.trolltech.com/). С использованием этой библиотеки построены собственный оконный менеджер kwm, файл-менеджер kfm, центр управления KDE (аналог панели управления Windows) и множество других компонентов, вплоть до собственного офисного пакета KOffice. Сказанное не означает, что все эти компоненты разрабатываются какой-то одной фирмой. Просто различные и независимые разработчики используют единый подход, единую идеологию создания и оформления программных продуктов. В результате получается функционально полный пакет программ, в рамках которого могут быть решены практически все задачи управления компьютером и программной средой (если не сказать, что вообще все задачи, решаемые на компьютере).

В состав версии 2.1 KDE включен файловый менеджер Konqueror, который предоставляет уникальные возможности доступа к файлам. Кроме того, что он позволяет просматривать файлы большинства известных форматов на локальных дисках, он является и интернет-браузером, по своим возможностям вполне сравнимым с Internet Explorer или Netscape Navigator.

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

Существуют и другие разработки интегрированных графических сред, которые, однако, пока не достигли той степени развития, как KDE или GNOME, например, Xfce (http://www.xfce.org), dfm (http://www-c.informatik.uni-hannover.de/~kaiser/dfm/dfm.html) и другие.

До недавнего времени установка и настройка графического интерфейса Linux представляла собой довольно непростую задачу. Однако программы инсталяции последних версий дистрибутивов Linux (например, русифицированой версии Red Hat Linux 7.1) уже вполне успешно с ней справляются, автоматически определяя тип монитора и видеоадаптера и выбирая подходящее разрешение экрана. Но я все же приведу здесь некоторые рекомендации по настройке X Window для начинающих пользователей, имея в виду, что с некоторыми вариантами аппаратного обеспечения настройки все же придется подбирать вручную. А для того, чтобы подходить к процессу настройки осознанно, надо в общих чертах представлять, как работает видеосистема вашего компьютера.