Windows XP Embedded (XPE, ага)
Перенос моей статьи, для истории, из ЖЖ (livejournal.com)
Попробовал на зуб технологию Windows XP Embedded (далее xpe).
Решение мне очень интересным показалось в ходе экспериментов.
Как-раз для систем system-on-chip: тонкие клиенты,
терминалы бесчисленные разнообразные (например, оплаты услуг),
end-userные железки типа холодильников\тостеров\htpc\телевизеров\etc с энторнетом (знаю гнусмас есть телек с xpe).
Система очень модульна (компонентна) и поэтому может довольствоваться
крайне малыми объемами ресурсов при работе.</p>
Для примера в компьютерных клубах, где чтобы никто не лез, куда ненужно можно просто изначально не закладывать explorer, шелл и контрольную панель в образ. Соответственно и ломать особо то будет нечем и нечего - система загрузилась по сетке и заюзала локальный диск с игрушками всеми отобразив менюху с выбором их. DirectX и прочее ей нечуждо совершенно!
Ну, или применение на посту охраны, где тоже кроме спец.приложения ничего не должно быть.
Сама embedded студия представляет собой набор утилит, которые используются
комплексно.
1. Target Designer - непосредственно главный сборщик образов xpe-систем. В нем
мы "собираем" из кубиков уже приготовленных финальный образ.
2. Component Designer - конструктор "кубиков". С помощью него мы строим новые
"кубики": закладываем набор файлов\ключей реестра\etс, раскладываем по репозитариям, выставляем зависимости (причем можно учитывать очередность включения "нашего кубика"!)
3. Component Database Manager - утилита управления базой данных (репозитарием глобальным) студии всей. С помощью этого инструмента мы импортируем в репозитарий наш новые компоненты "кубики", удаляем неиспользуемые.
4. SDI лоудер - позволяет "примонтировать" .SDI образы xpe локально и редактировать их содержимое.
5. утилиты командной строки: tap.exe/ta.exe служат для инвентаризации аппаратно-программных средств конечной машины, на которой будет, крутится образ. econvert.exe - конвертирует файлы форматов понимаемых им (например .inf, .reg) в пригодный для студии формат (.SLD). udfprep.exe оч. полезная утиль (всем ITшникам на заметку!) позволяющая форматировать в UDF2.50-совместимый формат USB-флешки. Дело в том, что WindowsXP по-умолчанию не умеет это (также как и остальные утилиты для форматирования флешей) а загрузчик XPE также как The Vista - требует UDF именно этот и никак не раньше версии.
hd2iso.exe - утилита создающая из партиции жесткого диска образ эльторито .ISO.
sdi2hd.exe - разжимает .SDI-образ в партицию жесткого диска.
Строящийся с помощью студии образ Windows XP очень сильно при первом "нюхе" похож на Windows XP Professional
(также в AD домен может ходить, может SMS-сервером обслуживаться, получать обновления и т.п.) но есть и отличия.
Например:
1. жизненный цикл embedded существенно больше, чем у клиентских версий
2. защита файлов windows file protection не существует в xpe (оно и понятно)
3. мастер активации с экраном приветствия и начальной настройкой
4. отсутствует msn explorer.
5. цена одной рабочей копии ниже, чем у XP Pro
6. в xpe есть уникальные компоненты, позволяющие ей работать на read-only носителях и носителях с ограниченным числом циклов записи (EWF фильтры).
6. есть еще существенная штука - в xpe возможен только один HAL. Тоесть иметь в образе несколько HAL невыйдет.
В принципе оно логично т.к. образы затачиваются по всему под конкретную железку.
Вообще концепция построения рабочей системы на базе компонентов не нова и активно используется, например в *nix.
Каждый компонент в xpe представляет собой элементарный "кубик" содержащий
в себе список совместимых (зависимых от него и требующихся ему) "кубиков".
Некоторые компоненты можно образно назвать "шаблонами". Они содержат ТОЛЬКО информацию по "зависимостям" и настройкам. Например: USB 2.0 Boot, Home Gateway.
Компоненты могут конфликтовать между собой - Target Designer берет на себя роль арбитра который "разрешает" конфликты.
О процессе построения образа xpe...
Вообще как обычно всё находится в энторнете поиском и чтением документации прилагающейся к конструктору. Базово происходит так:
1. берем машинку на которую собираемся поставить xpe. Под виндой уже крутящейся там запускаем tap.exe взятый из утилит студии. Если нет винды можно под DOSом ta.exe но она очень урезанна. Эти утилиты создадут инвентаризационный файл, который потом приносим на хост со студией xpe
2. берем компонент дизигнер и импортируем этот файл в него. Смотрим внимательно на зависимости и убиваем "лишнее". Внимательно смотрим на драйвера - нам понадобится это! Сохраняем отредактированный файл в репозитарии
3. тем-же компонент дизигнером создаем компоненты содержащие драйвера (как и что - в доках подробно описано)
4. сохраняем компоненты в репозитарии опять. (иначе они не будут доступны мастеру сборщика образов)
5. теперь создаем непосредственно образ сам. Идем в target designer и там либо кидаем в проект темплейт уже существующий базовый (например, виндоус бэйзет терминалЪ), либо сами выбираем самостоятельно требуемые нам вещи.
6. Теперь настало время закинуть драйвера и результаты инвентаризации в проект. Соответственно добавляем эти компоненты к проекту
7. настал черед проверки зависимостей. Тыкаем в меню на этом пункте и упорно добиваемся, чтобы все конфликты были таки разрешены.
8. создаем сам образ, тыркая build. процесс не быстрый...
9. Полученный образ надо прогнать единожды на целевой конфигурации с агентом FBA, чтобы он отконфигурил
уже "на горячую" все компоненты образа. Этот агент своего рода аналог sysprep'а для XPPRo
10. После прогона FBAшкой образ готов к использованию.
Я экспериментировал с USB флешкой, USB-болтом, SATA-болтом, CDR/CDRW-болванами.
Со всеми носителями кроме CDR проблем не было и я вдоволь «наигрался». Но вот с загрузочной болванкой долгие эксперименты
закончились...фиаско и моим поражением!
hd2iso.exe утилита своеобразна.... очень! Например, хотя-бы потому что создаваемые ей .ISO образы Eltorito настолько нестандартны, что файловая система видна пустой, если ее просматривать в windows.
А еще, потому что образы уже нарезанные, незагружаемы потом биосами HP компьютеров :( Похоже, они тоже, как и я "не видят" того, что там.
После поиска в интернете находим отлично объясняющую всё фразу от Matt Kellner _MSFT_:
"The El Torito process is, unfortunately, very cumbersome and error-prone.
I don't think we have plans to make a DVD-compatible version of HD2ISO, but I will pass your feedback on to our team for consideration.
I'm glad to see you got a USB solution working. USB solutions can be faster and more robust overall due to the relative stability of most USB stacks, compared to the El Torito driver and process, which are very fault-intolerant"
Он не знает и оно логично. Команды обычно набираются каждый раз разные для каждого проекта. И про oscdimg.exe входящей в WAIK этот дядя может и не знать. xpe студия старая - она вышла в 2001м году, тогда oscdimg.exe еще не было. Но вот почему было не включить в XPe Feature Pack 2007 обновленную hd2iso.exe создающую образы нормальные - непонятно... :(
Впрочем, нашел позабавившее меня очень: Заглядываем в .ISOшник сделанный ихним hd2iso.exe и находим там куски загрузчика... GRUB ! Оппа! Кто там у нас писюны-то точил на GNUшную GPL?! Майкрософт пишет при загрузке утилиты:
Microsoft Windows XP Embedded ISO-9660/ELTORITO Image Packager
Copyright (C) 1995 - 2001, Microsoft Corporation
НИКАКИХ слов об использовании частей (portions) кода под другой лицензией - нет. Как и исходников естессно ;-) Забавный факт, ага.
Интересно будет понюхать Windows Vista Embedded, которая уже не за горами как следует из соответствующей информации на сайте мелкомягкософта.
There are no published comments.
New comment