SWD Software Ltd. - официальный дистрибьютор QNX на территории России и стран бывшего СССР Операционная система реального времени QNX
Инструменты для создания надёжных встраиваемых систем и
интеллектуальных устройств любой сложности
QNX Software Systems - разработчик встраиваемой операционной системы QNX
Информационные брошюры
Статьи и публикации
Обзоры
Операционные системы
Графические интерфейсы
Средства разработки
Прикладные системы на базе ОС QNX
Разное
Конкурсные статьи
Техническая литература
Материалы конференций QNX-Россия
Полезные ссылки
Блог QNX
Главная страница > Материалы > Статьи и публикации > Разное > Применение PC технологии для Internet устройств Сделать страницу стартовой Послать ссылку коллеге Версия для печати

Применение PC технологии для Internet устройств

Аннотация

Огромный, быстро растущий рынок персональных компьютеров (PC) создает изобилие инструментов и платформ, которые разработчики могут использовать для создания систем доступа в Internet: все, от web броузеров до высоко интегрированных встраиваемых процессоров. Несмотря на это проблема остается. Операционные системы для настольных PC несут с собой дополнительные затраты на дисковое пространство и оперативную память, становясь непригодными для использования в продуктах, предназначенных для бытового использования. Идеальное решение? Операционная среда реального времени, соответствующая стандартам, специально разработанная для систем реального времени с ограниченным потреблением памяти и процессорных ресурсов. Этот документ откроет, как такое решение, основанное на ОС реального времени QNX и ее графической оболочке Photon, делает возможным разработку дешевых, высокопроизводительных устройств для доступа в Internet, которые смогут поддерживать все услуги Internet. Поскольку аппаратное обеспечение PC развивается очень быстро, этот документ также исследует вопросы, касающиеся жизненного цикла продуктов (настройка, расширяемость, контроль за устареванием) и обсуждает аппаратное обеспечение встраиваемых PC, которое используются в долгосрочных проектах разработчиками приложений.

Введение

Вместе с широким распространением дешевых 32-х разрядных процессоров, приложения, которые раньше можно было увидеть только на настольном компьютере, включая приложения для доступа в Internet, теперь могут быть интегрированы в различные встраиваемые системы и бытовые приборы. Примерами таких устройств могут служить цифровые устройства работы с Internet через телевизионный приемник (set-top boxes или STB), интеллектуальные телефоны для дома и офиса, устройства внутренней связи (intranet), распространенные в промышленности и торговых структурах. В этом документе мы называем все такие устройства доступа в Internet - Internet устройствами.

Разработчики уже создали большое количество пробных разработок для Internet устройств: от самодельных ядер операционных систем, работающих на дешевых встраиваемых процессорах, до настольных операционных системам, работающих на модифицированных рабочих станциях PC, дополненных аппаратной поддержкой формата MPEG для живого видео. Пока эти экспериментальные платформы указывают куда, в конце концов, движутся Internet устройства, большинство Internet технологий (модемы, кабельные компании и т.д.), доступных потребителю, до сих пор испытывают недостаток инфраструктуры и пропускной способности сети для предоставления таких услуг как "видео по запросу" (“video on demand”). Несмотря на это Internet устройства уже могут получать доступ к различным информационным услугам, включая World Wide Web.

Услуги и технологии Internet развиваются с бешеной скоростью. В результате, продукты, которые не могут следовать за этими технологиями, имеют мало шансов удержаться на рынке. Для удовлетворения запросов потребителей, аппаратное и программное обеспечение, используемое в Internet устройствах, должно быть масштабируемым, и желательно, силами самого пользователя. Более того, эти компоненты должны быть относительно дешевыми, чтобы устройство могло регулярно заменяться, по мере неизбежного устаревания.

Внутри такого бурного рынка, разработчики продуктов занимаются задачами создания дешевых продуктов, даже если они высоко функциональны. Они также сталкиваются с проблемой ограниченных сроков выхода продукта на рынок. К примеру, обычно изготовители бытовых приборов прилагают массу усилий для создания “технологичного” продукта для снижения производственных затрат. Из-за короткого жизненного цикла, свойственного устройствам, обеспечивающим доступ в Internet, эта фаза снижения цены должна быть как можно короче. Более того, разработка должна иметь способность к быстрому обновлению, не требуя при этом полной, - и как результат, - дорогой переделки.

К счастью, разработчикам не нужно создавать технологии, необходимые для следования этим быстрым изменениям функциональных требований. Вместо этого они могут позаимствовать такую технологию у готового источника: Настольной PC.

Почему именно PC технология?

