Максим Донченко,
технический директор компании "Кварта Технологии"
Maximd@quarta.com

Сегодня многие уже не представляют себе существования без мобильного телефона или портативного цифрового аудиоплеера. Никого не удивляет установленный на улице или в вестибюле метро банкомат. В домах часто можно встретить приемник кабельного или спутникового телевидения. Все большее число фотолюбителей предпочитают цифровые фотокамеры. Что объединяет все эти устройства? Ответ прост - во всех них внутри имеется микропроцессор. При этом зачастую производительность его достаточно высока - всего несколько лет назад такая вычислительная мощь казалась мечтой большинству владельцев настольных компьютеров.

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

В 1996 г. корпорация Microsoft (http://www.microsoft.com) выпустила свою первую ОС для некомпьютерных интеллектуальных устройств - Microsoft Windows CE 1.0. Одна из главных идей этого проекта состояла в том, чтобы создать платформу, которая, решая специфические задачи такого оборудования, позволяла бы применять знания, уже накопленные при разработке программ для компьютеров под управлением Windows. Было выполнено и другое немаловажное требование к платформе: в ней были реализованы все новейшие достижения в области ИТ, такие, как Интернет-технологии, беспроводные коммуникации, технологии цифровой звукозаписи и видео и многое другое. Все это еще в большей степени позволило сократить стоимость и время разработки и, соответственно, создавать массовый высокотехнологичный продукт в широких областях.

Сегодня Microsoft предлагает целое семейство ОС для некомпьютерных интеллектуальных устройств (рис. 1). В него входят несколько классических ОС с лицензионным ограничением на использование только во встраиваемых и некомпьютерных устройствах, две ОС широкого применения, а также версии серверных ОС для создания специализированных сетевых серверов (подробнее см. http://www.msembedded.ru). Рассказать обо всех продуктах семейства в рамках одной статьи не представляется возможным, так что придется остановиться на флагманах.

Windows XP Embedded предназначена для банкоматов, игровых автоматов, мощных телевизионных приставок, кассовых машин, торговых терминалов и информационных киосков - везде, где требуется высокая производительность, защита информации, использование стандартного компьютерного оборудования, минимальные затраты на разработку и использование прикладного ПО.

Windows CE .NET 4.2 создавалась для мобильных устройств, терминалов, сотовых и IP-телефонов, телевизионных приставок, промышленной автоматики и других устройств, где требуется минимальный размер, согласованное действие множества микропроцессорных архитектур, а также возможность работы в условиях жесткого реального времени.

Fig.1
Рис. 1. Семейство ОС Microsoft для некомпьютерных интеллектуальных устройств.

Системы Microsoft для мобильных и встраиваемых устройств

Microsoft выделяет группу программных продуктов категории Mobile & Embedded Devices в одно из семи основных направлений своего бизнеса. Хотя, по меркам компании, объем продаж этих решений пока не очень значителен (250 млн долл., менее 1% от общего оборота), она уделяет их развитию особое внимание, учитывая основные тенденции развития ИТ.

Как видно из названия, технологии Mobile & Embedded делятся на две части. Встроенные системы представляют собой в первую очередь технологические платформы, на основе которых разработчики аппаратуры могут создавать законченные решения. В частности, Windows CE, один из ключевых продуктов Windows Embedded, - это не ОС в привычном для пользователя настольного ПК понимании. В нее входит ядро ОС и программный интерфейс API, обеспечивающий разработчику независимость от конкретной конфигурации аппаратуры (в частности, от архитектуры микропроцессоров).

Вторая составляющая, Windows Mobile - это ОС для пользователей, реализованные на базе встроенных платформ и предназначенные для работы в соответствующих мобильных устройствах. Microsoft выпускает два основных вида таких систем: Pocket PC и Smartphone.

Следует также упомянуть о средствах разработки приложений для встроенных и мобильных систем, которые сейчас в основном распространяются в качестве дополнений к Visual Studio .NET (подробнее см. "Средства разработки для мобильных систем от Microsoft", "BYTE/Россия" No 7'2003).

До недавнего времени Microsoft фактически не занималась продвижением продуктов Mobile & Embedded в нашей стране. Однако в начале 2004 г. корпорация подписала дистрибьюторское соглашение с компанией "Кварта Технологии" (http://www.quarta.ru), означающее начало активной работы в области продвижения на рынок России и СНГ. Соглашение предусматривает поставку только продуктов, относящихся к группе Embedded, хотя ожидается, что в ближайшем будущем его действие будет распространено и на Windows Mobile (средства разработки для мобильных и встроенных систем распространяются по обычным каналам поставок).

Андрей Колесов

Microsoft Windows XP Embedded

Как видно из названия, данная ОС продолжает семейство Windows XP для настольных компьютеров и ноутбуков. Ее предшественницей была Windows NT 4.0 Embedded, на базе которой уже были отработаны многие черты и подходы, воплощенные затем в Windows XP Embedded.

Принципиально отличает ее от "настольных" родственников то, что в составе этой ОС полностью отсутствует пользовательская программа начальной установки. Для разработчика система предоставляет набор компонентов (около 10 тыс.), из которых с помощью специального инструментария собирается готовый образ системы, предназначенный для конкретного целевого устройства (рис. 2). Образно говоря, сборка решения похожа на сборку из деталей конструктора Lego, только в качестве строительных блоков используются программные компоненты: ядро, драйверы устройств, сетевые протоколы, графические оболочки и прикладные программы. Надо отметить, что во время сборки происходит проверка взаимозависимостей между компонентами, поэтому невозможна ситуация, когда в проекте с поддержкой сетевого протокола не окажется ни одного драйвера сетевых карт.

Fig.2
Рис. 2. Управление сборкой образа системы для конкретного целевого устройства.

Все драйверы устройств или прикладные подсистемы, созданные для Windows XP на настольных компьютерах, можно без каких-либо переделок использовать и в решениях на базе Windows XP Embedded. В состав этой ОС входят все компоненты, ответственные за безопасность, шифрование данных и авторизацию доступа, что позволяет интегрировать устройства, работающие под ее управлением, в существующие информационные системы, в том числе под управлением Microsoft Active Directory. Если в стандартном наборе компонентов не найдется необходимого для конкретной решаемой задачи, то его можно расширить, для чего в инструментарий включены программа создания новых компонентов и программа управления базой, в которой хранятся компоненты.

Компонентный подход к сборке системы открывает широкие возможности при создании решений для широкого круга устройств, обеспечивая при этом высокую степень надежности и защиты для целевой конфигурации. Все это достигается за счет того, что разработчик четко определяет необходимые компоненты, их взаимодействие между собой и возможные взаимодействия с внешним миром. Для минимальной конфигурации, в которую входят ядро, поддержка файловой системы и управление из командной строки, требуется всего 8 Мбайт свободного места на носителе и столько же оперативной памяти. В максимальной конфигурации, которая по функциональности полностью соответствует Windows XP Professional, потребуется около 1,5 Гбайт на жестком диске и как минимум 128 Мбайт оперативной памяти.

В отличие от ОС для ПК, в состав Windows XP Embedded включено несколько функций, впрямую ориентированных на использование ее в некомпьютерных устройствах. Яркий пример подобных функций - возможность загрузки системы с различных носителей, таких, как карты флэш-памяти, компакт-диски, сетевые устройства. При этом данные устройства могут не поддерживать записи данных, работая только на чтение.

Когда речь идет о создании сетей некомпьютерных устройств, например, банкоматов, одной из важных функций становится система управления ими, обновления встроенного ПО и дистанционного мониторинга. Все эти функции включены в состав Windows XP Embedded и базируются на наборе стандартных протоколов, позволяющих легко интегрировать создаваемые устройства в существующие системы управления.

Теперь несколько слов о прикладном ПО. Большое достоинство Windows XP Embedded в том, что в решениях на ее основе можно применять ровно то же самое ПО, которое было разработано для настольных компьютеров. С другой стороны, для разработки нового ПО можно использовать весь спектр доступных инструментов, созданных для разработки программ под Windows, а отладку выполнять на стандартных ПК, не дожидаясь готовности заказанного оборудования.

Полная совместимость с ПО для настольных компьютеров, помимо очевидных плюсов, несет в себе и набор минусов. Первый из них: поддерживаются процессоры только архитектуры x86. Второй: достаточно высоки требования к оборудованию и электропитанию. Третий: отсутствует поддержка работы в режиме реального времени. Если первые два минуса без изменения программной платформы устранить нельзя, то третью проблему можно решить несколькими способами, при помощи ПО третьих фирм. Первые же два недостатка устранены в другой флагманской ОС Microsoft, предназначенной для некомпьютерных устройств и называющейся Windows CE, а именно в ее последней версии - Windows CE .NET 4.2*.


* Когда статья уже была сдана в редакцию, Microsoft объявила о выпуске новой версии Windows CE 5.0 (см. врезку).

Вышла Windows CE 5.0

В августе корпорация Microsoft выпустила Windows CE 5.0 (Macallan). Основные ее новшества связаны с расширением возможностей разработчиков ПО, с увеличением списка поддерживаемых микропроцессоров, улучшением средств безопасности, более широким набором мультимедийных функций. В ОС Windows CE 5.0 включен ряд новых и улучшенных технологий, повышающих производительность и надежность создаваемых на ее основе решений.

Повышение производительности труда разработчиков достигается за счет драйверов устройств, пригодных для промышленной эксплуатации, и унифицированной сборки. Предоставляются также улучшенные средства автоматизированного тестирования и обслуживания - Windows Error Reporting (отчет об ошибках Windows), расширение функциональности Windows CE Test Kit (испытательного комплекта для Windows CE).

В системе имеются расширенные мультимедийные функции - Direct3D Mobile для мультимедийных, игровых и других приложений.

Повышенная безопасность означает прогнозирование опасностей, настройки безопасности по умолчанию, поддержку стандарта AES (Advanced Encryption Standard).

Новая версия обеспечивает широкий доступ к исходному коду и гибкость разработки - в комплект поставки входят 2,5 млн строк исходного кода, на 25% больше по сравнению с версией 4.2. Управляемость и гибкость операций при работе с Windows CE повышены за счет использования XML-стандартов.

Модифицированная среда Platform Builder включает все инструменты разработки, необходимые для планирования, разработки, сборки, тестирования и отладки создаваемых систем.

Подробное описание всех новшеств в Windows CE 5.0 можно найти по адресу http://www.msembedded.ru.

Microsoft Windows CE .NET 4.2

История Windows CE отсчитывается с 1996 г., но в тот момент эта ОС предназначалась для карманных компьютеров. Выпустив в 1998 г. вторую версию системы, Microsoft поменяла ее позиционирование, расширив целевой спектр применения и включив в него различные виды устройств, начиная от автомобильных компьютеров и систем навигации и заканчивая системами промышленной автоматики и мобильными устройствами. Появление летом 2003 г. версии 4.2 стало логичным этапом в процессе создания ОС для некомпьютерных устройств с архитектурой, отличной от настольных ПК.

Весь спектр возможных применений Windows CE был заложен в архитектуре системы, так как она изначально создавалась без привязки к какой-либо процессорной архитектуре или конкретной аппаратной реализации. Единственное ограничение состояло в том, что процессор был 32-разрядным. Уже сейчас система поддерживает процессоры четырех архитектур (ARM, MIPS, SHx, X86) и более двухсот пятидесяти их реализаций от различных производителей.

Разработка решений на базе Windows CE принципиально отличается от сборки Windows XP Embedded или установки ОС для настольных компьютеров (рис. 3). Данный процесс больше похож на разработку прикладной программы: для этого применяется специальная версия среды разработки, называемая Platform Builder и напоминающая Visual Studio. Такой подход обусловлен тем, что для разработчика ОС предоставляет набор библиотек и исходных текстов, из которых с помощью кросс-компилятора и программы сборки получается образ ОС, с включенными в него прикладными программами, готовый к загрузке в целевое устройство.

Fig.3
Рис. 3. Разработка решений на базе Windows CE.

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

Что же позволяет получить Windows CE? Начнем с того, что, хотя система работает на множестве различных процессорных архитектур, слово Windows в ее названии присутствует неспроста: эта система построена на подмножестве стандартного интерфейса программирования Win32 и позволяет переносить прикладные программы, разработанные для настольных компьютеров, на уровне исходных текстов с минимальными модификациями. Из существующих ограничений надо отметить следующие: 32 процесса в системе и 32 Мбайт кода на каждый из процессов. При этом система обладает всеми чертами современных ОС, такими, как вытесняющая многозадачность, поддержка коммуникационных протоколов, работа с различными периферийными устройствами, развитые мультимедиа-возможности.

Такой подход позволяет создавать решения для устройств с минимальными требованиями к аппаратной части. Так, в минимальной конфигурации с ядром и коммуникационным стеком система может работать из постоянной памяти объемом 256 Кбайт и требует всего около 300 Кбайт оперативной памяти. Для сравнения: в максимальной конфигурации (если ее так можно назвать) типовой объем образа ОС вместе с приложениями не превышает 32 Мбайт, а для работы используется не более 64 Мбайт оперативной памяти.

Говоря об оперативной памяти, надо отметить еще несколько особенностей Windows CE. Первая - исполнение программ непосредственно из постоянной памяти без их загрузки в оперативную память, что позволяет существенно сократить требования к объему последней. Вторая - возможность использовать часть оперативной памяти для хранения данных, динамически перераспределяя ее с памятью, используемой для исполнения программ. Третья особенность - использование образа системы в качестве файловой системы, что позволяет размещать в нем файлы статических данных больших объемов и работать с ними, используя стандартные функции чтения файлов.

Что касается коммуникационных возможностей и реализации промышленных стандартов в области коммуникаций, с Windows CE вряд ли сравнится какая-либо другая ОС, предназначенная для некомпьютерных устройств. В ней поддерживается полный спектр проводных коммуникаций на базе протокола TCP/IP, беспроводные коммуникации в стандарте Wi-Fi (802.11), коммуникации стандарта Bluetooth для подключения широкого спектра беспроводных устройств, а также стандартные протоколы для подключения периферийных устройств, такие, как Firewire (IEEE 1384) и USB. В дополнение к коммуникационным протоколам нижнего уровня в систему входят стандартные решения для передачи голоса, например, полная реализация Voice over IP.

Функции мультимедиа, реализованные в Windows CE, включают полную поддержку декодирования различной аудио- и видеоинформации в стандартах Windows Media 9, поддержку подмножества стандарта DirectX 8 и просмотра HTML-страниц с использованием технологии Internet Explorer 6.0. С другой стороны, включенная в комплект поставки поддержка файловых систем CDFS/UDFS, используемых на CD- и DVD-дисках, позволяет с минимальными затратами создавать различного рода потребительские устройства.

Для интеграции некомпьютерных устройств и их компьютерных собратьев Microsoft включила в состав Windows CE набор программ просмотра документов в форматах приложений Microsoft Office (Word, Excel, PowerPoint). Кроме того, в состав системы входят два полноценных приложения: клиент электронной почты Inbox и WordPad, упрощенный редактор текстов в формате Microsoft Word или RTF.

Одна из важнейших особенностей версии 4.2 - интегрированная поддержка выполнения приложений на базе технологии Microsoft .NET. Для этого в состав ОС была включена специальная версия исполняющего ядра .NET под названием .NET Compact Framework. Таким образом, стало возможно создавать прикладные приложения, которые без модификации могут исполняться как на настольных компьютерах и серверах, так и на некомпьютерных устройствах. В качестве среды разработки для подобных приложений используется стандартная среда Microsoft Visual Studio .NET.

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

При таком разнообразии функций, включенных в состав ОС, может показаться, что перед разработчиком встанет проблема, как выбрать именно тот набор функций, который необходим в его целевом устройстве. Чтобы облегчить решение данной задачи, в состав инструментальных средств включен специальный мастер, который на базе шаблонов стандартных устройств (терминал, контроллер, мобильный компьютер, сетевой маршрутизатор и т. п.) позволяет быстро создавать стартовые проекты, содержащие необходимый согласованный набор компонентов.

В заключение остановимся на том, что Windows CE представляет собой систему реального времени (СРВ). Чтобы избежать заблуждений, связанных с данным понятием, сразу уточним, что основная характеристика СРВ - это не мгновенная реакция на события, а гарантированное время реакции на события; иными словами, вне зависимости от текущего состояния системы и приложений в ней можно точно гарантировать определенное время реакции и обработки событий.

Сейчас система поддерживает 256 уровней приоритета исполнения, вложенные обработчики прерываний и очень малое время между процедурой обработки прерываний (Interrupt Service Routine, ISR) и потоком обработки прерываний (Interrupt Service Thread, IST). Для процессора Intel Pentium 166 МГц среднее время задержки вызова обработчика прерываний составляет 2,8 мкс, а среднее время запуска потока обработки - 17,9 мкс. Что касается скорости, то она в первую очередь зависит не от самой ОС, а от той аппаратной платформы, на которой она работает.

Подводя итог всему сказанному о Windows CE, можно сделать заключение, что эта ОС предназначена для широкого спектра устройств, где требуется работа в режиме жесткого реального времени, при минимальных требованиях к аппаратуре, а также на процессорах с архитектурой, отличной от X86.

Симбиоз ОС для комплексных задач

Помимо каждой из ОС по отдельности, мы расскажем еще о возможности построения комплексных решений. Речь пойдет об уже существующем, реальном продукте, который служит основой для жизнедеятельности более 50 тыс. промышленных роботов. Жизненный опыт показывает, что достаточно часто для успешной реализации того или иного решения бывает сложно подобрать универсальную платформу, которая отвечала бы всем требованиям одновременно.

Решить подобную задачу удалось специалистам немецкой компании KUKA Controls (http://www.kukacontrols.com) - дочерней компании KUKA Roboter, производителя промышленных роботов. KUKA Controls создала продукт, который называется CeWin и позволяет запускать в рамках одного компьютера сразу две ОС - Windows XP Embedded и Windows CE .NET. За счет этого удается совместить в одном компьютере поддержку функционирования приложений в режиме жесткого реального времени, реализованного в Windows CE, с системой визуализации, управления, безопасности и коммуникаций на базе Windows XP Embedded. Таким образом, в рамках одного устройства формируется полноценный управляющий комплекс.

Данный подход имеет несколько ключевых преимуществ. С одной стороны, Windows CE в качестве управляющей системы реального времени позволяет применять стандартные компоненты и драйверы устройств, разработанные для данной системы, что уменьшает стоимость и сокращает время разработки. Windows XP, со своей стороны, позволяет применять стандартное ПО, разработанное для настольных компьютеров, интегрировать готовое устройство в производственную сеть, где реализованы промышленные стандарты безопасности, построенные на базе Microsoft Active Directory.

Далее, использование двух ОС в рамках одной аппаратной платформы уменьшает расходы на аппаратуру и повышает надежность решения за счет сокращения внешних соединений и использования нескольких компьютеров (известно, что чем больше компонентов в системе, тем ниже ее надежность).

И наконец, разработку ПО для каждой из подсистем комплекса можно вести параллельно, используя стандартные компоненты, при этом взаимодействие подсистем скрыто от приложений и для взаимодействия они используют стандартные интерфейсы.

Для демонстрации этих технологических достижений на базе одного из промышленных роботов, работающих под управлением CeWin, был построен аттракцион (рис. 4). Он был высоко оценен зрителями, а правительственные органы Германии, известные своими жесткими требованиями к надежности и безопасности, дали разрешение на эксплуатацию данного аттракциона.

Fig.4
Рис. 4. Этот робот-аттракцион работает под управлением Windows CE и Windows XP Embedded.

В заключение хочется еще раз отметить, что операционные системы для встраиваемых и некомпьютерных устройств от Microsoft прошли долгий путь и, без сомнения, перед этой платформой открыты все двери в будущее. Однако уже сегодня на их основе можно строить многофункциональные, надежные и производительные решения, используя при этом весь богатый опыт разработки программ под Windows, накопленный индустрией за последние годы.

Мобильных .NET технологий в этом году

Как известно, сейчас программисты могут применять два инструмента Microsoft: Visual Studio 2003 для создания .NET-приложений и инструменты eMbedded VC++ или eMbedded VB для написания наиболее эффективного кода на машинном языке. Новый VS 2005 (кодовое название Whidbey), представленный пока в виде бета-версии, объединяет все эти средства, позволяя создавать любые приложения, в том числе в режиме смешанного программирования. В нем реализован модернизированный набор конструкторов для мобильных решений и улучшена поддержка эмулятора оборудования.

Fig.5

В среде Visual 2005 появились новые возможности для разработки мобильных решений.

Новая версия технологии ASP.NET 2.0, включенная в VS 2005, предлагает универсальную архитектуру элементов управления (Unified Control Architecture), которая поддерживает подключаемые адаптеры для исполнения любых элементов управления, не только мобильных. Таким образом, разработчики получили возможность использовать единый набор Web-страниц для широкого спектра устройств, от ПК до WAP-телефонов.

Среда .NET Compact Framework 2.0 в целом показывает более высокую производительность по сравнению с версией 1.0. В нее добавлен ряд новых элементов управления пользовательским интерфейсом, а также возможность отслеживать события, связанные с изменением разрешающей способности экрана или его ориентацией. Добавлены также поддержка технологий IPv6, SOAP 1.2, WS-Security, XPath, преобразование схем в классы C#, улучшенная модель асинхронного взаимодействия с Web-сервисами. Целый ряд новых функций работы с данными связан с использованием новой версии SQL Server CE (кодовое имя Laguna).

Одно из важных направлений расширения сферы применения мобильных устройств - создание приложений, предоставляющих пользователям доступ к территориально-зависимым данным (карты местности, справочники магазинов и т. д.) и соответствующим услугам. В этом плане Microsoft отводит важную роль своему серверному ПО MapPoint Location Server (MLS), представленному полгода назад (см. PC Week/RE N 12/2004, с. 29). MLS в сочетании с Web-сервисами MapPoint позволяет создавать службы, доступ к которым клиентские приложения могут получить через единый набор функций .NET Compact Framework 2.0.