среда, 18 марта 2009 г.

Столпы KDE4. Solid

welinux.ru/KDE → Столпы KDE4. Solid.

Сегодняшний пост начнет цикл статей о KDE4. Именно цикл, потому что в одной статье все вряд ли уместишь, да и читать не всегда удобно. И начнем мы с того, на чем держится KDE4 - столпы KDE. Столпы эти - это те ключевые технологии, которые легли в основу современного и удобного рабочего окружения, набора приложений, а также фрэймворка для разработки первых двух.
А начнем мы, пожалуй, с железа. То есть с того, что должно работать с железом.

Дамы и господа, первый столп KDE4 - Solid.


Столпы KDE4: Solid


Что такое Solid?

Это та "прослойка", которая позволяет программам KDE4 абстрагироваться от железа и использовать один и тот же API на разных системах. Solid не идет на замену HAL, WMI и другим технологиям, он пришел, чтобы пользователи больше не мучались вопросом о том, какие поставить "движки" (back-ends), чтобы их программы наконец-то заработали с Bluetooth, сетью, видео и другим железом. Солид просто становится "оберткой" вокруг уже существующих "движков", таких как BlueZ (официальный стек Bluetooth для Linux), NetworkManager, HAL и других. Но это не значит что он привязан к ним - любой из движков можно заменить любым другим (конечно, с соответствующими изменениями в самом Solid'е), но сами приложения использующие сеть, накопители и видео останутся прежними!

Solid для пользователя?

Фактически то, что при смене движков вам не придется перенастраивать ваши приложения, а также (в будущем) что вы сможете использовать KDE не только на Linux но и на других операционных системах. Это также будет означать, что вместо того, чтобы разбираться со способами взаимодействия вашей любимой программы с вашей ненаглядной железкой разработчики этой программы потратят свое время на нужные и интересные вам функции. Также будет корректно обрабатываться переход в спящий режим - все сетевые интерфейсы будут отключены и сетевые приложения красивенько и грациозно отключатся; USB девайсы будут синхронизированы чтобы избежать потери данных. Это также значит, что при подключении флэшки вы видите ее в подключенных устройствах и без труда можете ее открыть. Solid позволяет переключаться между доступными мониторами и настраивать их в отдельности так легко, как это только возможно. Конечно, все это зависит еще от интерфейса, но ведь теперь мы знаем что за красивыми и удобными окошками стоит мощный комплекс работы с железом.

Solid для разработчиков?

Для разработчиков - это просто находка! Кто-нибудь знает как была реализована работа с устройствами в KDE1 и 2? Для каждого приложение писался свой стек работы с железом, будь то винт, сеть, фотокамера или еще какая приблуда. А теперь представьте сколько различного оборудования мог поддерживать такой стек. И поделите на количество разных дистрибутивов и их версий ядер. Маловато, не так ли?
С приходом Solid все что вам придется освоить - это Solid API и строить свое приложение в соответствии с ним. Обо всем остальном позаботится Solid - выберет доступный движок, найдет его настройки выставленные пользователем (или автоматически подберет по-умолчанию) и просто будет работать. Вы разработчик, но пишете не под Linux, а под OpenSolaris? Хм... А в чем разница? Продолжаете работать с Solid и не заморачиваетесь! Конечно, преувеличенно слегка - мне не очень известно состояние движков для OpenSolaris на данном этапе развития Solid'а, но в идеале, к которому неустанно стремятся разработчики этого фрэймворка все будет именно так.

Как скоро можно увидеть использование Solid пользователями и разработчиками приложений?

Вы не поверите... :D
На самом деле Solid уже давно используется, еще с того самого релиза 4.0, который все считали провальным (но сейчас не о нем). Все дело в том, что пользователи не особо-то и должны замечать что есть какая-то прослойка и что-то еще. Пользователям нужны инструменты для работы, им нужно средство развлечения, а не тот самый пресловутый "рабочий стол", поэтому им знать о таких вещах как Solid в принципе не обязательно. А вот разработчики... Давайте просто взглянем на план разработки на официальном сайте Solid:
Фаза планирования:

  1. Дизайн архитектуры и быстрое прототипирование - Завершено

  2. Очистка кода и подготовка к созданию - Завершено

Фаза создания:

  1. Завершение реализации работы с железом
    Реализован сбор большего количества данных о железе (производитель, информация о PCI, и т.д.). Добавление специфичных интерфейсов необходимых для управления разделами (cdrom, камеры, usb накопители, и т.д.). Оценка необходимости асинхронных вызовов медленных операций (таких как монтирование). - Завершено

  2. Управление сетью
    Детализация основной модели, которую мы хотим поддерживать в управлении сетью. Первый движок, подходящий под эту модель. Уровень железа поднят для поддержки сетевого оборудования. - Завершено

  3. Управление питанием
    Детализация основной модели, которую мы хотим поддерживать для управления питанием. Первый движок, подходящий под эту модель. Уровень железа поднят для поддержки соответствующего обрудования. - Завершено

  4. Полировка
    Чистка и комментирование кода. Написание пособий по этому фрэймворку. Больше юнит-тестов, если необходимо. - В процессе.

  5. Практическое использование
    Портировать старый kio_media (или то, что придет ему на замену) на этот фрэймворк. Заставить плазму адекватно работать с железом и предоставлять удобный интерфейс для создания виджетов отображения информации о железе. Заново реализовать медиа-апплет с использованием плазмы. - В процессе.


Как мы можем видеть - большая часть пути уже пройдена. И это видно даже из этой очень устаревшей информации с официального сайта Solid.
Итак, на этом я думаю все на сегодня - один из столпов KDE4 стоит довольно прочно и его разработка активно продолжается.
Пишите комментарии, пишите в личку, пишите на мыло - мой_ник[на]mail.ru. Буду рад услышать отзывы и пожелания.

Информация взята с официального сайта проекта Solid, со страницы Solid в Википедии, а также из одного из номеров LXF. Также собственные знания и наблюдения за проектом через сайт разработчиков KDE.

Автор:Kraplax

Комментариев нет: