<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF79%3ASolid</id>
		<title>LXF79:Solid - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF79%3ASolid"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF79:Solid&amp;action=history"/>
		<updated>2026-05-13T05:58:12Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF79:Solid&amp;diff=1519&amp;oldid=prev</id>
		<title>ProDOOMman: Новая: === Что такое… SOLID? ===  ''Неудобное управление устройствами является слабостью Linux-систем. Программисты K...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF79:Solid&amp;diff=1519&amp;oldid=prev"/>
				<updated>2008-03-12T20:00:38Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: === Что такое… SOLID? ===  &amp;#039;&amp;#039;Неудобное управление устройствами является слабостью Linux-систем. Программисты K...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Что такое… SOLID? ===&lt;br /&gt;
&lt;br /&gt;
''Неудобное управление устройствами является слабостью Linux-систем. Программисты KDE придумали изящное решение этой проблемы. '''Джоно Бэкон (Jono Bacon)''', засучив рукава, исследует Solid.''&lt;br /&gt;
&lt;br /&gt;
''Итак, что это – Solid?''&lt;br /&gt;
&lt;br /&gt;
Solid – значимая составная часть будущего KDE 4.0. Проект KDE 4.0 был разделен на несколько различных компонентов: Solid, Plasma, Oxygen и Phonon, каждый из которых выполняет свою работу на рабочем столе.&lt;br /&gt;
&lt;br /&gt;
''И что же Solid делает?''&lt;br /&gt;
       &lt;br /&gt;
