LXF79:Solid
(Новая: === Что такое… SOLID? === ''Неудобное управление устройствами является слабостью Linux-систем. Программисты K...) |
Текущая версия на 23:00, 12 марта 2008
|
|
|
[править] Что такое… SOLID?
Неудобное управление устройствами является слабостью Linux-систем. Программисты KDE придумали изящное решение этой проблемы. Джоно Бэкон (Jono Bacon), засучив рукава, исследует Solid.
Итак, что это – Solid?
Solid – значимая составная часть будущего KDE 4.0. Проект KDE 4.0 был разделен на несколько различных компонентов: Solid, Plasma, Oxygen и Phonon, каждый из которых выполняет свою работу на рабочем столе.
И что же Solid делает?
Solid отвечает за взаимодействие с оборудованием. Традиционно, легкое управление устройствами в Linux было равносильно просьбе одолжить золотой медальон у мистера Т: это возможно, но невероятно, и, скорее всего, вызовет неприятности. Solid направлен на устранение этого недостатка.
Как работает Solid?
Основная цель Solid – предоставить адекватный программный интерфейс для оборудования. Во времена KDE 1.x было невероятно сложно взаимодействовать с оборудованием в приложениях. Общение с устройствами осуществлялось индивидуально в каждом приложении. Например, если вы писали приложение для обмена информацией с цифровыми камерами, то вам пришлось бы включать в него код, ответственный за общение с камерой.
Звучит как-то дико. А если другим приложениям тоже нужно общаться с камерой?
Вот именно. В этом и была проблема поддержки устройств в приложениях – вместо сосредоточения на логике приложения, разработчикам приходилось заниматься спецификой оборудования. Различия в дистрибутивах, разные версии ядра Linux и другие факторы подбавляли сложностей. Кроме того, существовала проблема горячего подключения устройств. Вставив USB-устройство в компьютер, вы ожидаете появления иконки на рабочем столе. В Linux это делается совершенно не так, как в Solaris, BSD, Mac OS X и Windows.
Надеюсь, Solid решит все эти проблемы и избавит нас от лишних хлопот?
По большей части да. Задача Solid состоит в том, чтобы предоставить унифицированный программный интерфейс (API) к оборудованию. Вместо того, чтобы включать в приложение специфический для оборудования код, Solid позволит абстрагировать оборудование. Таким образом, другой инструмент будет выполнять работу по обмену информацией с устройствами.
Что значит «другой инструмент»?
Что-то наподобие HAL, Hardware Abstraction Layer [прим. перев.: HAL – уровень аппаратных абстракций]. HAL – это демон, который отслеживает аппаратные изменения в конфигурации системы и представляет эту информацию в форме, понятной приложениям. По существу, инструмент HAL дает вам ясное программное представление, как выглядит ваше оборудование. HAL, в свою очередь, полагается на D-BUS, который обеспечивает взаимодействие разных подсистем приложения. Например, если вы хотите синхронизировать свою музыкальную коллекцию с плейером, то можете использовать HAL и скрипт на Python.
Я не совсем понял, зачем тогда Solid? Почему нельзя просто обойтись HAL?
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
На это есть пара причин. Первая: проект KDE всегда старался поддерживать разные операционные системы, не ограничиваясь только Linux. По существу, должна быть поддержка Linux, BSD, Mac OS X, Windows, Solaris и других. Так как HAL полагается на специфические особенности ядра Linux, то он используется только в Linux. Ядро предоставляет информацию об оборудовании в Sysfs, которая в свою очередь используется udev, далее она используется D-BUS, которая затем используется HAL.
То есть Solid замещает HAL кроссплатформным эквивалентом? А так бывает?
Нет, это не входит в намерения разработчиков KDE. Не полагаясь исключительно на HAL, Solid будет поддерживать множество различных «основ» (back-end), которые зависят от операционной системы. На платформе Linux, Solid использует HAL для обмена информацией с устройствами, но на Solaris, BSD, Mac OS X и Windows, Solid будет использовать аналоги HAL.
И такие аналоги есть?
На одних системах есть, на других – нет. Если вы хотите узнать об аналоге HAL в BSD, возможно, стоит почитать BSD Format. Хотя, погодите…
Вы сказали, есть пара причин, почему HAL нельзя просто заменить Solid. В чем вторая?
У Solid и HAL немного разная идеология. Главная задача HAL – предоставить информацию о доступных устройствах в системе. Если вы хотите использовать эту информацию, чтобы как-то повлиять на рабочий стол, то придется самим писать код приложения. Собственно, даже и с чем-то вроде HAL вам придется писать много лишнего кода для обработки события при подключении устройства.
Приведите пример…
Предположим, вы подключаете USB-брелок и хотите, чтобы появилось окно, отображающее список файлов на этом устройстве. Тогда вам понадобиться написать код, который вызывает окно в ответ на событие, возникающее при подключении устройства, которое генерирует HAL. Другой пример – цифровые камеры. Когда вы подключаете камеру к системе, то хотите воспользоваться функциональностью, характерной для цифровой камеры и KDE. В этом случае пригодится Solid.
То есть Solid – это API KDE, отрабатывающий сценарии для оборудования?
Верно. Можно считать, что HAL – средство обмена информацией с оборудованием, а Solid – инструмент для обработки событий на рабочем столе. По существу, Solid может не только работать с аналогами HAL, но и предоставляет независимый от операционный системы API, позволяющий обрабатывать различные события, связанные с устройствами, в приложениях KDE.
Хорошо. Как все это работает технически?
KDE базируется на наборе инструментов Qt от Trolltech. Qt базируется на системе сигналов и слотов: когда в каком-то приложении что-то происходит, оно может запустить сигнал. Например, при нажатии кнопки инициируется сигнал clicked(), который можно присоединить к слоту. Слот – определенная программистом функция, которая будет обрабатывать сигнал. Solid предоставит множество сигналов, которые будут говорить об изменениях в оборудовании, а разработчики смогут просто написать слоты для их обработки.
Зачем Solid поддерживать Windows и Mac OS X? Вряд ли им нужен KDE…
Qt доступна на Linux и Mac OS X по лицензии GPL уже многие годы, а Windows-версия Qt выпущена под GPL в феврале 2005 года. Это событие открыло дорогу приложениям KDE на другие операционные системы и дало разработчикам новый импульс. Команда разработчиков KDE намерена создать самую лучшую рабочую среду, и хотя многие из разработчиков, конечно, пользуются Linux, было принято соглашение о создании платформы, которая сможет работать на максимальном количестве ОС. Теперь, когда Qt стала свободной на всех основных платформах, выполнять соглашение будет проще.
Пока все это слова, а в каком состоянии сейчас находится эта разработка?
В настоящий момент напряженная разработка Solid ведется под руководством Кевина Оттенса (Kevin Ottens); написан код для некоторых классов устройств (например, CD-ROM), а также заготовлено некоторое количество сигналов. Несмотря на текущее положение дел, Solid находится в состоянии разработки и уже вписан как ключевая особенность KDE 4. Выпуск KDE 4 в ближайшее время не ожидается, поэтому пройдет некоторое время, прежде чем вы увидите Solid на рабочем столе.
Где об этом узнать поподробнее?
Большая часть работы по Solid ведется через главный сайт – solid.kde.org. Дополнительно можно посмотреть рассылки разработчиков в lists.kde.org. Главная дискуссия, где обсуждают Solid, происходит в Kde-hardware-devel.
Если вы мыслите настоящим временем, информацию можно почерпнуть и на IRC-канале #solid сети Freenode IRC. Наконец, больше всего о разработке Solid и других технологий, относящихся к KDE 4, можно узнать на Planet KDE (www.planetkde.org). Этот сайт содержит заметки разработчиков KDE и позволяет понять текущее состояние проекта. Там вы можете узнать, какие технологии приняты на вооружение, а от каких отказались.