Обзор 7 ключевых технологий KDE 4Евгений Зобнин (zobnin@gmail.com) KDE 4 включает в себя 7 ключевых технологий, также известных как "Столпы KDE" (Pillars of KDE), которые позволили ему выйти на лидирующие позиции по технологичности и продуманности среди всех окружений рабочего стола. В этой статье я познакомлю тебя с этими технологиями и докажу, что KDE 4 вовсе не "ошибка природы", а гигантский шаг вперед. Итак, 7 столпов KDE 4:
SolidKDE 4 способен работать на множестве операционных систем, включая различные варианты BSD и Windows. Каждая из этих ОС требует собственного подхода к работе с оборудованием и вынуждает программистов приложений придумывать различные прослойки для работы с ним, учитывающие особенности различных ОС и их версий. Разрабатывая приложения для среды KDE 4, программист не обязан выдумывать такие прослойки самостоятельно, а может положиться на Solid API. Solid - это обертка вокруг средств управления железом, которая позволяет разработчикам приложений использовать единый API для доступа к оборудованию компа в любой ОС. Solid не идет на замену HAL и другим средствам, он лишь создает удобный интерфейс к их функциональности, позволяя использовать самые разные движки для доступа к оборудованию, такие как HAL, NetworkManager и BlueZ. При этом замена существующего движка или добавление нового не повлечет за собой переписывание приложений, использующих Solid, потребуется обновить лишь его самого. Пользователям Solid может дать не меньше удобств. В KDE 4 работа с оборудованием происходит гораздо более гладко и умно. Найдя в системе установленный NetworkManager, KDE автоматически начнет использовать его возможности для поиска и настройки сетей. Среда способна самостоятельно находить более высокоскоростные каналы связи и переключаться на их использование, при подключении флешки может быть произведен автоматический бэкап ее содержимого на жесткий диск. И, конечно же, все это работает одинаково в любой поддерживаемой ОС. PhononС появлением aRts KDE 2 обзавелся собственным звуковым сервером и API, которые позволили разработчикам приложений абстрагироваться от конкретных устройств вывода звука, а пользователям - услышать звук сразу из нескольких источников (тогда еще ни Linux, ни BSD не умели микшировать звуковые потоки программно). aRts продержался в KDE до последних выпусков KDE 3, но из-за вложенных ограничений, таких как отсутствие поддержки видео и невозможность использования других звуковых движков, был выкинут из KDE 4 и заменен на новый мультимедиа-фреймворк Phonon. Разработчикам Phonon дает не меньшую свободу и удобство. Его API поддерживает не только вывод звука, но и видео, при этом API очень прост и компактен. Например, для проигрывания звукового файла с помощью Phonon API достаточно всего четырех строк кода на C++ (тогда как в случае с aRts требовалось 30):
Отличительная особенность Phonon заключается также и в том, что он не использует единственный встроенный движок вывода аудио и видео, а может использовать его самые разные варианты, начиная от Xine и GStreamer на UNIX-платформе и заканчивая DirectShow на Windows (переключение между которыми может быть произведено на лету, без остановки воспроизведения). DecibelKDE 4 обзавелся и собственным фреймворком для организации общения в режиме реального времени, включая голосовую и видеотелефонию, IP-телефонию (VoIP), текстовые чаты и обмен сообщениями (IRC, ICQ, Jabber). Decibel основан на Telepathy API (проект freedesktop.org) и использует совместимую с ним библиотеку Tapioca. Ему подчинено все, что относится к мгновенной доставке сообщений между двумя и более пользователями. Любой компонент KDE 4, способный предоставить такой функционал, может (и должен) использовать Decibel. Decibel существенно упрощает программирование приложений, поддерживающих функции обмена мгновенными сообщениями, и позволяет разработчику сконцентрироваться на функциональности приложения, а не на отлове ошибок и реализации функциональности, специфичной для обмена сообщениями. AkonadiВ KDE 3 приложения, управляющие персональной информацией, вынуждены были хранить свои данные раздельно, в результате чего часть информации дублировалась. Kmail, Kontact и другие программы, управляющие личной информацией, использовали собственный метод доступа к ней, поэтому данные были не согласованы, часто дублировались, а программистам приходилось проделывать множество дополнительной работы для поддержания несогласованных между собой, но повторяющих функциональность, систем. В KDE 4 управление персональными данными организовано совершенно иначе, и здесь за ее хранение отвечает Akonadi. Говоря простым языком, Akonadi - это фреймворк PIM (Personal Information Management, Управление Персональной Информацией), который представляет собой клиент-серверную инфраструктуру, предназначенную для хранения персональной информации, обрабатываемой различными приложениями, и получения доступа к ней. Akonadi технологичен, а это значит, что кроме простого хранения данных, он предоставляет программистам быстродоступный кэш, обладает собственным языком запросов, позволяет производить прозрачную синхронизацию данных с другими ресурсами, может быть расширен для поддержки новых типов данных и ресурсов, предлагает простой и понятный API и многое, многое другое. По сути Akonadi дает программистам все, что нужно для реализации хранения персональных данных пользователя в их программах. Что до простых пользователей, то благодаря Akonadi они получают весьма полезные свойства: приложения могут не дублировать в памяти данные, сохраняя ее для других нужд, синхронизация данных происходит полностью в фоновом режиме, а приложения всегда "видят" актуальную информацию. NepomukNEPOMUK (Networked Environment for Personalized, Ontology-based Management of Unified Knowledge, Сетевое окружение для персонализированного и основанного на Онтологиях управления Единым Знанием) - это спецификация, описывающая социальный семантический рабочий стол, о котором можно прочитать на странице http://nepomuk.semanticdesktop.org, и который не имеет отношения к KDE как таковому. Однако реализация этой спецификации для KDE 4 очень интересна и напрямую касается темы статьи. Несмотря на пугающую и кажущуюся совершенно бессмысленной расшифровку термина, идея семантического десктопа и Nepomuk достаточно проста и сводится к тому, чтобы получить рабочий стол, в котором доступ к информации будет производиться семантическими средствами. Говоря другими словами, в таком окружении пользователь сможет выполнить запрос вида "Прошлогодние фотки с Анькой" и получить ответ в виде открытого просмотрщика фотографий, содержащего эти самые фотографии. Чтобы добиться этого, KDE-реализация Nepomuk использует индексирующий инструмент Strigi, анализирующий новые файлы и извлекающий из них метаданные (например, на основе mp3-тегов). В дополнение метаданные могут быть созданы самим пользователем, используя, например, файловый менеджер Dolphin (как ты мог заметить, в его правой панели отображается не только информация о файле, но и интерфейс выставления рейтинга, добавления комментариев и тегов). Накопив достаточную базу тегов, комментариев и рейтингов, пользователь может инициировать поиск нужных файлов, просто набрав тег в KRunner (Alt+F2). На данный момент Nepomuk закончен не полностью и по умолчанию отключен. Чтобы проверить его в действии, необходимо перейти в настройки (System Settings), открыть вкладку Advanced, выбрать элемент Desktop Search и отметить галочками пункты Enable Nepomuk Semantic Desktop и Enable Strigi Desktop File Indexer. Перейдя на вкладку Advanced Settings, можно выбрать каталоги для индексирования. После нажатия кнопки Apply Strigi начнет действовать и сообщит о проделанной работе с помощью стандартного уведомления. После этого можно запустить KRunner и набрать имена тегов для поиска. PlasmaВо времена KDE 1 рабочим столом управлял файловый менеджер KDE. Именно он был ответственен за создание иконок на рабочем столе и панели задач. С выходом KDE 2 файловый менеджер распался на несколько независимых приложений, управляющих разными компонентами рабочего стола: файловый менеджер, предназначенный для навигации по файловой системе, панели, исполняемые в рамках отдельных процессов, и рабочий стол, хранящий иконки. В KDE 3 к этой тройке добавилась еще и SuperKaramba - неофициальное дополнение к рабочему столу KDE, позволяющее размещать на нем виджеты. Со временем такое положение дел становилось все более неудобным как для разработчиков, так и для пользователей. Компоненты рабочего стола были плохо связаны друг с другом и не могли в полной мере консолидировать действия по поддержке рабочего стола. Пользователи жаловались на недостаток эффектов рабочего стола и его несовременность. Апплеты были слишком примитивны и могли быть написаны только на языке C++. Эти проблемы в конечном итоге привели к полному избавлению KDE 4 от KDesktop, Kicker и SuperKaramba и интеграции в него новой технологии, получившей имя Plasma. Plasma - это своего рода фреймворк рабочего стола, который объединяет воедино сам рабочий стол, панели, иконки, виджеты и апплеты. Исполняясь в рамках одного процесса, Plasma делает рабочий стол KDE 4 интегрированной средой с общим API для разработчиков и гармоничным внешним видом для пользователей. Благодаря глубокой интеграции компонентов, Plasma предоставляет функциональность, недоступную ни в одной другой среде. Ведь на самом деле рабочий стол Plasma не делится на множество различных компонентов, вроде панелей, иконок, апплетов и т.д., а представляет собой среду, состоящую из компонентов одного вида - виджетов рабочего стола, называемых плазмойдами. В Plasma виджеты везде: это и меню, и иконки, и трей, и часы, и панель, и обои рабочего стола (это так называемые "сдерживающие" виджеты, способные содержать в себе другие виджеты). Для пользователя, конечно, вся однотипность интерфейса скрыта, и он по-прежнему видит панели, иконки, виджеты рабочего стола (в классическом понимании), однако стоит ему начать использовать KDE 4, как он заметит, что любой виджет можно легко превратить в апплет, просто перетащив его на панель, или выполнить обратную процедуру, вытащив, к примеру, трей из панели и поместив его на рабочий стол, рядом со сводкой погоды и корзиной. Plasma интегрирована со скриптовым фреймворком Kross, поэтому плазмойды могут быть написаны не только на родном для KDE языке C++, но и на JavaScript, Ruby или Python. Более того, в Plasma интегрировано несколько библиотек, обеспечивающих совместимость с виджетами других сред, поэтому Plasma также поддерживает и гаджеты Google и виджеты Mac OS X (они, однако, не обладают гибкостью плазмойдов и могут быть размещены только на рабочем столе). Plasma обеспечивает возможность произвольного масштабирования и вращения плазмойдов. Рабочий стол KDE 4 действительно легко масштабируется и может выглядеть одинаково на разных дисплеях и при разных разрешениях. При этом не возникает каких-либо проблем со шрифтами, разрешением иконок и т.д. Рабочий стол в буквальном смысле растягивается и сжимается. Масштабируемость рабочего стола и виджетов, а также возможность вкладывания виджетов друг в друга позволяет Plasma быть действительно универсальным решением для всех типов интерфейса. Например, в рамках проекта Plasma-Netbook планируется реализовать специальный тип интерфейса для нетбуков. Чтобы понять, что это не просто перетаскивание панелей на другие места, а действительно новый интерфейс. Кроме того, в рамках проекта Google Summer of Code Алессандро Диафериа (Alessandro Diaferia) создал интерфейс медиацентра, полностью основанный на Plasma. В качестве экспериментов с помощью Plasma были созданы даже интерфейсы приложений. Для создания активности кликни по эмблемке в правом верхнем углу экрана, выбери пункт меню Zoom Out. Когда рабочий стол отодвинется и станет в четыре раза меньше экрана, нажми Add Activity. После этого рядом с существующим появится новый рабочий. Нажми кнопку Zoom In под новым рабочим столом, чтобы перейти к его использованию. Все добавленные на него виджеты будут индивидуальны и не повлияют на другие рабочие столы. Перемещаться между активностями с использованием кнопок Zoom In и Zoom Out не очень удобно, поэтому активности можно привязать к виртуальным рабочим столам. Для этого вновь нажми Zoom Out, затем Configure Plasma и поставь галочку напротив Different activity for each desktop. OxygenOxygen не может идти ни в какое сравнение с другими технологиями KDE 4, но, тем не менее, является важной составляющей новой версии среды. В двух словах: Oxygen - это полностью новая тема рабочего стола KDE 4, включающая в себя Qt4-тему, новые рамки окон, тему Plasma, новые иконки, курсоры и т.д. Имя Oxygen (кислород) указывает на то, что разработчики хотели "вдохнуть свежего воздуха в рабочий стол KDE 4". ВыводыКак ты смог убедиться, KDE 4 вовсе не провал, а очень серьезный рывок вперед. Многие его компоненты настолько инновационны и занимательны, что им можно посвятить не одну отдельную статью. При этом сама среда постоянно совершенствуется и улучшается, и можно предположить, что к выходу KDE 4.8 она станет не менее стабильной и богатой на функционал, чем KDE 4.3. Порой случается так, что решения проблем, накопленные годами, порождают новые проблемы, и эту цепочку совсем не просто разорвать. Выход один - сломать все и написать код с нуля. Так примерно и произошло со средой KDE 4, разработчики которой показали, что они готовы пойти на кардинальные изменения, ведь даже совместимость с предыдущей версией не гарантируется. Начало третьей версии KDE положено в апреле 2002, за 7 лет развития много чего изменилось как в самом проекте, так и в IT-сфере. С одной стороны - появилось новое оборудование, технологии, ОС и так далее. А с другой стороны - код некоторых компонентов и приложений (Kicker, Kdesktop, aRts) не менялся еще со времен KDE 2 и добавлять новое, не нарушив старое, было проблематично, а то и вовсе невозможно. Поэтому все новинки, вроде SuperKaramba, не встраивались, а наслаивались на то, что есть. Как ты понимаешь, это не могло положительно сказаться на стабильности, совместимости и производительности. Кроме того, многие идеи, например рабочий стол - папка, оказались не совсем удачны и ограничивали пользователя. Для программистов KDE 3 являлась мудреной головоломкой, требовавшей каждый раз "индивидуального" подхода, и становилось все сложнее добавлять новые вкусности в заваренную кашу. Недоработанность первых версий KDE 4 привела к тому, что начался отток пользователей в GNOME (который к релизу 2.30, возможно, окажется в таком же положении, как и KDE 4.0), но за 2 года была проведена колоссальная работа, и пользователи начали "возвращаться" в эту среду. Владимир «turbina» Ляшко (v.turbina@gmail.com), автор статьи "Новые кеды для гламурного юниксоида", опубликованной в январском номере ][ за 2008 год. Plasma и поддержка виджетов
INFO
|