Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Графические оболочки Линукс

Графические интерфейсы Linux: Перспектива.

// Mary Hubley, Sheila Osmundsen, 10/2001.

Сейчас существуют два самых распространенных графических интерфейса под Linux:

1) KDE - K Desktop Environment.
2) GNOME - GNU Network Object Model Environment.

Оба этих проекта имеют большое значение в продвижении Linux и в конкуренции Линукса с Windows.

Технические основы:

GUI - это набор иконок, меню, диалогов, панелей, окон, и других графических элементов, позволяющих пользователям легко работать с компьютером и приложениями. Развитие графических интерфейсов началось в начале 80-х годов. Идея GUI как замены командной строки впервые возникла в исследовательском центре Xerox's Palo Alto Research Center. Apple впервые применила ее в компьютере Lisa и позже в Macintosh. Следом за ними в Microsoft стали делать свой графический интерефейс под названием Windows. Он и используется сейчас в 95% десктопов, и благодаря ему персональные компьютеры сейчас так широко распространились.

Развитие GUI для Linux началось с работы Фонда бесплатного программного обеспечения, когда была сделана попытка разработать единый графический интерфейс для всех Юниксов. OSF выступала за развитие юзабельности Unix и за создание единого графического интерфейса для всех вариантов Unix. Эта работа привела к созданию X Window System и OSF/Motif, и общим результатом стала CDE (Common Desktop Enviroment - общая десктопная среда). В 1996 году технология CDE была передана The Open Group.

Структура, разработанная в CDE, стала общей для всех десктопных сред Unix/Linux:

* Интерфейс взаимодействия с железом. Система X Window формирует базу всех Open Source графических интерфейсов. Она предоставляет простейшие графические возможности (цвета, рисование графических примитивов, вывод текста, и т.д.), и она запущена как сервер, к которому подключаются программы и дают различные команды. X Window работает одинаково на любой железе и в любой OS. Например, клиентские программы могут быть запущены под Unix, а сервер - под Windows.
* Набор элементов. В CDE это Motif. Набор элементов содержит библиотеки для написания приложений, использующих меню, кнопки, иконки и другие графические элементы. Он является ответственным за то, каким образом X Window будет все это отрисовывать.
* Графическая среда. Использует интерфейс взаимодействия с железом, набор элементов и различные дополнения, которые могут включать: -менеджер окон, контролирующий расположение и внешний вид окон; -менеджер сессий, контролирующий пользовательские элементы и настройки; -файловый менеджер и менеджер рабочего стола; -Приложения (калькулятор, блокнот, etc); -Система связи между приложениями.

В середине 90-х, когда движение Open Source разрабатывало Linux, началась разработка графической среды по аналогу с CDE, но на основе клона X Window System под названием Xfree86. Сначала была разработана KDE, известная сейчас как наиболее полная графическая среда, и позже появился Gnome. Сейчас они могут быть запущены на любом Юниксе, но все равно они по привычке ассоциируются с OS Linux.

Gnome и KDE - почему их два?

В Linux-сообществе постоянно идут дискуссии по этому вопросу. А не лучше ли было бы создать единую графическую среду в противовес Windows, чтобы Linux смотрелся бы в графической среде всегда одинаково? Gnome и KDE имеют различные библиотеки элементов, различное оформление рабочего стола и различные модели разработки.

Таблица 1: Сравнение компонентов: CDE, Gnome и KDE.
  CDE GNOME KDE
Язык программирования C C C++
Интерфейс взаимодействия с железом X Window System XFree86 XFree86
Chicago (Не знаю, что это такое :) - прим. автора рассылки) 128,013 167,047 200,482
Библиотеки элементов Motif/Open Motif (1) GTK+ based on the GNU Image Manipulation Program (GIMP) toolkit Qt
(1) В 2000 году The Open Group выпустила бесплатную версию Open Motif.
Источник: Gartner Research

Существование двух различных графических сред для Linux обьясняется вопросами лицензирования. Проект KDE, основанный в 1996 году, частично основывался на библиотеках QT от норвежской компании Trolltech, которая предоставляла их под лицензией BSD, отличной от GPL. Поэтому в 1997 году появился проект Gnome, целью которого была разработка графической среды, удовлетворяющей лицензии GPL. Потом Trolltech сменила лицензию QT на более подходящую для Open Source-проектов, но Gnome уже развивался. Сейчас у обоих проектов есть свои энтузиасты и защитники, и идет работа для улучшения их совместимости (например, создан общий стандарт Drag&drop между KDE и Gnome приложениями).

Сходства и различия:

И KDE и Gnome - интегрированные рабочие среды. Пользователи работают с элементами интерфейса и программами. Оба этих проекта пытаются сделать интерфейс пользователя более интуитивным - чтобы любой пользователь, пришедший из Windows, смог работать без проблем. В обоих проектах уже давно есть концепция тем, скинов, etc - чтобы интерфейс можно было изменить полностью.

Различные сравнения приходят к одному выводу, что KDE - более развитая и стабильная графическая среда, а Gnome - более настраиваиваемая. KDE начинала разрабатываться централизованно, поэтому она более интегрированная. А Gnome может использовать различные части от других интерфейсов (например - менеджер окон).

