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

Mary Hubley, Sheila Osmundsen, 25.10.01.

Зараз існують два найпоширеніші графічні інтерфейси під 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.
CDEGNOMEKDE
Мова програмуванняCCC++
Інтерфейс взаємодії із залізомX Windows SystemXFree86XFree86
Chicago(?)128,013167,047200,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 був створений у США.(Хоча зараз їх розробники перебувають у всьому світі). KDE має велику локалізацію понад 50 мовами, а Gnome у цьому питанні йде позаду. KDE ставиться до відмінностей ліцензій філософськи, а різні борці за чистоту ліцензій не включають KDE у свої дистрибутиви (кілька років KDE навіть не входив до Red Hat).

Таблиця 2: Компанії, які підтримують KDE та Gnome (короткий список).

Джерело: 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.