Создание встраиваемого приложения для специализированных устройств

В современных информационных инфраструктурных решениях все чаще начинают использоваться специализированные устройства. Это автоматизированные рабочие станции, размещаемые в общественных местах информационные киоски, предоставляющие клиентам банков различные терминалы, сервисы и т. д. При разработке подобных систем одной из основных задач является снижение совокупной стоимости владения, которая, как известно, включает в себя как стоимость разработки продукта, так и стоимость его поддержки в течение жизненного цикла. Для реализации подобных решений было бы целесообразно использовать существующую информационную и сервисную инфраструктуру, а также знания разработчиков. Такую возможность нам предоставляет встраиваемая операционная система от компании Microsoft — Windows XP Embedded со знакомым разработчикам API. Встраиваемая версия Windows базируется на хорошо зарекомендовавшей себя операционной системе Windows XP Professional, оснащенной разнообразным и доступным инструментарием. Но помимо этого, разработчику встраиваемого решения предоставляется возможность выбирать и добавлять в конечный образ создаваемой им операционной системы только те функции, которые необходимы для конкретного решения. Это достигается путем разбиения операционной системы XP Embedded на компоненты, содержащие сведения о зависимостях от других компонентов, что позволяет разрешать зависимости и добавлять в образ необходимые компоненты в автоматическом режиме.

Кроме того, учитывая тот факт, что встраиваемая версия предназначена для формирования встраиваемых решений, была добавлена уникальная функциональность, изначально отсутствовавшая в базовой версии: поддержка загрузки и работы с носителей только для чтения (CD-ROM); загрузки по сети; поддержка автономных устройств; поддержка режима HORM (Hibernate Once Resume Many), когда состояние системы многократно восстанавливается из первоначально созданного файла hiberfil.sys; технологии EFW (Enhanced Write Filter), обеспечивающей защиту носителей от записи и загрузку с носителей только для чтения; функции обновления устройства с Web-сайта, общей сетевой или локальной папки DUA (Device Update Agent).

Таким образом, можно считать, что Microsoft Windows XP Embedded представляет собой компонентную версию Windows XP Professional с дополнительными возможностями для встраивания. Пробная версия Microsoft Windows XP Embedded c SP2 доступна для загрузки на сайте Microsoft.

Разработка образа

Создание образа встраиваемой системы начинается с использования Microsoft Windows Embedded Studio, удобного инструмента для разработки встраиваемых решений на основе Windows XP Embedded, который включает в себя следующие модули: Target Analyzer, Component Designer, Component Database Manager, Target Designer.

Target Analyzer состоит из двух утилит — 16-разрядной ta.exe и 32-разрядной tap.exe. Он предназначен для определения состава выбранной аппаратной платформы. Component Designer — утилита для разработки собственных компонентов для XPe. Component Database Manager — инструмент управления базой компонентов (импорт, удаление и т. д.), а Target Designer отвечает за создание образов операционной системы для встраиваемого решения.

Разработка образа встраиваемой операционной системы включает следующие этапы:

  1. Определение состава аппаратной платформы, для чего используется Target Analyzer.
  2. Создание компонента, представляющего аппаратную часть конфигурации: результат работы Target Analyzer на шаге 1 импортируется в Component Designer.
  3. Определение отсутствующих, необходимых для решения компонентов (драйверов и/или приложений) путем анализа файла журнала импорта на шаге 2 и требований к встраиваемому решению.
  4. Разработка дополнительных приложений, если необходимо, в Microsoft Visual Studio .NET или с помощью любого другого привычного инструмента.
  5. Создание компонентов необходимых драйверов и/или приложений, для чего используется уже Component Designer.
  6. Разработка стратегии развертывания и обновления решения.
  7. Создание образа системы с использованием Target Designer.
  8. Прохождение созданным образом операционной системы процедуры First Boot Agent (FBA) на целевом устройстве — финальной процедуры подготовки образа, которая выполняется при первой загрузке собранного в Target Designer образа. FBA играет роль программы установки: устанавливает PnP устройства, регистрирует COM библиотеки и т. д.
  9. Тестирование встраиваемого решения.

Создаем информационный киоск

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

Рассмотрим последовательно этапы создания информационного киоска на основе Microsoft Windows XP Embedded c SP2. Первый этап — постановка задачи: необходимо разработать информационный киоск, который будет обеспечивать доступ пользователей к оперативным услугам банка. Услуги банка реализуются через стандартное Web-приложение, что обусловливает использование в качестве оболочки операционной системы приложения Internet Explorer в режиме киоска; наш киоск будет получать доступ к серверам банка через Internet. Чтобы максимально защитить наш образ от модификаций, в качестве носителя образа и источника загрузки будем использовать компакт-диск: простая перезагрузка системы возвращает ее в исходное состояние, вне зависимости от того, какие изменения выполнял пользователь. Обновление системы происходит путем замены компакт-диска в приводе CD-ROM. Будем считать, что наш предполагаемый заказчик уже выбрал целевую аппаратную платформу, и вся разработка будет вестись именно для нее. При этом BIOS целевой платформы должен поддерживать загрузку с привода CD-ROM.

