Как начать разработку на Windows XP Embedded*

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

Действительно, включив в образ операционной системы только необходимые компоненты, можно тем не менее воспользоваться всеми богатыми возможностями Win32 API и системной инфраструктуры XP Professional. Для разработки приложений, работающих под управлением XP Embedded, нет необходимости переучивать разработчиков, создающих приложения под XP Professional, равно как и нет нужды в каких-либо специализированных средствах разработки — любые продукты, обеспечивающие разработку для XP Professional, позволяют осуществлять разработку программ и для XP Embedded.

Решаема и обратная задача — создание образа операционной системы, на котором может работать написанное ранее приложение. Версия XP Embedded включает специальные компоненты — макросы совместимости, позволяющие быстро адаптировать образ для запуска существующих приложений.

Итак, становится понятно, откуда в названии этой специализированной операционной системы суффикс XP. Что же делает XP встроенной, или Embedded? Во-первых, то, что она состоит из компонентов, и, во-вторых, имеет дополнительные возможности для встраивания. Представление возможностей операционной системы в виде отдельных компонентов позволяет разработчику включать в образ только необходимые компоненты, а дополнительные возможности встраивания — эффективно создавать специализированные устройства.

Поскольку операционная система Windows XP Embedded состоит из тех же бинарных файлов, что и Windows XP Professional, практически все возможности, которые есть в XP Professional, поддерживаются и в XP Embedded, например:

  • вытесняющая многозадачность;
  • поддержка нескольких процессоров;
  • Win32 API;
  • модель драйверов Windows (WDM);
  • шифрованная файловая система (EFS);
  • IP Security (IPSec);
  • Kerberos;
  • Windows Firewall;
  • DEP (Data Execution Prevention);
  • Internet Explorer 6;
  • проигрыватель Windows Media версии 9;
  • поддержка DirectX 9.0c API;
  • удаленный рабочий стол (Remote Desktop);
  • точки восстановление системы (System Restore Point);
  • консоль восстановления (Recovery Console);
  • Windows Management Instrumentation;
  • TCP/IP, UDP;
  • протокол IPv6;
  • беспроводные сети и устройства (Wi-Fi, IrD, Bluetooth);
  • Internet Information Server;
  • .NET Framework 1.1;
  • ASP.NET;
  • и т. д.

Помимо этого, система поддерживает дополнительные возможности для встраивания:

  • Enhanced Write Filter, т. е. загрузка с носителей только для чтения; зашита носителя от записи;
  • загрузка с CompactFlash;
  • загрузка с CD-ROM, по стандарту El Torito;
  • загрузка с устройств Disk-On-Chip;
  • загрузка операционной системы из сохраненного файла, режим Hibernate Once Resume Many, загрузка операционной системы происходит за 5 с в заранее настроенное состояние.
  • автономные устройства (без мыши, монитора, клавиатуры);
  • загрузка по сети (PXE), загрузка системы в образ, находящийся на сервере;
  • агент обновления устройств (DUA), позволяет обновлять образ после развертывания;
  • перехват системных сообщений;
  • использование оболочки операционной системы.

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

Из таблицы сравнения становится понятно, что собрать контроллер домена на базе функций Windows XP Embedded невозможно. Так для каких же целей предназначена данная встраиваемая операционная система? Прежде всего, это устройства, которые не имеют жестких ограничений на размер носителя с операционной системой и доступной оперативной памяти, например: телевизионные приставки (для кабельного ТВ, видео по запросу, игровые и т. д.); игровые автоматы; тонкие клиенты; устройства для точек розничного обслуживан; медицинское оборудование; печатное оборудование; информационные киоски; банковские терминалы и банкоматы; домашние мультимедиа-устройства; устройства удаленного сбора информации; и т.д.

В поставку XP Embedded входят шаблоны для дизайна некоторых популярных типов устройств, позволяющие ускорить процесс их разработки; кроме того, поставка включает макросы, которые могут пригодиться при разработке и тестировании. В табл. 2 приведены ориентировочные размеры образов для вышеуказанных шаблонов дизайна и вспомогательных компонентов макросов.

Один из вспомогательных макросов, MinKernel Sample Macro (Demo), включает в себя ядро Windows XP, его зависимости и драйверы устройств, не требует прохождения процедуры FBA, при запуске отображает черный экран и выводит в отладочный порт сообщение Debug и не поддерживает Win32 API. Если на устройстве требуется запускать приложения или давать пользователю возможность интерактивно взаимодействовать с устройством, необходимо использовать конфигурацию на основе менеджеров сессий MinLogon или WinLogon. Тестовые конфигурации на их основе, соответственно, представляют остальные два компонента макроса для разработки: MinLogon Sample Macro и WinLogon Sample Macro.

Менеджер сессий MinLogon использует облегченный процесс входа в систему, при котором пользователь всегда регистрируется как системный пользователь. Конфигурации с MinLogon задействуют, если нет необходимости зарегистрироваться в системе локально или с доменной учетной записью. Менеджер сессий MinLogon имеет меньше зависимостей, чем WinLogon, поэтому обычно результирующий образ с MinLogon меньше аналогичного с WinLogon. При использовании MinLogon полностью поддерживается Win32 API (Kernel32, GDI32, User32 и Advapi32).

Менеджер сессий Winlogon использует стандартный процесс входа Winlogon, поставляемый с Windows XP Embedded, соответствующий стандартному входу в систему в XP Professional.

Обратите внимание, что в табл. 2 в скобках, рядом с названиями шаблонов дизайна, указан менеджер сессий, с которым собирался образ: WinLogon или MinLogon. Если менеджер сессий не указан, значит, шаблон не предоставляет возможности его выбирать.

Дополнительные системные требования к устройству XP Embedded приведены ниже.

  • Процессор Intel Pentium II (либо совместимый) или выше.
  • ACPI PnP BIOS.
  • Peripheral Component Interconnect (PCI).
  • Носитель (HDD, CF, DoС) или сетевой адаптер с поддержкой PXE для загрузки по сети.
  • Размер оперативной памяти (RAM) зависит от типа разрабатываемого устройства.

Требования к системе разработчика:

  • Microsoft Windows 2000 SP4 или выше;
  • Microsoft SQL Server 2000 или MSDE (Microsoft SQL Server Desktop Edition) 5.0;
  • минимум 728 МГц процессор (рекомендуется 1 ГГц);
  • минимум 256 Мбайт оперативной памяти;
  • 3 Гбайт свободного места на диске;
  • 512 Мбайт - 1 Гбайт неразмеченного пространства на диске;
  • рекомендуемый размер файла подкачки - не менее 600 Мбайт;
  • Windows Embedded Studio (Windows XP Embedded c Service Pack 2).

Пробную версию Windows XP Embedded c Service Pack 2 можно получить у локального дистрибьютора встраиваемых систем Microsoft, заказать или загрузить на сайте компании Microsoft. Инструкция по установке Windows Embedded Studio находится на компакт-диске, на котором продукт поставляется.

Станислав Павлов - Системный аналитик в компании «Кварта Технологии», дистрибьюторе встраиваемых систем Microsoft. Имеет сертификат инструктора по Windows CE и Windows XP Embedded. stas@quarta.ru


* Примечание. Эта статья основана на материалах готовящейся к печати книги «Введение в разработку решений на базе Windows XP Embedded».