На огромном рынке вычислительной техники и среди тысяч его продавцов во всем мире, платформа PC является стандартом де-факто в широком спектре приложений, зарекомендовавших свою состоятельность в готовом наборе инструментальных средств. Фактически, так как большинство технологий, необходимых для Internet устройств, обычно создается для и на настольных PC, разработка Internet устройства, заимствованная у PC, принесет значительную выгоду за счет сокращения инженерных затрат.

Например, на заре обсуждения "видео-по-запросу" для телевизионных STB, декомпрессия в режиме реального времени видеоканала с MPEG сжатием была определена как значительная проблема производительности, для решения которой, без лишних размышлений, были предложены высокоскоростные RISC процессоры. В то же самое время, продвижение средств мультимедиа на настольные PC создало множество видео карт с поддержкой MPEG и расширенный набор команд процессора, таких как MMX. В конце концов, большая потребность в настольных средствах мультимедиа создала дешевый специализированный чип, поддерживающий требуемую производительность MPEG, даже когда этот чип был установлен на медленном PC процессоре. Результат: PC совместимые технологии для живого видео в устройствах STB.

Богатая инструментальная база

Вместе с множеством технологий настольных PC, доступных для внедрения в Internet устройства, в игру вступают остальные преимущества архитектуры PC. Например, настольные PC поддерживают огромное количество операционных систем, средств разработки и внешних устройств для разработчика встраиваемых систем. Также, из-за того, что устройства на базе PC - это архитектурные эквиваленты настольных PC, PC совместимый компьютер и программное обеспечение, доступное для него, становятся естественным макетным инструментом для разработчика Internet устройств.

До сих пор существует опасность слишком тесного сближения с PC технологиями. Пока "PC совместимые" встраиваемые системы относительно просто создаются на базе процессора из серии x86 и материнской платы PC со стандартным набором микросхем, большинство микросхем быстро устаревают из-за появления новых технологий. Фактически, для поддержания конкурентоспособности, производители микросхем для материнских плат создают новые версии каждые шесть месяцев! Очевидно, что продукты, работающие на этих компонентах, будут нуждаться в частой переработке просто для сохранения возможности дальнейшего производства. Производитель должен быть готов либо к заключению долгосрочных соглашений с производителями компонент, либо к ускорению цикла перестройки устройства для приведения его в соответствие с аппаратной частью настольной PC (допустимый вариант, поскольку рынок Internet устройств может потребовать, чтобы жизненный цикл продукта был ускорен по сравнению с другими электробытовыми устройствами). Также, существуют другие нюансы аппаратного обеспечения PC, которые более тесно связаны с требованиями производителей устройств.

Продолжительная жизнь продукта

Благодаря быстрому росту индустрии встраиваемых x86, появился ряд высоко интегрированных процессоров из серии x86, включая AMD ElanSC310/400 () , Intel386 EX () и National Semiconductor NS486SXF (). Поскольку эти процессоры специально разработаны для рынка встраиваемых систем, их производители хотят оставить их в работе на более долгий срок - намного более долгий, чем материнские платы, используемые в настольных PC. Что особенно хорошо, эти процессоры объединяют в себе различные внешние устройства в одно целое с CPU, уменьшая число компонент и стоимость разработки системы.

Кроме этих процессоров существуют микросхемы других производителей, которые гарантируют длительный срок использования. Например, микросхема RadiSys R380EX (), при работе в паре с Intel386 EX, берет на себя значительную часть функций, необходимых для построения встраиваемой PC.

Готовые аппаратные ресурсы

Чтобы обеспечить производителям быстрый старт, создатели чипов x86 также предложили макеты плат и примеры разработок, включая несколько ориентированных на требования низкой стоимости Internet устройств. Сюда входит пример разработки AMD ElanSC310 (), макет платы Intel EXPLR2 () и пример разработки web устройства - National Semiconductor Odin (). Разработчики могут использовать эти платформы "как есть", для оценки продуктов, быстрого макетирования, разработки системы и, в некоторых случаях, для запуска в ограниченное производство. Они также без труда могут легко "вырезать и вставлять блоки" из этих разработок, для создания своего собственного аппаратного обеспечения.

Пользуясь удобным случаем, многие производители PC совместимой техники также начали создавать STB-наборы, источники питания, беспроводные клавиатуры на инфракрасных лучах, беспроводные мыши и т. д. Это аппаратное обеспечение позволило производителям STB обойти множество проблем, связанных с начальной инструментальной базой и составлять систему из готового аппаратного обеспечения, которое сегодня изготавливают производители PC совместимой техники. Пока такой подход не будет отвечать ценовым требованиям истинно бытовых приборов, это, безусловно, позволит разработчикам быстро захватить рынок.

Как насчет программного обеспечения?

