KDE: гений чистой красоты
В последние несколько лет заметен интерес к операционным системам с открытым кодом в качестве настольной платформы. По сути, другого варианта у пользователя, выбирающего операционную систему, отличную от семейства Windows, практически нет – в свое время такие интересные и успешные проекты, как OS/2 и BeOS, не выдержали конкурентной борьбы в силу различных причин, в первую очередь из-за неграмотного маркетинга.
Не станем рассуждать о причинах перехода на открытые ОС. Эта глубочайшая тема вполне может служить предметом для написания целой книги. Стоит лишь начать, и поговорка "коготок увяз – всей птичке пропасть" получает свое практическое воплощение: придется упомянуть и надежность ПО, и вопросы патентования и лицензирования программного обеспечения, и, конечно, вспомнить идеолога движения GNU Ричарда Столлмана вместе со всей его "религией" и так далее. Тем не менее явление перехода на альтернативные системы имеет место, причем это не единичные случаи, а достаточно массовая миграция. Процентное соотношение числа инсталлированных систем семейства Windows и Linux/BSD на настольных компьютерах выглядит пока неубедительным, но показательные примеры использования Linux имеются: в муниципалитете германского Мюнхена, норвежского Бергена, в различных структурах и ведомствах разных стран. В рамках этой статьи примем за базовую систему именно Linux, точнее GNU/Linux, хотя все нижесказанное может быть применено и к Free/Open/NetBSD, Solaris и прочим Unix-like операционным системам.
В чистом виде GNU/Linux выглядит как совокупность ядра и небольшого количества базовых библиотек и утилит – условно говоря, пользователь может работать лишь с консолью и строкой ввода. Ни о каком более развитом интерфейсе нет и речи. Для огромного круга задач такой функциональности хватает с лихвой, однако, если уж Linux-сообщество направило усилия на захват пользовательского рынка настольных систем, необходимо нечто гораздо более внушительное. Для обеспечения работы с графикой в Linux предусмотрена "мистическая" структура под названием X-сервер, возраст которого намного превышает возраст самого Linux. X-сервер управляет видеорежимами, средствами пользовательского ввода и предоставляет базовые возможности работы с графическими примитивами. В действительности возможности X-сервера намного шире, но мы примем за основу именно эти. Запуск X-сервера позволяет наблюдать графический однотонный экран с одиноким курсором мыши – для выполнения каких-то конкретных задач требуется запустить X-клиент, в качестве которого на начальном этапе выступает менеджер окон.
А менеджер окон – это уже интерфейс, с которым взаимодействует пользователь. Количество разнообразных оконных менеджеров столь велико, что перечислить их не способен, пожалуй, никто. Имеются как крайне аскетичные решения (например, TWM – менеджер окон, изначально предусмотренный в поставке X-сервера), так и мощные графические среды GNOME и KDE. Выбор менеджера окон весьма непростая задача, и каждый пользователь, как правило, решает ее сообразно собственным предпочтениям и требованиям к функциональности. Последняя, кстати, обусловливает очень многое, в первую очередь требовательность менеджера окон к аппаратным ресурсам компьютера и скорость работы самого менеджера.
Излюбленная тема на многих интернет-форумах – выбор оконного менеджера. Когда, казалось бы, сказано все, что только можно сказать, появляется следующая версия любого менеджера окон, и страсти разгораются с новой силой. Всех пользователей Linux можно условно разделить на две большие группы: поклонников легковесных и скоростных менеджеров (например, WindowMaker, IceWM или Fluxbox) и любителей обстоятельных интегрированных рабочих сред KDE и GNOME – между которыми также никогда не затихает словесная перепалка. Совершенно ясно одно: для широкого внедрения Linux на настольные компьютеры легкие оконные менеджеры не годятся. Оставим споры фанатам и трезво посмотрим на вещи. Крупнейшие производители дистрибутивов Linux уже давно определились с выбором основной графической среды, GNOME или KDE. И поступили так неспроста: чем аскетичнее менеджер окон, тем больше времени и усилий необходимо потратить на приведение его к работоспособному виду. Я не имею в виду, что запуск того же IceWM не позволит ничего сделать, – но количество операций по настройке, которые необходимо выполнить, прежде чем использовать IceWM, к примеру, в компании среднего уровня, – несовместимо со здравым смыслом. Что и говорить – зачастую такая утилитарная операция, как замена одного шрифта в пользовательском интерфейсе на другой, требует выяснения точного названия этого шрифта и ручного прописывания длинной строки с этим названием в файле конфигурации.
По этой и многим другим причинам стандартом де-факто в компаниях, решивших использовать GNU/Linux на рабочих ПК, стали рабочие среды KDE или GNOME. Вот тут-то и можно остановиться на достоинствах и недостатках обеих desktop environment (очень точное определение, ведь GNOME и KDE – это уже не только оконные менеджеры). Выбор рабочей среды не является радикальным – в них можно выполнять приложения друг друга при наличии соответствующих библиотек. Многие разработчики программного обеспечения на этапе компиляции программы из исходных текстов дают возможность выбрать, где же будет использоваться их продукт, хотя чаще программа рассчитана на применение в какой-то определенной рабочей среде. Как уже отмечалось, X-сервер не предоставляет особого богатства элементов пользовательского интерфейса. Разработчикам и GNOME, и KDE пришлось воспользоваться сторонними продуктами, отвечающими за отрисовку кнопок, линеек прокрутки и всего того, с чем взаимодействует пользователь, – это так называемые тулкиты (toolkits). Для GNOME принята за основу библиотека GTK, изначально написанная специально для создания прекрасного графического редактора GIMP (сама аббревиатура GTK расшифровывается как GIMP ToolKit, а не как GNOME ToolKit), а для KDE – библиотека Qt, разработанная норвежской компанией TrollTech.
Далее будем говорить только о KDE, поскольку именно эта рабочая среда является предметом нашего рассмотрения. Итак, Qt – библиотека классов языка C++ с некогда сомнительной лицензионной чистотой, давшей в свое время повод для многих пересудов, предрекавших скорую гибель проекта KDE. Дело в том, что Qt является кросс-платформенной библиотекой с двойным лицензированием. Это означает, что, если Qt задействована в написании коммерческого программного обеспечения, разработчик обязан заплатить компании TrollTech за ее использование. Пример – Windows-ПО от Kerio, Kerio WinRoute и Kerio MailServer. Если ознакомиться с содержимым их каталогов, там непременно окажется файл Qt.dll. Да и пользователи этих продуктов обязательно должны были заметить, что WinRoute и MailServer выглядят несколько иначе, чем привычные Windows-программы. Если же программист решил создать некоммерческий продукт с открытыми исходными текстами – ничто не может помешать ему загрузить с веб-сайта TrollTech-архив с исходными текстами Qt и программировать в свое удовольствие. Кроме того, существует версия Qt для создания программного пользовательского интерфейса разнообразных потребительских и мобильных устройств на базе ОС Linux, она называется Qtopia.
Кросс-платформенность библиотеки Qt является одновременно ее достоинством и недостатком. Достоинство заключается в высокой переносимости программ на базе Qt, а недостаток – в вынужденном оперировании с самым высоким "слоем" операционной системы, без использования полезных, но специфических для каждой ОС архитектурных возможностей. Этому, а также применению C++ Qt-интерфейс во многом обязан некоторой "задумчивостью", на которую весьма часто жалуются пользователи Linux. TrollTech и рады бы задействовать всю функциональность X-сервера, да кросс-платформенность пострадает.
На сегодня Qt 4 – последняя версия, однако рабочая среда KDE написана на основе версии 3.3.5. Дело в том, что программисты проекта KDE маркируют версии своей рабочей среды таким образом, что высшая версия KDE соответствует высшей версии Qt, – следовательно, последняя версия KDE сейчас обозначается как 3.x, если быть точным – 3.4.1. А коль скоро имеется Qt 4, то и KDE 4 не за горами.
Проекту KDE без малого десять лет – огромный срок для Linux-сообщества. Достаточно интересны причины, побудившие немецких программистов приступить к созданию такого масштабного рабочего окружения, они изложены в самом первом, историческом анонсе KDE. По замыслу создателей, Unix-системам катастрофически не хватало полноценной рабочей среды для конечного пользователя – поэтому ее требовалось написать. Предложенное название KDE расшифровывается просто: Kool Desktop Environment. Почему Kool, а не Cool? По всей видимости, Матиасу Эттриху, "отцу" KDE, это показалось стильным. С тех времен литера "К" стала главной в алфавите для многих поклонников и программистов KDE. Эттрих широко известен как создатель программы LyX – кстати, именно в связи с работой над LyX он объявил о наборе программистов в проект KDE, самому полностью реализовать грандиозное начинание ему было не под силу.
На начальном этапе планировалось, что KDE будет включать в себя такие компоненты, как панель задач, файловый менеджер, почтовый клиент, текстовый редактор, терминальная программа, программа для просмотра изображений, справочная система на основе HTML, менеджер окон, системные утилиты, игры и, конечно, прикладные программы. Если вспомнить, что это было в 1996 году, то понимаешь: амбиции Эттриха шли практически вровень с возможностями Windows 95, а точнее – Windows 95 и CDE, графической рабочей среды Sun. В своем анонсе он аргументировал выбор в пользу Qt – на то время существовал целый "зоопарк" различных библиотек для создания полноценного пользовательского интерфейса, но ни одна из них не предоставляла такой, как у Qt, функциональности и легкости написания кода. Сейчас, когда за плечами Эттриха уже три основные версии KDE, самое время вспомнить его слова о том, что, имея команду в 20-30 программистов, к концу 97 года он сможет явить миру одну из самых грандиозных разработок мира Linux, которая нужна как воздух. На самом деле это произошло на полгода позже, 12 июля 1998-го.
Действительно, в то время типичное рабочее место Linux-пользователя напоминало вавилонское столпотворение. Масса программ, практически не связанных друг с другом, каждая написана на базе собственного тулкита, который автоматически подгружается в память при запуске программы. Ортодоксальные "юниксоиды" могут возразить, что, мол, это и есть пресловутый Unix-way, когда для решения задачи используется не крупное универсальное средство, а связка разрозненных узкоспециализированных мелких утилит. Безусловно, такое мнение имеет право на существование, тем более что в мире Unix любая задача может быть решена как минимум двумя путями. Но если речь идет о полноценном рабочем окружении – такой подход скорее вредит, чем идет на пользу.
Так или иначе, KDE вышла – сначала в виде предварительных бета-версий и пре-релизов, а затем как первая законченная версия. Сказать, что это событие вызвало фурор, все равно что не сказать ничего – рабочая среда KDE сразу же стала фаворитом у пользователей и составителей дистрибутивов, прочно обосновавшись на огромном количестве Linux-компьютеров. С тех пор многие пользователи даже не пытались пробовать иную рабочую среду, ведь KDE представляет собой практически полноценное самодостаточное рабочее окружение со всеми необходимыми для работы и настройки средствами и инструментами. Если кто-либо из читателей сталкивался с KDE первой версии, он обязательно вспомнит привлекательный интерфейс, изначально поддерживающий разнообразные пользовательские темы (то, что сейчас принято называть "скинами"), потрясающую гибкость конфигурации, стабильность и неплохую скорость работы. Между прочим, отточенность интерфейса KDE просматривалась и в других продуктах – например, Windows 200 сразу же после установки обладала цветовой гаммой, точь-в-точь напоминающей KDE 1 с настройками по умолчанию.
Разработка KDE не была бы возможна без спонсорской помощи, которую оказывали сообществу программистов крупнейшие компании, специализирующиеся на продвижении Linux-решений. Спонсором первой версии выступила известная германская S.u.S.E. Понимая необходимость финансовой поддержки разработок, гранды индустрии наперебой стали предлагать программистам свою помощь – а в это время уже кипела работа над KDE 2. На сайте проекта с благодарностью отмечена поддержка на этом этапе со стороны таких корпораций, как IBM, Corel, Red Hat и Fujitsu Siemens.
Выход второй версии рабочей среды состоялся позднее, чем предполагали участники проекта, – 15 сентября 1999 года. К тому моменту работой над проектом занимались сотни программистов по всему миру, и результат ее оказался впечатляющим. Пользователям были предложены значительные нововведения: полностью переработанный интерфейс, ничем не напоминающий KDE 1 и основанный, естественно, на Qt 2, полноценный веб-браузер Konqueror на базе движка KHTML (схож с движком Gecko – Mozilla/Netscape/Firefox и клоны – и используется также в браузере Safari для платформы MacOS X), звуковая подсистема aRTS – Analogue RealTime Synthesizer и прочие. Однако за внешним великолепием скрывались и проблемы, в первую очередь медлительность в работе. Это во многом предопределило не слишком долгую жизнь KDE 2, а вскоре появилась версия KDE 3.0.
Интересно мнение разработчиков о медлительности KDE по сравнению, скажем, с WindowMaker: "Сравнивать KDE и WindowMaker – все равно что сравнивать дельтаплан с аэробусом. Кому-то дельтаплан покажется более удобным, но сотню пассажиров на него не усадишь". Даже сейчас, если взять одну исходную аппаратную платформу и последовательно установить в целях эксперимента все подверсии третьей линейки KDE, обнаружится, что каждая последующая выигрывает в скорости работы у предыдущей. Отрадно, что разработчики не уповают на всемогущие Pentium 4 и Athlon, не считая чужие гигагерцы, а доводят до совершенства программный код. Если же воспользоваться методом установки рабочей среды не из предварительно собранных пакетов, а из исходных текстов, скрупулезно скомпилировав с оптимизацией вручную каждый пакет и библиотеку, скорость работы KDE окажется поразительной. Цена за скорость последующей работы – время, потраченное на установку. Эта процедура на машине с процессором 2,4 ГГц занимает целый день – с утра до вечера.
На сегодня самая свежая версия рабочей среды – KDE 3.4.1. Участники проекта утверждают, что это, скорее всего, последний релиз третьей линейки, следующая версия будет уже с индексом 4. Установить 3.4.1 весьма желательно: в этом релизе не добавлено новых возможностей, но исправлены некоторые существенные ошибки, обнаруженные после выпуска версии 3.4. Список известных ошибок опубликован на сайте www.kde.org, и нужно сказать, что они имеются практически во всех компонентах проекта. Для работы достаточно трех основных пакетов KDE: arts, kdelibs и kdebase. И, конечно, библиотека Qt со всеми ее зависимостями. В результате получаем работоспособную среду, но не слишком перегруженную приложениями. Для расширения функциональности KDE имеется еще ряд строго разделенных компонентов, также входящих в общий проект: kdenetwork, kdepim, kdegraphics, kdeutilities, kdemultimedia, kdeedu, kdegames, kdetoys, kdeartwork, kdesdk, kdeadmin, koffice, kdevelop и quanta. Естественно, все эти части не требуют обязательной установки.
Рабочая среда KDE 3.4.1
Немного раздражает, что в прекомпилированном виде отдельный пакет содержит множество излишних программ и библиотек. Например, если требуется лишь звуковой микшер kmix из пакета kdemultimedia, придется смириться с тем, что в нагрузку будет установлено несколько аудио- и видеопроигрывателей, программа записи звука и прочие ненужные в данном случае вещи. Тем не менее выход есть – собрать необходимый пакет вручную с использованием специальной переменной окружения DO_NOT_COMPILE, в которой указываются все ненужные элементы пакета. Таким образом существенно сокращается время компиляции и экономится дисковое пространство. Следует отметить прекрасную локализацию рабочей среды: KDE 3 доступна на 50 языках, включая самые экзотические. А о количестве программного обеспечения, нацеленного на использование в среде KDE или как минимум написанного на базе Qt, нечего и говорить – самым ярким примером может служить веб-браузер Opera, который (иногда он все-таки полезен) некоторые сайты Konqueror не осилит.
Для того чтобы ощутить масштаб разработки, приведем несколько цифр. В настоящее время проект KDE содержит около 4 млн строк исходных текстов (ядро Linux – примерно 3,7 млн строк), написанием кода занимаются более 800 программистов по всему миру, переводом интерфейса на различные языки – около 300 человек, веб-сайт www.kde.org имеет 17 официальных зеркал в 12 странах, а загрузить установочные пакеты среды можно со 106 официальных ftp-серверов в 39 странах.
Несомненно, четвертая версия популярной рабочей среды, как и предыдущие, не разочарует своих поклонников. Норвежские специалисты из TrollTech также прекрасно оценивают роль KDE в своем бизнесе, поэтому всегда неизменно идут навстречу разработчикам, максимально отшлифовывая код и предлагая новые возможности. Согласно официальным заявлениям TrollTech, в четвертой версии библиотеки Qt огромные усилия программистов были направлены на "разгон", и теперь, согласно внутренним данным компании, интерфейс отрисовывается быстрее примерно на 30-50%. Многочисленные поклонники KDE зорко следят за подобными высказываниями, и приведенные выше цифры вызвали бурный восторг на многочисленных интернет-форумах. Помимо ускорения интерфейса, TrollTech отмечает улучшенное взаимодействие с аппаратурой, при котором большое число функций по отрисовке элементов интерфейса возлагается на драйвер видеокарты, а не на центральный процессор. Известно, что различные "украшения", наподобие полупрозрачных или оттененных окон на рабочем столе, способны легко затормозить самый скоростной процессор, в то время как выполнение этих функций при помощи графического чипа происходит совершенно незаметно для основной работы.
Центр управления KDE
Весьма спорна необходимость в этих функциях для повседневной деятельности, однако при условии, что ближайшие конкуренты Windows и MacOS X располагают такими возможностями, разработчики все же вынуждены их реализовывать. Кроме того, интерфейс KDE настолько гибко настраивается, что возможны вариации от полностью топорного, но работающего с приемлемой отзывчивостью на старых аппаратных конфигурациях, до излишне роскошного, с оттенками и анимацией, способной нагрузить работой любые гигагерцы. И не стоит забывать о том, что KDE – открытая разработка, любой желающий вправе изменить исходный код так, как ему заблагорассудится, вопрос лишь в навыках и мотивации.
Сегодня будущее проекта KDE выглядит безоблачным. В команде постоянно появляются новые разработчики со свежими идеями по улучшению возможностей, а огромная армия пользователей всегда готова указать на недостатки в открытом диалоге – именно поэтому происходит оперативное исправление обнаруженных ошибок, а на ftp-серверах всегда выложена самая актуальная версия кода. Но каждый раз скачивать все установочные пакеты нет нужды – достаточно лишь загрузить изменения в коде, что до недавнего времени было реализовано при помощи механизма CVS, а сейчас разработчики стали пользоваться более "продвинутым" аналогом – SVN. Эти обстоятельства дают повод надеяться, что буква "К" с неизменной шестеренкой и симпатичный дракон по имени Konqi с красным платком на шее – хранитель проекта – прочно и на долгое время обосновались на множестве рабочих станций под управлением GNU/Linux.
Автор: Евгений Патий
Источник: www.finestreet.ru/magazine/itn/
|