Kraplax 16.03.2009 11:01

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:

Фаза планирования:

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

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

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

Завершение реализации работы с железом

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

Управление сетью

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

Управление питанием

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

Полировка

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

Практическое использование

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



Как мы можем видеть - большая часть пути уже пройдена. И это видно даже из этой очень устаревшей информации с официального сайта Solid.

Итак, на этом я думаю все на сегодня - один из столпов KDE4 стоит довольно прочно и его разработка активно продолжается.

Пишите комментарии, пишите в личку, пишите на мыло - мой_ник<на>mail.ru. Буду рад услышать отзывы и пожелания.



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


Тэги: KDE4 Solid
+ 13 -
Похожие Поделиться

Kraplax 16.03.2009 11:04 #
Кстати, что-то не смог определиться с тем, в какой блог отнести лучше. Решил оставить в личном - как-то создавать блог о KDE4 рановато наверное, а в другие блоги не совсем подходит. У кого идеи есть - подкиньте, перенесу, если соглашусь. :)
exelens 16.03.2009 11:07 #
Почему рано? Создай.
Username 16.03.2009 11:15 #
есть блог КДЕ
Kraplax 16.03.2009 11:21 #
Вот блин, а я только что создал 'KDE 4'... И насколько я знаю блоги удалять нельзя, так..?
l1feh4ck3r 16.03.2009 13:27 #
Нельзя, поэтому и такая свалка в списке "Все блоги". Надеюсь ее exelens почистит =)
Username 16.03.2009 11:07 #
Kraplax, ты ДЕВЕЛОПЕР! КДЕ?
Kraplax 16.03.2009 11:17 #
Ну как сказать. Теперь уже стыдно так себя называть - я до нового года сделал модуль для System Settings ориентированный специально на KDE on Windows. В нем реализованы функции установки обоев Oxygen в систему Windows, а также все темы курсоров Oxygen. Плюс переключалка шеллов - по умолчанию там Эксплорер, конечно, но для особо извращенных или пытливых - можно включить плазму. Печально то, что с тех пор я еще ничего не сделал полезного для проекта. Как-то все не появлялось задач по моим скромным силам. Да и еще увлекался допиливанием Trayplayer'а с kde-look.org - после этого еще появился мой пост про поднятие SVN сервера.
Username 16.03.2009 12:02 #
вам переводчики не нужны?:) хочу внести свою лепту
Kraplax 16.03.2009 12:19 #
Там всегда все нужны. Только вот с переводами дела обстоят не так как с разработкой. Свяжись с командой локализации - там узнаешь как, что и почем. Меня там никто не знает, кажется. Но если поглядеть во многие приложения в раздел "Перевод:" очень часто можно встретить такое имя, как Nick Schaforostoff. Кажется так. Его самого можно найти найти на сервере irc.freenode.net на канале #kde-edu, кажется.
Username 16.03.2009 13:01 #
спасибо, надо сконнектится. Хочу внести свою лепту
LeniH 16.03.2009 11:16 #
Интересная статья. Полезно. Блог завести. Писать дальше...
xcr 16.03.2009 15:52 #
Хм, спасибо, интересно.
Мне нравится тот путь, по которому они идут. Абстракция - это всегда для всех хорошо. За это я особенно люблю ООП. (да-да, эпоха языка C для написания графических приложений явно затянулась)
И очень жаль, что все пока что упирается в скорость работы. Надеюсь, допилят, и все будут счастливы )
Kraplax 16.03.2009 16:28 #
Сейчас даже не столько в скорость работы, сколько в скорость разработки. Команда всегда работает над улучшением и исправлением багов. Есть даже планы посвятить один из проектов GSoC в этом году именно тому, чтобы толком допилить Solid на Windows. На других платформах тоже много идей :)