Знакомимся с «железом»

Подключим жесткий диск на нашей целевой аппаратной платформе к первичному каналу IDE в качестве главного, на нем образ будет проходить FBA, а привод CD-ROM подключим ко вторичному каналу IDE, также в качестве главного. Для удобства разработки и тестирования подключим нашу платформу к сети c DHCP-сервером.

В поставке XPe на первом компакт-диске находится среда WinPE — Windows Pre-installation Environment — ее можно загрузить с компакт-диска и выполнить различные служебные операции (подготовку диска к загрузке операционной системы, копирование образа с целевой платформы и т .д.). Для определения состава аппаратной платформы и развертывания образа операционной системы также будет использоваться система WinPE. Определение аппаратного состава целевой платформы включает следующие действия:

  1. Установка диска c WinPE в привод компакт-дисков.
  2. Загрузка системы с привода CD-ROM в WinPE и получение IP-адреса от сервера DHCP.
  3. Подсоединение сетевого диска, на котором будет храниться результат работы Target Analyzer: net use z: серверсетевая_папка.
  4. Запуск утилиты Target Analyzer: tap /o z:kiosk.pmq (см. экран 1).
  5. Импорт результатов работы утилиты — файл kiosk.pmq — в Component Designer.
  6. Установка в свойствах компонента в качестве прототипа свойства Selector Prototype Component, позволяющего выбирать или отменять включение одной или нескольких составляющих компонента в образ в программе Target Designer.
  7. Присвоение компоненту имени Kiosk — Hardware Config.
  8. Установка состояния компонента в режим готовности «Release» и его сохранение.
  9. Импорт в базу компонентов с использованием Component Database Manager.
Экран 1. Запуск утилиты Target Analyzer в WinPE

Теперь компонент Kiosk — Hardware Config доступен в Target Designer (см. экран 2).

Экран 2. Компонент Kiosk — Hardware Config в программе Component Desigener

Создание конфигурации

Формирование конфигурации операционной системы с названием InfoKiosk начинается в программе Target Designer: в ней добавляем в конфигурацию созданный ранее компонент Kiosk — Hardware Config, а также компонент поддержки загрузки с компакт-диска — El Torito CD Support. Запускаем проверку зависимостей. Далее создаем компонент оболочки операционной системы, как было указано ранее, это будет Internet Explorer в режиме киоска, открывающийся на главной странице соответствующего сайта. Компонент будет называться Internet Explorer Custom Shell (вопрос создания этого компонента выходит за рамки статьи, но вы можете сами создать компонент-оболочку, используя статью «How to...» из документации Windows Embedded Studio). Следующий шаг — выбор компонентов операционной системы. После окончания проверки зависимостей остается три неразрешенных зависимости: поддерживаемые системой языки (выбираем English и Russian Language Support); Session Manager (выбираем Windows Logon); поддерживаемые файловые системы (выбираем FAT). Опять запускаем проверку зависимостей и выбираем компоненты операционной системы. После окончания проверки останется одна неразрешенная зависимость: используемая оболочка операционной системы (выбираем Internet Explorer Custom Shell; см. экран 3).

Экран 3. Выбор оболочки операционной системы в программе Target Designer

Приступим к настройке компонента Enhanced Write Filter. EWF поддерживает два типа работы с оверлеем: на носителе и в памяти (EWF RAM). В свою очередь, EWF RAM может работать, храня конфигурацию на специальном служебном разделе или только в реестре (EWF RAM (Reg)). Ввиду того что компонент поддержки загрузки с компакт-диска, в нашем случае El Torito, поддерживает только режим EWF RAM (Reg), в настройках компонента Enhanced Write Filter необходимо отменить режим Start EWF Enabled. Запускаем проверку зависимостей и добавляем дополнительные компоненты.

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

Для обеспечения запуска CMD.exe при каждом старте системы добавим в свойство Extra Resources конфигурации соответствующий параметр RunOnce Request. Также укажем предполагаемый размер раздела, на котором будет развернута система. В настройках образа в разделе настроек целевого устройства (Target Device Settings) необходимо выставить значение параметра для размера загрузочного раздела Boot partition size (Mb) в 300. Запускаем проверку зависимостей — и можно приступать к построению образа (см. экран 4).

Экран 4. Построение образа операционной системы в программе Designer

Подготовка и прохождение FBA