До сих пор мы обсуждали пригодность аппаратной части PC, но львиная доля работоспособности Internet устройств приходится на программное обеспечение. К счастью, программное обеспечение уже существует на настольных PC. К сожалению, операционные системы, которые управляют этим программным обеспечением, имеют чудовищный аппетит на оперативную память, дисковое пространство и на кванты времени CPU. Оборудование Internet устройств достаточным количеством ресурсов для запуска настольной ОС и графического интерфейса (GUI), включая Internet броузер, вытолкнуло бы набор аппаратного обеспечения для Internet устройств на уровень настольных PC, полностью упуская из виду конечную цену продукта.

Поскольку Internet устройство - это узко специализированное устройство, а не PC общего назначения, нет необходимости в переносе накладных расходов программного обеспечения настольной ОС, разработанной для поддержки универсальных настольных приложений - таких как оконная система, требующая больших ресурсов, бинарная совместимость с наследственными приложениями и т. д. Вместо этого, устройство может работать под управлением очень маленькой, целенаправленной ОС, специально разработанной для управления приложениями Internet устройств. С намного большей эффективностью и уменьшенными требованиями памяти/дискового пространства у этой ОС, цена на аппаратное обеспечение может быть уменьшена и не превысит $300. Для приложений STB, результирующая низкая цена модуля может быть "похоронена" среди ежемесячной оплаты услуг кабельной службы, устраняя необходимость пользователя оплачивать устройство сразу.

Кроме основных возможностей многозадачности, необходимых для запуска нескольких процессов, Internet устройство должно обеспечивать работу web-броузера, e-mail клиента, возможно, редактор для чтения групп новостей и другие приложения, ожидаемые покупателем, например путеводитель по каналам. Для поддержки этих приложений и для создания простой в использовании среды, устройству нужен графический интерфейс. Заданная точная синхронизация для управления потоками видео и аудио данных в некоторых приложениях также требует поддержки реального времени в операционной системе.

Программа, готовая к работе

Очень удобно, что ОС реального времени для встраиваемых приложений обеспечивает эффективную загрузку памяти и процессора. То же самое необходимо для уменьшения инженерных затрат, которые подталкивают разработчиков "заимствовать" различные стандарты аппаратной части PC, что ведет их в направлении стандартных программных API. Если API, поддерживаемый выбранной ОС, соответствует API, используемому приложениями для управления устройством, производитель может сберечь значительные затраты на разработку, просто перенеся эти приложения с PC и других систем. Еще лучше то, что стандартный API позволяет производителям, не отставая, следовать за быстро развивающимися технологиями, которые хотят видеть у себя на столе покупатели.

В качестве примера эффективности стандартизированной среды ОС, рассмотрим перенос web-броузера Spyglass ( ) в ОС реального времени QNX. Всего один день потребовался для подтверждения концепции переноса разработки версии Spyglass для X Window на QNX. Очевидно, X слишком требовательна к ресурсам, чтобы использовать ее в устройствах доступа в Internet, поэтому Spyglass был адаптирован под QNX's Photon microGUI® (описан ниже), и теперь может работать в 400K ROM памяти или во флэш-памяти и 1M RAM памяти. Это превосходный пример того, как стандартизированная среда может облегчить перенос популярных разработок для Internet на Internet устройства, поскольку также на технологии web броузера Spyglass основан web броузер компании Microsoft. Разработка web броузера с самого начала для самодельной ОС и минимальных графических библиотек потребует значительного увеличения затрат - затрат, которые могут никогда не кончиться в попытке идти следом за непрерывно развивающимися технологиями web броузеров.

Стандарт POSIX реального времени

Под Unix системы существует очень много программного обеспечения для Internet, поэтому использование Unix или POSIX API - это хороший выбор. Обзор исходных кодов среды исполнения Java показывает, что она обеспечивает нужную POSIX-совместимую систему с поддержкой асинхронного ввода-вывода, поддержкой нитей, файловой системы, поддержкой сети и оконной системы. В то время как окружение POSIX имеет репутацию системы, предъявляющей большие требования к ресурсам (если углубиться к историческим корням Unix), изучение стандартов POSIX показывает осторожное определение интерфейса, но не самой реализации. В результате, для поддержки POSIX API без архитектурной "тяжести" ядра Unix может быть использована архитектура микроядра.

К примеру, микроядро реального времени QNX/Neutrino® () предоставляет фактически все функции ОС стандарта POSIX, которые помещаются в 32K кода. Сюда входят базовые функции стандарта POSIX 1003.1a, 1003.1b (реальное время (realtime)), 1003.1c (нити (threads)) и 1004.1d (дополнительные расширения реального времени (realtime extensions)). В результате лишь выполнения функций из категории ядра, микроядро не предоставляет возможность создавать дополнительные процессы. Такие функции поддерживаются Neutrino Process Manager, Proc, которому нужно еще лишь 32К памяти. В результате, в ОС размером 64K входит большая часть функций ОС, необходимых для работы оперативных средств Java (сеть, файловая система и оконная система, находящаяся вне ядра).

