Сейчас существуют два самых распространенных графических интерфейса под 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 началось с работы Фонда бесплатного программного обеспечения, когда была сделана попытка разработать единый графический интерфейс для всех Unix-подобных систем. Организация OSF выступала за создание единого графического интерфейса для всех вариантов Unix. Эта работа привела к созданию X Window System и OSF/Motif, и общим результатом стала CDE (Common Desktop Enviroment - общая десктопная среда). В 1996 году технология CDE была передана The Open Group.
Структура, разработанная в CDE, стала общей для всех десктопных сред Unix/Linux:
* Интерфейс взаимодействия с железом. Система X Window формирует базу всех графических интерфейсов. Она предоставляет простейшие графические возможности (цвета, рисование графических примитивов, вывод текста, и т.д.), и она запущена как сервер, к которому подключаются программы и дают различные команды. X Window работает одинаково на любой железе и в любой OS. Например, клиентские программы могут быть запущены под Unix, а сервер - под Windows.
* Набор элементов. В CDE это Motif. Набор элементов содержит библиотеки для написания приложений, использующих меню, кнопки, иконки и другие графические элементы. Он является ответственным за то, каким образом X Window будет все это отрисовывать.
* Графическая среда. Использует интерфейс взаимодействия с железом, набор элементов и различные дополнения, которые могут включать: -менеджер окон, контролирующий расположение и внешний вид окон; -менеджер сессий, контролирующий пользовательские элементы и настройки; -файловый менеджер и менеджер рабочего стола; -Приложения (калькулятор, блокнот, etc); -Система связи между приложениями.
В середине 90-х, когда создавался Linux, началась разработка графической среды по аналогу с CDE, но на основе клона X Window System под названием XFree86. Сначала была разработана KDE, известная сейчас как наиболее полная графическая среда, и позже появился Gnome. Сейчас они могут быть запущены на любой Unix-системе, но все равно они по привычке ассоциируются с 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+, основанный на библиотеке GNU Image Manipulation Program (GIMP). | 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, смог работать без проблем. В обоих проектах уже давно есть концепция тем - чтобы интерфейс можно было изменить полностью.
Различные сравнения приходят к одному выводу, что 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.