Windows Embedded Compact 7 — отличная платформа для разработки устройств


PDF версия

Введение

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

Возможности

Что же конкретно даёт WEC 7 разработчику? Компактность, которая позволяет использовать не только мощные платформы для построения устройств, но и платформы с ограниченными вычислительными возможностями. Кросс-платформенность расширяет выбор аппаратной начинки устройства — возможность применения ARM, MIPS или широко распространённой x86-архитектуры. Для полноценной работы современных микропроцессоров в WEC 7 реализована поддержка многоядерности и оперативной памяти вплоть до 3 Гбайт. Многозадачность: до 32 тыс. одновременно запущенных процессов с виртуальным адресным пространством в 2 Гбайт для каждого процесса; ограничения на количество потоков, исполняющихся в контексте каждого процесса, не накладываются и определяются исключительно возможностями аппаратной платформы — в первую очередь, объёмом оперативной памяти. Уникальная для ОС компании Microsoft архитектура WEC 7 позволяет строить на её основе системы реального времени, причем появившаяся в новой версии поддержка многоядерных процессоров расширяет возможности таких систем. А именно, имеется возможность одновременно обеспечивать требования для работы в режиме реального времени и предоставлять интерфейс пользователя, разработанный с использованием таких современных технологий как, например, Silverlight for Windows Embedded.
Безусловно, ввиду особенностей WEC 7 и, в первую очередь, её компактности, кросс-платформенности и работе в режиме реального времени архитектура данной системы отличается от архитектуры настольной системы Windows. Этот факт означает, как минимум, бинарную несовместимость, т.е. невозможность использования исполняемых файлов драйверов и приложений, разработанных для настольной системы. При этом реализованная модель драйверов, с одной стороны, проще, чем в настольной системе. С другой стороны, инфрастуктура ряда драйверов (Wi-Fi, NDIS) максимально приближена к реализации таковых в Windows 7, что позволяет при необходимости быстро разрабатывать драйверы или использовать существующие наработки.
Доступный в компонентной форме функционал системы, полный перечень которого приведён в таблице 1, содержит все необходимые элементы для построения современных устройств. В особенности это касается мультимедийных устройств с расширенными коммуникационными возможностями. Среди всего спектра поддерживаемых в Compact 7 технологий следует отметить новые возможности по разработке интерфейсов устройств — поддержку сенсорных экранов с распознаванием множественных касаний и Silverlight for Windows Embedded. SfWE –это портированная версия Silverlight 3.0 для работы на устройствах под управлением WEC 7. Особенностью данной реализации Silverlight является то, что разработка приложений ведётся на C/C++. Использование машинного кода даёт выигрыш в производительности и позволяет напрямую взаимодействовать с драйверами.

Таблица 1. Перечень функционала системы WEC 7

Приложения

Драйверы устройств

Шрифты

ActiveSync

Аксселерометр

Scripts

Справка

Аудио

Symbol

Клиент RDP 7

Драйвер подсветки

UI

WordPad

Драйверы шин (I2C, PCI)

Web Fonts

Office Viewers (Word, Excel, PowerPoint, PDF)

Камера

Wingdings

Internet Explorer 7.0 + Adobe Flash 10.1

Дисплей

Графическая подсистема

Поддержка приложений

Устройства ввода/вывода (клавиатура/мышь)

Аудиокодеки

.NET Compact Framework 3.5

Сетевые адаптеры

Графическая подсистема (GDI, DirectDraw)

Active Template Library (ATL)

SD

Мультимедиа (аудио-, видеокодеки, DRM, DirectShow)

C Libraries and Runtimes

Последовательный порт

Интернационализация

CE Messaging API (MAPI)

Smart Card

Поддержка кодовых станиц

Component Services (COM and DCOM)

Устройства хранения (ATAPI, флэш)

Multilingual User Interface (MUI)

Lightweight Directory Access Protocol (LDAP) Client

USB

Безопасность

Message Queuing (MSMQ)