Solid отвечает за взаимодействие с оборудованием. Традиционно, легкое управление устройствами в Linux было равносильно просьбе одолжить золотой медальон у мистера Т: это возможно, но невероятно, и, скорее всего, вызовет неприятности. Solid направлен на устранение этого недостатка.&lt;br /&gt;
&lt;br /&gt;
''Как работает Solid?''&lt;br /&gt;
&lt;br /&gt;
Основная цель Solid – предоставить адекватный программный интерфейс для оборудования. Во времена KDE 1.x было невероятно сложно взаимодействовать с оборудованием в приложениях. Общение с устройствами осуществлялось индивидуально в каждом приложении. Например, если вы писали приложение для обмена информацией с цифровыми камерами, то вам пришлось бы включать в него код, ответственный за общение с камерой.&lt;br /&gt;
&lt;br /&gt;
''Звучит как-то дико. А если другим приложениям тоже нужно общаться с камерой?''&lt;br /&gt;
&lt;br /&gt;
Вот именно. В этом и была проблема поддержки устройств в приложениях – вместо сосредоточения на логике приложения, разработчикам приходилось заниматься спецификой оборудования. Различия в дистрибутивах, разные версии ядра Linux и другие факторы подбавляли сложностей. Кроме того, существовала проблема горячего подключения устройств. Вставив USB-устройство в компьютер, вы ожидаете появления иконки на рабочем столе. В Linux это делается совершенно не так, как в Solaris, BSD, Mac OS X и Windows.&lt;br /&gt;
&lt;br /&gt;
''Надеюсь, Solid решит все эти проблемы и избавит нас от лишних хлопот?''&lt;br /&gt;
&lt;br /&gt;
По большей части да. Задача Solid состоит в том, чтобы предоставить унифицированный программный интерфейс (API) к оборудованию. Вместо того, чтобы включать в приложение специфический для оборудования код, Solid позволит абстрагировать оборудование. Таким образом, другой инструмент будет выполнять работу по обмену информацией с устройствами.&lt;br /&gt;
&lt;br /&gt;
''Что значит «другой инструмент»?''&lt;br /&gt;
&lt;br /&gt;
Что-то наподобие HAL, Hardware Abstraction Layer [прим. перев.: HAL – уровень аппаратных абстракций]. HAL – это демон, который отслеживает аппаратные изменения в конфигурации системы и представляет эту информацию в форме, понятной приложениям. По существу, инструмент HAL дает вам ясное программное представление, как выглядит ваше оборудование. HAL, в свою очередь, полагается на D-BUS, который обеспечивает взаимодействие разных подсистем приложения. Например, если вы хотите синхронизировать свою музыкальную коллекцию с плейером, то можете использовать HAL и скрипт на Python.&lt;br /&gt;
&lt;br /&gt;
''Я не совсем понял, зачем тогда Solid? Почему нельзя просто обойтись HAL?''&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Одной строкой|&lt;br /&gt;
Содержание=«HAL – СРЕДСТВО ОБМЕНА ИНФОРМАЦИЕЙ С ОБОРУДОВАНИЕМ, А SOLID – ИНСТРУМЕНТ ОБРАБОТКИ СОБЫТИЙ НА РАБОЧЕМ СТОЛЕ.»|&lt;br /&gt;
Ширина=150px}}&lt;br /&gt;
&lt;br /&gt;
На это есть пара причин. Первая: проект KDE всегда старался поддерживать разные операционные системы, не ограничиваясь только Linux. По существу, должна быть поддержка Linux, BSD, Mac OS X, Windows, Solaris и других. Так как HAL полагается на специфические особенности ядра Linux, то он используется только в Linux. Ядро предоставляет информацию об оборудовании в Sysfs, которая в свою очередь используется udev, далее она используется D-BUS, которая затем используется HAL.&lt;br /&gt;
&lt;br /&gt;
''То есть Solid замещает HAL кроссплатформным эквивалентом? А так бывает?''&lt;br /&gt;
&lt;br /&gt;
Нет, это не входит в намерения разработчиков KDE. Не полагаясь исключительно на HAL, Solid будет поддерживать множество различных «основ» (back-end), которые зависят от операционной системы. На платформе Linux, Solid использует HAL для обмена информацией с устройствами, но на Solaris, BSD, Mac OS X и Windows, Solid будет использовать аналоги HAL.&lt;br /&gt;
&lt;br /&gt;
''И такие аналоги есть?''&lt;br /&gt;
&lt;br /&gt;
На одних системах есть, на других – нет. Если вы хотите узнать об аналоге HAL в BSD, возможно, стоит почитать BSD Format. Хотя, погодите…&lt;br /&gt;
&lt;br /&gt;
''Вы сказали, есть пара причин, почему HAL нельзя просто заменить Solid. В чем вторая?''&lt;br /&gt;
&lt;br /&gt;
У Solid и HAL немного разная идеология. Главная задача HAL – предоставить информацию о доступных устройствах в системе. Если вы хотите использовать эту информацию, чтобы как-то повлиять на рабочий стол, то придется самим писать код приложения. Собственно, даже и с чем-то вроде HAL вам придется писать много лишнего кода для обработки события при подключении устройства.&lt;br /&gt;
&lt;br /&gt;
''Приведите пример…''&lt;br /&gt;
&lt;br /&gt;
Предположим, вы подключаете USB-брелок и хотите, чтобы появилось окно, отображающее список файлов на этом устройстве. Тогда вам понадобиться написать код, который вызывает окно в ответ на событие, возникающее при подключении устройства, которое генерирует HAL. Другой пример – цифровые камеры. Когда вы подключаете камеру к системе, то хотите воспользоваться функциональностью, характерной для цифровой камеры и KDE. В этом случае пригодится Solid.&lt;br /&gt;
&lt;br /&gt;
''То есть Solid – это API KDE, отрабатывающий сценарии для оборудования?''&lt;br /&gt;
&lt;br /&gt;
Верно. Можно считать, что HAL – средство обмена информацией с оборудованием, а Solid – инструмент для обработки событий на рабочем столе. По существу, Solid может не только работать с аналогами HAL, но и предоставляет независимый от операционный системы API, позволяющий обрабатывать различные события, связанные с устройствами, в приложениях KDE.&lt;br /&gt;
&lt;br /&gt;
''Хорошо. Как все это работает технически?''&lt;br /&gt;
&lt;br /&gt;
KDE базируется на наборе инструментов Qt от Trolltech. Qt базируется на системе сигналов и слотов: когда в каком-то приложении что-то происходит, оно может запустить сигнал. Например, при нажатии кнопки инициируется сигнал clicked(), который можно присоединить к слоту. Слот – определенная программистом функция, которая будет обрабатывать сигнал. Solid предоставит множество сигналов, которые будут говорить об изменениях в оборудовании, а разработчики смогут просто написать слоты для их обработки.&lt;br /&gt;
&lt;br /&gt;
''Зачем Solid поддерживать Windows и Mac OS X? Вряд ли им нужен KDE…''&lt;br /&gt;
&lt;br /&gt;
Qt доступна на Linux и Mac OS X по лицензии GPL уже многие годы, а Windows-версия Qt выпущена под GPL в феврале 2005 года. Это событие открыло дорогу приложениям KDE на другие операционные системы и дало разработчикам новый импульс. Команда разработчиков KDE намерена создать самую лучшую рабочую среду, и хотя многие из разработчиков, конечно, пользуются Linux, было принято соглашение о создании платформы, которая сможет работать на максимальном количестве ОС. Теперь, когда Qt стала свободной на всех основных платформах, выполнять соглашение будет проще.&lt;br /&gt;
&lt;br /&gt;
''Пока все это слова, а в каком состоянии сейчас находится эта разработка?''&lt;br /&gt;
&lt;br /&gt;
В настоящий момент напряженная разработка Solid ведется под руководством Кевина Оттенса (Kevin Ottens); написан код для некоторых классов устройств (например, CD-ROM), а также заготовлено некоторое количество сигналов. Несмотря на текущее положение дел, Solid находится в состоянии разработки и уже вписан как ключевая особенность KDE 4. Выпуск KDE 4 в ближайшее время не ожидается, поэтому пройдет некоторое время, прежде чем вы увидите Solid на рабочем столе.&lt;br /&gt;
&lt;br /&gt;
''Где об этом узнать поподробнее?''&lt;br /&gt;
&lt;br /&gt;
Большая часть работы по Solid ведется через главный сайт – [http://solid.kde.org solid.kde.org]. Дополнительно можно посмотреть рассылки разработчиков в [http://lists.kde.org/ lists.kde.org]. Главная дискуссия, где обсуждают Solid, происходит в Kde-hardware-devel.&lt;br /&gt;
&lt;br /&gt;
Если вы мыслите настоящим временем, информацию можно почерпнуть и на IRC-канале #solid сети Freenode IRC. Наконец, больше всего о разработке Solid и других технологий, относящихся к KDE 4, можно узнать на Planet KDE ([http://www.planetkde.org www.planetkde.org]). Этот сайт содержит заметки разработчиков KDE и позволяет понять текущее состояние проекта. Там вы можете узнать, какие технологии приняты на вооружение, а от каких отказались.&lt;/div&gt;</summary>
		<author><name>ProDOOMman</name></author>	</entry>

	</feed>