Графични интерфейси Линукс перспектива
Мери Хъбли, Шийла Осмундсен, 25.10.01.
Сега има два най-често срещани графични интерфейса под Linux:
1)KDE- K работна среда. 2)GNOME- среда на GNU мрежов обектен модел.
И двата проекта са важни за напредъка на Linux и за конкуренцията с Windows.
GUI е набор от икони, менюта, диалогови прозорци, панели, прозорци и други графични елементи, които позволяват на потребителите лесно да работят с компютър и приложения. Развитието на графичните интерфейси започва в началото на 80-те години. Идеята за графичния потребителски интерфейс като заместител на командния ред за първи път възникна в изследователския център на Xerox в Пало Алто. Apple първо го използва на компютъра Lisa, а по-късно на Macintosh. След тях Microsoft започна да прави свой собствен графичен интерфейс, наречен Windows. Сега се използва на 95% от настолните компютри и благодарение на него персоналните компютри са се разпространили толкова широко.
Разработването на Linux GUI започна с работата на Free Software Foundation, когато беше направен опит да се разработи единен графичен интерфейс за всички Unix-подобни системи. Организацията OSF се застъпи за създаването на единен графичен интерфейс за всички варианти на Unix. Тази работа доведе до създаването на X Window System и OSF/Motif, а общият резултат беше CDE (Common Desktop Environment - Обща работна среда). През 1996 г. технологията CDE беше поета от The Open Group.
Структурата, разработена в CDE, стана обща за всички десктоп среди на Unix/Linux:
* Интерфейс за взаимодействие с желязо. X Window System формира основата на всички графични интерфейси. Той предоставя основни графични функции (цветове, чертане на графични примитиви, текстов изход и т.н.) и работи като сървър, към койтопрограмите са свързани и дават различни команди. X Window работи по същия начин на всеки хардуер и на всяка операционна система. Например, клиентските програми могат да се изпълняват под Unix, а сървърът под Windows. * Набор от елементи. В CDE това е Motif. Шаблонът съдържа библиотеки за писане на приложения, които използват менюта, бутони, икони и други графични елементи. Той е отговорен за това как X Window ще нарисува всичко това. * Графична среда. Използва интерфейс за взаимодействие с хардуер, набор от елементи и различни добавки, които могат да включват: - мениджър на прозорци, който контролира местоположението и външния вид на прозорците; - мениджър на сесии, който контролира потребителските елементи и настройки; -файлов мениджър и десктоп мениджър; -Приложения (калкулатор, бележник и др.); -Система за комуникация между приложенията.
В средата на 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++ |
Хардуерен интерфейс | X Window система | XFree86 | XFree86 |
Чикаго(?) | 128.013 | 167.047 | 200,482 |
Библиотеки с елементи | Мотив/Отворен мотив (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 лиценза на по-подходящ за проекти с отворен код, но Gnome вече се развиваше. Сега и двата проекта имат свои собствени ентусиасти и защитници и се работи за подобряване на тяхната съвместимост (например, създаден е общ стандарт за плъзгане и пускане между приложенията на KDE и Gnome).
Прилики и разлики:
И KDE, и Gnome са интегрирани десктоп среди. Потребителите работят с интерфейсни елементи и програми. Целта и на двата проекта е да направят GUI по-интуитивен, така че всеки потребител, идващ от Windows, да може да работи без проблеми. И двата проекта имат концепция за теми от дълго време - така че интерфейсът може да бъде напълно променен.
Различни сравнения стигат до едно и също заключение, че KDE е по-зряла и стабилна графична среда, докато Gnome е по-персонализирана. KDE започна да се разработва централно, така че е повечеинтегриран. И Gnome може да използва различни части от други интерфейси (например мениджър на прозорци).
KDE е написан на C++, а Gnome е написан на C, но и двата имат версии на C, C++ и други езици. Въпреки че са базирани на една и съща система X Window, те може да са в конфликт на по-високи нива. Сътрудничеството между KDE и Gnome вече е важна тема за разработчиците на двата проекта. Например, ако цветовите настройки са променени в програма Gnome, тогава трябва да ги накарате да работят и под KDE. Един от проектите е разработването на единен стандарт за икони и миниатюри за файлови мениджъри.
Обръща се внимание и на съвместимостта на компонентите. KDE е изграден върху мощна компонентна архитектура, наречена Kparts, подобна на Microsoft COM, със собствена система за комуникация между компонентите. Gnome, написан на C, има компонентна псевдо-структура, наречена Bonobo, и използва олекотен CORBA-базиран ORB компонент за комуникация между компонентите. Разработчиците не могат да пишат приложения, които използват компоненти от двете страни едновременно. Компонентите на KDE и Gnome всъщност не са свързани. Но Red Hat, Trolltech и няколко други компании са разработили един единствен протокол за плъзгане и пускане, който се поддържа от двете системи и частично изглажда несъвместимостта на компонентите.
KDE лига и Gnome организация:
Наскоро се сформира организацията Gnome, последвана от лигата KDE. Сега KDE и Gnome вече могат да се нарекат различни личности - те се различават не само в техническо отношение, но се поддържат от различни организации и корпорации, имат различни лицензи и могат да бъдат разграничени дори по националност - проектът KDE е основан в Германия, така че често се смята за "европейски", а Gnome е създаден в САЩ.(Въпреки че сега техните разработчици са разположени по целия свят). KDE има широка локализация на над 50 езика, а Gnome изостава в това отношение. KDE е по-философски относно разликите в лицензите и различни лицензионни пуристи не включват KDE в своите дистрибуции (KDE дори не беше част от Red Hat от няколко години).
Таблица 2: Компании, поддържащи KDE и Gnome (кратък списък). |
Съвместимост с други системи:
Мотив и CDE. Традиционно Gnome и KDE се свързват с Linux и използването им е по-рядко срещано в други Unix системи. Motif и CDE, като традиционни Unix графични среди, също се развиха заедно с Gnome и KDE. Open Group пусна Open Motif, за да повиши интереса към тази графична среда, но текущата тенденция е да се заменят традиционните интерфейси на Unix с по-усъвършенствани интерфейси на Linux. Тази посока беше засилена, когато HP и Sun Microsystems обявиха използването на Gnome в техните операционни системи HP-UX и Solaris.
Windows. X Window Server може да се изпълнява на всяка платформа. QT библиотеките на KDE са междуплатформени за всички Unix, Windows и Mac OS X. Също така новите библиотеки на Gnome 2.0 са пренесени към Win32. GUI от по-високо ниво все още не е пренесен, но се работи по win32 порт на KDE 1. Започва и работа по взаимодействието на 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 са остарели и предлагат използването на GUI, написан специално за Java, наречен Swing. Движението вече е в ход и сега Gnome и KDE вече се пренасят към Java. Например Jana-Gnome е програма за превод на Java заявки в заявки, разбираеми от библиотеките на Gnome.