KDE написан на C++, а Gnome - на C, но оба они имеют версии на C, C++ и других языках. Хотя они и базируются на едином X Window System, но на более высоких уровнях они могут конфликтовать. Сейчас сотрудничество между KDE и Gnome - важная тема для разработчиков обоих проектов. Например, если настройки цвета были изменены в Gnome-программе, то нужно сделать, чтобы они работали и под KDE. Один из проектов разрабатывает единый стандарт иконок и миниатюр для файловых менеджеров.

Так же уделяется внимание и совместимости компонентов. KDE разрабатывается на мощной архитектуре компонентов под названием KParts, похожей на Microsoft COM, с собственной системой связи между компонентами. Gnome, написанный на C, имеет псевдоструктуру компонентов под названием Bonobo и использует легкий компонент ORB, базированный на CORBA, для связи между компонентами. Разработчики не могут написать приложения, использующие компоненты обоих сторон одновременно. Компоненты KDE и Gnome на самом деле не связаны между собой. Но Red Hat, Trolltech и несколько других компаний разработали единый протокол drag-and-drop, поддерживающийся обоими системами, и частично сглаживающий несовместимость компонентов.

Лига KDE и организация Gnome:

Недавно сформировалась организация Gnome, после чего появилась лига KDE. Сейчас KDE и Gnome уже можно назвать различными персоналиями - они отличаются не только в техническом отношении, но их поддерживают различные организации и корпорации, они имеют разные лицензии, и их можно различить даже по национальному признаку - проект KDE был основан в Германии, поэтому он часто рассматривается как "Европейский", а Gnome был создан в USA. (Хотя сейчас их разработчики находятся по всему миру). KDE имеет обширную локализацию на более 50 языках, а Gnome в этом вопросе идет позади. KDE относится к различиям лицензий более философски, а различные борцы за чистоту лицензий не включают KDE в свои дистрибутивы (несколько лет KDE даже не входил в Red Hat).

Недавно оба проекта были поставлены на финансовую основу. Но их подходы к этому различны. Организация Gnome открыла конференцию Advisory Board для того, чтобы каждый мог поучаствовать в дальнейшем развитии Gnome. Лига KDE принимает финансовую помощь и помощь в рекламе, но они обещают, что на развитие проекта KDE будут влиять только ее участники, поддерживающие Open Source. Сильный защитник Gnome - это Red Hat, который даже не включал KDE в свои дистрибутивы, пока QT не стала доствпной под лицензией GPL. Caldera и SuSE, наоборот, использовали в дистрибутивах только KDE (но SuSE включил Gnome в последнюю версию). Sun обьявили, что они будут использовать Gnome как графический интерфейс для Solaris. IBM поддерживает обе системы и создает систему распознавания голоса для KDE.

Таблица 2: Компании, поддерживающие KDE и Gnome (краткий список).
Организация GNOME (текущие участники Advisory Board)
Лига KDE
Borland, Compaq, HP, IBM, MandrakeSoft
Debian Project
Free Software Foundation
Gnumatic
Object Management Group
Red Flag Linux
Red Hat
Sun Microsystems
TurboLinux
VA Linux
Ximian
Borland, Compaq, HP, IBM, MandrakeSoft
Caldera
Fujitsu Siemens
Future Technologies
HancomLinux
Klaralvdalens Datakonsult
Mizi Research, Inc.
SuSE
TurboLinux
Trolltech
Источник: Gartner Research

Совместимость с другими системами:

Motif и CDE. Традиционно Gnome и KDE ассоциируются с Linux, и на других Юниксах их использование менее принято. Motif и CDE, как традиционные графически среды для Unix, тоже развивались вместе с Gnome и KDE. Open Group выпустил Open Motif для поднятия интереса к этой графической среде, но главное направление сейчас - замена традиционных Unix-интерфейсов на более продвинутые интерфейсы Linux. Это направление усилилось, когда HP и Sun Microsystems обьявили об использовании Gnome в своих операционных системах HP-UX и Solaris.

Windows. Сервер X Window можно запусить на любой платформе. Библиотеки QT от KDE - кроссплатформенные для всех Юниксов, Windows и Mac OS X. Так же новые библиотеки Gnome 2.0 портированы на Win32. Более высокий уровень графического интерфейса портирован еще не был, но ведется работа над портом KDE 1 на Win32. Так же начинается работа над взаимодействием Linux и Windows программ - например, электронные таблицы Gnumeric могут взаимодействовать с Excel.

Java. Хотя в сообществе Linux традиционные языки программирования - это C и C++, но Java тоже немного продвинулась вперед. Red Hat, ведущая компания Linux, пока не предлагет свою JVM (Java Virtual Machine) по причиам того, что Sun, IBM и другие не предлагают свои JVM под лицензией GPL. Но они разработали GNU компилятор для Java под лицензией GPL. Некоторые энтузиасты Java утверждают, что технологии, на которых базируются KDE и Gnome, уже устарели, и предлагают использовать графический интерфейс, написанный специально для Java, под названием Swing. Движение уже идет, и сейчас Gnome и KDE уже переносятся на Java. Например, Jana-Gnome - это программа для перевода запросов Java в запросы, понятные библиотекам Gnome.