Подготовка к FBA предполагает выполнение двух задач: подготовка носителя на целевой платформе для прохождения FBA и создание El Torito CD-ROM, который должен находиться в приводе CD-ROM в процессе прохождения FBA. El Torito представляет собой устройство plug-and-play, поэтому при инициализации PnP-устройств и установке драйверов в процессе FBA требуется присутствие El Torito-устройства.

Решение первой из обозначенных задач предполагает:

  1. Загрузку в MS-DOS с помощью загрузочной дискеты.
  2. Разметку жесткого диска утилитой fdisk: cоздаем раздел размером 300 Мбайт.
  3. Установку созданного раздела как активного.
  4. Форматирование жесткого диска утилитой format в файловую систему FAT.
  5. Подготовку носителя к загрузке XP Embedded при помощи утилиты BOOTPREP (записывает необходимую информацию в загрузочный сектор (утилиту BOOTPREP следует использовать только после форматирования носителя в MS-DOS или Windows 3.11/95/98/ME).
  6. Загрузку в WinPE.
  7. Подсоединение сетевого диска с образом XP Embedded и копирование его на подготовленный раздел.

Для решения второй из поставленных задач:

  1. Загружаемся в WinPE.
  2. Присоединяем сетевой диск.
  3. Запускаем утилиту hd2iso.exe и, используя подготовленный ранее раздел как источник, готовим образ El Torito СD-ROM; в выходном каталоге используем присоединенный сетевой диск.
  4. Записываем полученный образ на болванку, используя подходящее программное обеспечение.

El Torito СD-ROM для прохождения FBA готов. Далее вставляем подготовленный El Torito СD-ROM в привод компакт-дисков целевой платформы и проверяем, настроен ли BIOS на загрузку с жесткого диска. Затем перегружаем целевую платформу, и запускается процесс FBA.

После FBA

После прохождения FBA необходимо проверить правильность установки и подготовить образ к загрузке с CD-ROM. Для решения этих задач используем интерпретатор командной строки, стартующий при каждом запуске, и редактор реестра.

Первая из указанных задач предполагает проверку настроек EWF. Запускаем из командной строки ewfmgr. Отобразится текущий статус EWF:

Ewf Volume Configuration

Volume Size 681574400

Segments 8192

Segment Size 249856

Free segments 8192

Max Levels 1

Max Protected Volumes 1

Protected Volumes 1

Overlay volume percent full 0.00



Protected volumes

Arc Path «DeviceHarddiskVolume1»

Проверяем, правильно ли настроен EWF: верно ли отображается путь к защищенному тому, нет ли ошибок. Набираем в командной строке

ewfmgr c

Отобразится текущий статус EWF, относящийся к диску C:

Protected Volume Configuration

Type RAM

State DISABLED

Boot Command NO_CMD

Param1 0

Param2 0

Persistent Data «»

Volume ID D2 02 96 49 00 0E 59 96 02 00 00 00 00 00 00 00

Device Name «DeviceHarddiskVolume1»

Max Levels 1

Clump Size 512

Current Level 1

Disk space used for data 0 bytes

Disk space used for mapping 0 bytes

Memory used for mapping 0 bytes

Экран 5. Установка PnP-устройств при прохождении FBA

Проверяем, правильно ли настроен EWF: верно ли отображается путь к защищенному тому, нет ли ошибок и находится ли он в выключенном состоянии (State: DISABLED). После проверки можно провести дополнительную настройку образа и/или установить необходимые программы. Для решения второй из обозначенных выше задач следует удалить из раздела автозапуска интерпретатор командой строки, используя редактор реестра, и запустить утилиту etprep c ключом /all, завершая подготовку образа к загрузке с CD-ROM:

etprep /all

В результате выполнения этой команды система перезагрузится.

После выполнения данной операции не следует загружать систему: исполнение команды Etprep поменяло местами букву привода CD-ROM и диска C: в настройках системы.

Последний шаг

Процесс создания образа компакт-диска аналогичен данному этапу при подготовке диска El Torito для прохождения FBA. Полученный образ компакт-диска записываем на подходящий носитель. Создав загрузочный компакт-диск, необходимо проверить его функциональность. Для этого:

  1. Отключаем жесткий диск от первичного канала IDE и подключаем на его место привод CD-ROM.
  2. Вставляем в привод компакт-дисков записанную болванку.
  3. Настраиваем BIOS на загрузку с CD-ROM.
  4. Проверяем, успешно ли загружается целевая платформа с компакт-диска с разработанным нами образом.

На экране 6 представлен вид загруженной системы, где в качестве стартовой страницы выбрана страница http://www.microsoft.com/rus/.

Заключение

Экран 6. Внешний вид экрана устройства после загрузки

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


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