Neutrino предлагает несколько уровней защиты памяти, начиная от модели без защиты и заканчивая полной защитой процессов друг от друга. В модели без защиты процессы приложений работают как нити в одном адресном пространстве. В модели с полной защитой процессов каждый процесс работает отдельно, в MMU-защищенном адресном пространстве (большинство встраиваемых процессоров x86 имеют интегрированные средства MMU). Для Java апплетов, принимаемых через сеть, такой уровень защиты не нужен, поскольку Java сама поддерживает оперативные средства безопасности. Но для элементов системы, не реализованных средствами Java, защита памяти сохраняет надежность системы, обеспечивая "заслон" между такими элементами. Окончательный результат? Internet устройство может поддерживать как приложения Java, так и высокопроизводительные родные для данного процессора приложения, без всякой потери надежности.

Вместе с возможностью использовать исходные коды POSIX (а, следовательно, и Unix), производители Internet устройств теперь могут идти по стопам многих появляющихся разработок - PC или иных - с минимальными затратами. Но, конечно же, не все эти разработки пришли из мира Unix; многое появилось из мира Windows. В результате, QNX Software Systems работает с Willows Software (www.willows.com) над переносом Willows RT toolkit, который дает возможность разработчикам переносить код Win32 в ОС реального времени QNX.

Встраиваемый GUI

Для управления различными графическими приложениями, которые хотят видеть покупатели, Internet устройствам нужна оконная система. Базовая графическая библиотека, пока достаточно маленькая, и не является достаточной для управления полномасштабными приложениями, такими как web-броузеры. Но с другой стороны, базовая настольная оконная система, которая будет поддерживать все требуемые функции, потребует слишком много ресурсов, чтобы стать эффективной по цене!

Существует один выход из этой дилеммы. Мы уже видели, как технология микроядра может помочь при создании богатой, требующей мало памяти операционной среды. То же самое эта технология делает и с оконной системой. К примеру, Photon microGUI операционной системы QNX, построенный вокруг "графического" микроядра - это расширяемая оконная система, которая может поддерживать все функции универсального GUI, помещаясь в очень маленький объем памяти: приблизительно в 500К, при специальной настройке для Internet устройств.

Конфигурация 2+2

В дополнение к функциональным возможностям, необходимым для построения Internet устройства, оперативная среда QNX/Photon поддерживает минимальные функции протокола TCP/IP, помещающиеся в 50К памяти, и файловую систему для flash памяти (или вращающегося диска). Обе функции добавляются в виде процессов, управляемых микроядром ОС. Суммарная память, требуемая для этого окружения, включая ОС, оконную систему, сеть, файловую систему, web-броузер Spyglass, email, редактор для чтения групп новостей Internet и личный информационный менеджер (расписание, адреса и т. д.), помещаются в менее чем 2M flash памяти и в 2M RAM памяти. Это, так называемая, конфигурация "2+2" значительно меньше, чем та, которую требует настольная ОС для поддержки тех же самых функций. И это, также, значительно меньше, чем та, которую требует окружение ОС Java.

Среда разработки и макетирования

Поскольку Internet устройства могут быть, по существу, PC-совместимыми платформами, разработчик может использовать обыкновенную настольную PC для разработки и макетирования платформы для конечного продукта. На PC может быть установлено необходимое периферийное оборудование (например, модем), и разработка программного обеспечения может происходить параллельно с разработкой аппаратной части. Для более близкого моделирования производственных характеристик фактического устройства, разработчик может использовать одну из нескольких макетов плат, выпущенных AMD, Intel и National Semiconductor.

Заключение

Заимствуя электронные технологии у настольной PC, и совмещая их с соответствующим окружением встраиваемого программного обеспечения, разработчик может без труда создавать Internet устройства. Более того, с ростом потребностей покупателя, разработчик может брать дополнительные технологии прямо у вечно развивающегося мира PC компьютеров, с минимумом перестройки. Совокупность характеристик позволяет Internet устройствам на базе PC достигать отличительных признаков среди популярных серийных продуктов массового потребления: короткое время выхода на рынок, низкая цена проектирования, минимальный риск и возможность поддерживать последние возможности и технологии, требуемые покупателям.

Dan Hildebrand
Senior Architect, R&D
QNX Software Systems Ltd.
[email protected]

Перевод: A. Николаев, С. Ющенко

Рассказать друзьям:

     Рейтинг@Mail.ru