USB Audio

Kerberos

Object Exchange Protocol (OBEX)

Администрирование

NTLM

Pocket Outlook Object Model (POOM) API

Simple Network Management Protocol (SNMP)

Schannel (SSL/TLS)

SMS transport for CEMAPI

Подсистема хранения

Службы сертификатов

SQL Compact

Сжатие

Оболочка и UI

Standard SDK for Windows Embedded Compact

Поддержка баз данных

Оконный менеджер

String Safe Utility Functions

Репликация файлов и баз данных

Touch Gestures

XML

Диспетчер кэширования файлов

Оболочки

Коммуникации

Реестр

Оболочка командной строки

Поддержка сетей сотовой связи

Файловые системы

Стандартная оболочка

Connection Manager

Binary Rom Image File System

Оболочка мультимедийного устройства (Silverlight)

MTP Responder

CD/UDFS File System

Оболочка тонкого клиента

Протоколы сетевого взаимодействия (TCP/IP, IPSec, UPnP, SMB, WinSock)

exFAT File System

Интерфейс

Поддержка беспроводных сетей (Wi-Fi, Bluetooth 2.1)

FAT File System

Поддержка стандартных элементов управления (Common Controls)

Поддержка удаленных сетей (RAS/PPP, PPPoE, VPN)

Transaction-Safe FAT File System (TFAT)

Поддержка стандартных диалоговых окон

Сервера

Файловые системы

Панель управления (Silverlight for Windows Embedded)

DHCP

Binary Rom Image File System

Настраиваемый интерфейс (Windows XP-like Sample Skin)

Файловый сервер

CD/UDFS File System

Настройки дисплея

FTP

exFAT File System

Настройки по подключению

Принт-сервер (SMB/CIFS)

FAT File System

Сетевые настройки

Сервер входящих соединений RAS/PPTP

Transaction-Safe FAT File System (TFAT)

Региональные настройки

SNTP

Экранная клавиатура

Telnet

Поддержка сенсорных экранов (Stylus)

Web-сервер

Настройка Wi-Fi


Инструментарий

