KDE — Столпы KDE4. Solid.
Сегодняшний пост начнет цикл статей о KDE4. Именно цикл, потому что в одной статье все вряд ли уместишь, да и читать не всегда удобно. И начнем мы с того, на чем держится KDE4 - столпы KDE. Столпы эти - это те ключевые технологии, которые легли в основу современного и удобного рабочего окружения, набора приложений, а также фрэймворка для разработки первых двух.
А начнем мы, пожалуй, с железа. То есть с того, что должно работать с железом.
С приходом Solid все что вам придется освоить - это Solid API и строить свое приложение в соответствии с ним. Обо всем остальном позаботится Solid - выберет доступный движок, найдет его настройки выставленные пользователем (или автоматически подберет по-умолчанию) и просто будет работать. Вы разработчик, но пишете не под Linux, а под OpenSolaris? Хм... А в чем разница? Продолжаете работать с Solid и не заморачиваетесь! Конечно, преувеличенно слегка - мне не очень известно состояние движков для OpenSolaris на данном этапе развития Solid'а, но в идеале, к которому неустанно стремятся разработчики этого фрэймворка все будет именно так.
На самом деле Solid уже давно используется, еще с того самого релиза 4.0, который все считали провальным (но сейчас не о нем). Все дело в том, что пользователи не особо-то и должны замечать что есть какая-то прослойка и что-то еще. Пользователям нужны инструменты для работы, им нужно средство развлечения, а не тот самый пресловутый "рабочий стол", поэтому им знать о таких вещах как Solid в принципе не обязательно. А вот разработчики... Давайте просто взглянем на план разработки на официальном сайте Solid:
Фаза планирования:
Фаза создания:
Как мы можем видеть - большая часть пути уже пройдена. И это видно даже из этой очень устаревшей информации с официального сайта Solid.
Итак, на этом я думаю все на сегодня - один из столпов KDE4 стоит довольно прочно и его разработка активно продолжается.
Пишите комментарии, пишите в личку, пишите на мыло - мой_ник[на]mail.ru. Буду рад услышать отзывы и пожелания.
Информация взята с официального сайта проекта Solid, со страницы Solid в Википедии, а также из одного из номеров LXF. Также собственные знания и наблюдения за проектом через сайт разработчиков KDE.
А начнем мы, пожалуй, с железа. То есть с того, что должно работать с железом.
Дамы и господа, первый столп 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.