Возвращаясь к одному из ключевых моментов при выборе системы — средствам разработки, следует отметить, что инструментарий разработчика состоит из Microsoft Visual Studio 2008 Professional c соответсвующим дополнением (Platform Builder), пакета для тестирования устройств (Compact Test Kit), средства для разработки интерфейсов Microsoft Expression Blend 3, а также вспомогательных утилит.
Уже само по себе использование VS в качестве основного инструмента проектировщика является неоспоримым преимуществом WEC 7, поскольку, предоставляя мощные средства по разработке кода и его отладке, VS является самой распространенной средой на платформе Microsoft. VS 2008, как известно, является универсальным инструментом по разработке приложений, и изначально в неё не включены средства по разработке образов WEC 7. Специальное дополнение Platform Builder расширяет возможности VS по конфигурированию, сборке и отладке образов WEC 7.
Функционал будущего устройства формируется при помощи каталога, который насчитывает несколько сотен компонентов. Компонент является минимальной единицей функциональности, которая может быть добавлена в образ и, очевидно, что между компонентами существуют зависимости, т.е., например, приложения Windows из поставки требуют наличия в образе оконного менеджера и других компонентов графической подсистемы. Важно, что разрешение подобных зависимостей происходит автоматически, а именно, при добавлении того или иного компонента все необходимые для его работы компоненты добавляются без участия разработчика.
Сборка образа системы формально выполняется из исходных кодов, которые поставляются в составе средств разработки Compact 7, но в действительности выполнять сборку полностью из исходных кодов нецелесообразно, поскольку все компоненты системы поставляются в предсобранном виде, что значительно сокращает время сборки.
Важной особенностью Platform Builder является возможность отладки образа системы как непосредственно на самом устройстве, так и в эмуляторе. В качестве эмулятора устройства в WEC 7 используется Microsoft Virtual PC — бесплатное средство виртуализации на платформе Microsoft Windows. Помимо аппаратной отладки в средствах разработки WEC7 реализованы специальные механизмы полностью программной отладки, которая не требует каких-либо вспомогательных средств кроме станции разработки, на которой установлены средства разработки, и самого устройства. Для разработчика WEC 7 доступны как стандартные средства отладки VS — стек вызовов, точки останова, просмотр содержимого переменных и пр., так и целый класс новых для VS средств, которые позволяют удалённо запускать приложения, регулировать в процессе исполнения на устройстве детализацию отладочной информации, выполнять типичные операции по просмотру содержимого файловой системы и реестра, исследовать производительность системы и анализировать её поведение для обеспечения требований по реальному времени. Все эти операции можно выполнять удалённо на самом разрабатываемом устройстве.
Практически весь цикл разработки устройств на базе WEC 7 выполняется в среде VS за исключением непосредственно тестирования работы устройства в целом, которое вынесено в отдельный пакет — Compact Test Kit (CTK). CTK предоставляет расширяемую инфраструктуру для массового тестирования устройств с удобными средствами анализа результатов. В состав пакета входит большое количество библиотек тестирования различных функциональных блоков устройства (графической подсистемы, портов ввода/вывода и т.д.), а также имеется возможность расширить этот набор собственными тестами. Архитектура CTK позволяет запускать тесты как вручную непосредственно на устройстве, так и в автоматическом режиме с сервера тестирования, на который будут поступать результаты тестирования.
Третьим основным инструментом, но, скорее, дизайнера, чем разработчика, является Microsoft Expression Blend 3, который дополняет возможности VS в плане разработки интерфейсов с использованием Silverlight for Windows Embedded. Основным преимуществом использования SfWE является разделение процесса создания интерфейсной части приложения, то, каким образом оно будет выглядеть, а также логика работы приложения. Как следствие применения такого подхода становится возможным быстро модернизировать интерфейс с минимальными изменениями в коде приложения.

Лицензирование

Совместно со средствами разработки поставляются исходные коды основных компонентов системы, в частности, ядра системы. Исходные коды позволяют понять принципы работы ОС в случае, если данных в документации недостаточно. Также имеется возможность использовать предоставленные исходные коды для реализации собственного функционала или выполнить их доработку без каких-либо отчислений в пользу Microsoft или декларирования, т.к. все вносимые модификации полностью остаются за разработчиком и не требуют публикации, как, например, в случае GPL-лицензии. Тем самым при использовании WEC 7 полностью защищены права компании-разработчика.
Как и в большинстве продуктов компании Microsoft, для использования WEC 7 в конечных устройствах необходима лицензия на устройство. В WEC 7 доступно несколько вариантов лицензий в зависимости от выбранного функционала ОС. В общем случае можно выделить два типа лицензий: базовую и полную. Также предлагается несколько вертикальных лицензий, применение которых ограничено конкретным типом устройств, например, портативными навигационными системами. Гибкая политика лицензирования позволяет выбрать именно тот тип лицензии, который наилучшим образом соответсвует разрабатываемому устройству, что в ряде случаев позволяет ощутимо сэкономить на лицензировании.

Выводы

Windows Embedded Compact 7 обеспечивает все необходимые средства проектирования, позволяя полностью охватить цикл разработки образов системы от этапа прототипирования в эмуляторе до всестороннего тестирования.
WEC 7 не только поддерживает широкий набор передовых технологий для разработки современных устройств, но и обладает уникальным рядом особенностей, который может стать определяющим при выборе в пользу данной системы. В первую очередь, к таким особенностям относятся компактность, кросс-платформенность и работа в режиме реального времени.
Благодаря развитой экосистеме экспертов и профессионалов вхождение в цикл разработки устройств на базе WEC 7 может быть максимально эффективными быстрым. Для начинающих разработчиков доступны авторизированные курсы и сертификационные экзамены, что также является весомым аргументом в пользу выбора WEC 7.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *