Системы реального времени
Лабораторная работа №1
«Взаимодействие целевой и инструментальной систем в QNX»
В работе будут рассмотрены следующие вопросы:
что такое платформы QNX4 и QNX6, чем они отличаются;
что представляет собой инструментальный комплект QNX Momentics;
что представляет собой операционная система реального времени QNX Neutrino.
Вы научитесь получать и устанавливать дистрибутивQNX SDP, организовывать взаимодействие между целевой и инструментальной системой, а также расширять функциональность базового комплекта разработчика с помощью плагинов Eclipse.
QNX4 и QNX6
Понятие "QNX" неоднократно трансформировалось в течение почти 30 лет своего существования. Обычно под термином QNX понимают семейство операционных систем жесткого реального времени. Однако правильнее рассматривать QNX как собирательное название программных платформ для построения компьютерных систем реального времени. В настоящее время для коммерческого использования доступны программные платформы QNX двух поколений: QNX4 и QNX6.
Платформа QNX4
QNX4 — технологии, появившиеся в начале 90-х годов прошлого века и с некоторыми усовершенствованиями дошедшие до сего дня. Основу платформы QNX4 составляет ОСРВ QNX 4.25, графическая оболочка PhotonmicroGUI 1.14, Socket 4.25/5.0 (средства поддержки стека протоколов TCP/IPv4) и система программирования Watcom C/C++ 10.6.
Важный момент: QNX4 работает исключительно на архитектурной платформе x86 начиная с i386. ОСРВ QNX 4.25 — первая ОСРВ, прошедшая сертификацию POSIX в 1993 году — упорное следование различным международным и промышленным стандартам всегда было отличительным свойством компании QNX Software Systems.
Сопровождение ОСРВ QNX 4.25 продолжается в основном в направлении поддержки новых аппаратных устройств, хотя и неограничивается этим. Последняя редакция дистрибутива выпущена в ноябре 2009 года. Среди новинок последних двух-трех лет — поддержка USB и приводов SATA. Прекращение сопровождения QNX 4.25 даже не обсуждается — это обусловлено длительными сроками эксплуатации компьютерных систем реального времени, построенных на основе QNX4.
В 2003 году на базе ОСРВ QNX 4.25 была создана защищенная операционная система реального времени (ЗОСРВ) "QNX" (децимальный номер КПДА.00002-01), которая в 2004 году успешно прошла сертификацию в ФСТЭК (Федеральная служба по техническому и экспортному контролю — http://www.fstec.ru/) России по 3-му классу защиты от несанкционированного доступа (НСД) и 2-му уровню контроля отсутствия недекларированных возможностей (НДВ) — это позволяет предприятиям, разработавшим автоматизированную систему (АС, на базе QNX 4.25), с минимальными усилиями аттестовать свои изделия до класса 1Б включительно.
Конечно, несмотря на свою удивительную эффективность и доказанную надежность, продукты QNX4 родом из 1990-х годов — выпускникам вузов третьего тысячелетия, привыкшим к интегрированным средам разработки, не комфортно работать в текстовом редакторе vedit и использовать командную строку для сборки проектов. Однако если все-таки им придется сопровождать созданные лет десять тому назад (и, надо сказать, прекрасно работающие) системы на базе QNX4, то они могут использовать кроссплатформенный подход к разработке (т. е. разработку в среде Windows или Linux) в интегрированной среде системы программирования OpenWatcom (www.openwatcom.org).
QNX4 продолжает занимать существенную нишу на рынке промышленной автоматизации. Мало того, платформу QNX4 используют даже в новых проектах.
Для использования QNX4 также есть причины, которые называют программисты, применявшие DOS. В России (и не только в ней) DOS по факту является самой широко используемой программной платформой на рынке промышленной автоматизации. Во-первых, инструменты QNX4 гораздо комфортнее и мощнее инструментов DOS. Не говоря уже о полной защите памяти, многозадачности и встроенной поддержке распределенных вычислений. Во-вторых, в QNX4 (как и в QNX6) для доступа к регистрам используются хорошо известные функции in/out. И в-третьих, многие графические приложения для DOS разрабатывались с использованием программного интерфейса VESA BIOS Extensions (VBE), поддерживаемого в QNX. Все эти факторы делают перенос ПО систем реального времени из DOS в QNX4 достаточно комфортным занятием.
Платформа QNX6
Платформа QNX6 включает ряд технологий, основными среди которых являются:
операционная система реального времени QNX Neutrino. Ее часто для краткости называют просто QNX6 — так что всегда обращайте внимание, в каком контексте используется термин "QNX6";
комплект инструментальных средств QNX Momentics;
пакеты программного обеспечения так называемого "промежуточного слоя" (англ. middleware) QNX Aviage.
Программное обеспечение QNX6 обычно делится на две категории: средства разработки и средства исполнения. Вспомним этидва понятия.
Инструментальные средства — это программное обеспечение, предназначенное для создания и/или конфигурирования средств исполнения. Средства разработки не требуются во время эксплуатации целевых систем.
Средства исполнения — это программные компоненты, используемые в ЭВМ, предназначенной для эксплуатации конечными потребителями, т. е. программное обеспечение целевых систем.
По-английски этап эксплуатации называют runtime— отсюда средства исполнения (англ. Runtime modules, дословно компоненты для этапа эксплуатации) часто называют жаргонизмом рантаймы.
QNX Momentics и QNX Neutrino поставляются в виде продукта, который называется QNX Software Development Platform (SDP).
Существует три почти равнозначных дистрибутива QNX SDP — Windows-host (для кроссплатформенной разработки приложений QNX Neutrino в среде Windows),Linux-host (для кроссплатформенной разработки приложений QNX Neutrino в среде Linux) и Neutrino-host (для кроссплатформенной разработки приложений QNX Neutrino в среде самой QNX Neutrino, т. е. для резидентной разработки).
Выбор комплекта зависит исключительно от личных предпочтений.
Кроме QNX Momentics в состав каждого из дистрибутивов QNXSDP так же входят одинаковые средства исполнения ОСРВ QNX Neutrino, из которых можно"лепить" собственные конфигурации этой операционной системы для всех поддерживаемых аппаратных архитектур. Дистрибутив Neutrino-host дополнительно содержит инсталлятор ОСРВ QNX Neutrino для платформы Intelx86.
Имеются также дистрибутивы QNX SDP Lite. В них включены средства исполнения QNX Neutrino только для платформыIntelx86. Это облегчает скачивание дистрибутива из Интернета для ознакомительных целей.
QNX Momentics
Комплект инструментальных средств QNX Momentics включает:
инструменты разработки и отладки приложений на С/C++ с генерацией кода для всех аппаратных платформ, на которых работает ОСРВ QNX Neutrino;
визуальный построитель графических интерфейсов Photon Application Builder (PhAB);
инструменты для анализа и оптимизации программ — системный профилировщик, прикладной профилировщик, анализатор покрытия кода тестами;
инструменты для построения целевых систем — формирования загружаемых образов, образов встраиваемой файловой системы, создания файловых систем PowerSafe и QNX4, конвертирования образов в форматы программаторов ППЗУ и т. д.;
инструменты для мониторинга целевых систем QNX Neutrino (выполняющихся процессов, каналов и соединений, состояния потоков, сигнальных масок, файловых дескрипторов и т. д.), анализа использования ОЗУ процессами;
программы удаленного доступа к рабочему столу Photon целевой системы QNX Neutrino из среды Windows и UNIX — Phindows и Phinx.
В состав QNX Momentics входит большой комплект весьма качественной и обстоятельной документации в формате HTML на английском языке. Эта документация относится как к QNX Momentics, так и к QNX Neutrino.
В Windows-host и Linux-host документация доступна через элемент меню Helpинтегрированной среды разработки, в Neutrino-host она доступна через запускаемую из панели инструментов или с помощью меню Launch программу Help viewer. Ключевые документы переведены на русский язык и доступны в книжных магазинах.
Специалисты рекомендуют начать с "Jumpstart Guide". Русский перевод этого руководства доступен на сайте www.swd.ru, а видеопрезентацию авторов инструкции на английском и немецком языках можно посмотреть на сайте www.youtube.com. Затем - концептуальный документ "QNX Neutrino Realtime Operating System. System Architecture" (он есть в штатной электронной документации (Help), а также издан на русском языке). Дальнейшее чтение зависит от вашей специализации.
QNX Neutrino
Операционная система жесткого реального времени QNX Neutrino разрабатывается сообществом Foundry27 (www.foundry27.com) в рамках проектов "QNX OperatingSystem", "Networking", "Filesystems", "Graphics", "Multimedia", "BSP andDrivers" идр.
QNX Neutrino очень хорошо документирована. Базовые книги, необходимые для ее использования ("ОСРВ QNX Neutrino. Системная архитектура", " ОСРВ QNX Neutrino. Руководство пользователя" и учебник Роберта Кртена "Введение в QNX Neutrino: Руководство для разработчиков приложений реального времени"), переведены на русский язык.
Получение и установка дистрибутива QNX SDP
Для получения QNX SDP необходимо зайти в раздел "QNX Software Development Platform Evaluation" сайта www.qnx.com (страница доступна по адресу http://www.qnx.com/products/ evaluation/). Там будет предоставлена возможность скачать свежую версию продукта и получить временный лицензионный ключ (рис. 1).
Рис. 1. Веб-страница для скачивания QNX SDP и получения временного лицензионного ключа
Для скачивания доступно три дистрибутива, каждый из которых может быть в варианте "LiteVersion" или в варианте "Alltargets". Второй вариант имеет объем примерно в 2 раза больший, чем первый. Дистрибутив "QNX NeutrinoHost" представляет собой образ инсталляционного компакт-диска, остальные дистрибутивы ("WindowsHost" и "LinuxHost") — просто инсталлируемые программы.
Все дистрибутивы QNX SDP являются полноценными. Их "ознакомительность" связана не с функциональностью, а с временем действия лицензионного ключа. Таким образом, ознакомительным (evaluation) является лицензионный ключ, а не дистрибутив.
Вторым этапом следует заказать временный ("ознакомительный") лицензионный ключ. Для этого необходимо заполнить небольшую форму, основным полем которой является электронный адрес, на который вам, при условии согласия с условиями лицензионного договора, пошлют электронное письмо со строкой, являющейся ключом.
√ Задание
1. Откройте указанные Интернет-ресурсы и изучите возможность скачивания дистрибутива QNX SDP и получения лицензионного ключа. Определите актуальную на момент выполнения работы версию инструментального пакета. Скачивать дистрибутив не нужно!
2. Из сетевой папки, предложенной преподавателем, скопируйте в локальную дистрибутив QNX SDP и текстовый файл с ключом.
3. Убедитесь, что на рабочей станции осуществлен вход с правами администратора. Установите пакет QNX SDP. Запомните каталог, который IDE будет использовать для хранения проектов.
Еще одним весьма полезным файлом является сжатый (zipped) образ среды исполнения QNX Neutrino 6.5.0 для виртуальной машины VMware, доступный по ссылке http://www.qnx.com/ download/feature.html?programid=21189.
√ Задание
4. Убедитесь в работоспособности указанной выше ссылки. Скачивать из Интернета образ не нужно!
5. Скопируйте из сетевой в локальную папку архив с образом ОС QNX Neutrino, распакуйте архив.
Для использования образа, конечно, нужна виртуальная машина VMware, например, продукт "VMware Player", доступный для свободного скачивания с сайта компании VMware по ссылке http://www.vmware.com/products/player/. Необходимо заполнить небольшую регистрационную форму, принять условия лицензионного договора и можно скачивать продукт. Доступно два варианта VMware Player — Windows-Host и Linux-Host. Перед тем как скачивать, ознакомьтесь со списком поддерживаемых инструментальных (Host) операционных систем — не все версии и дистрибутивы Windows и Linux поддерживаются.
√ Задание
6. Скопируйте из сетевой папки в локальную инсталлятор виртуальной машины. Установите виртуальную машину на рабочую станцию.
Если необходимо из QNX Neutrino, установленной на виртуальной машине, взаимодействовать с другими компьютерами, то убедитесь, что сетевой адаптер виртуальной машины работает в режиме "bridged". Это означает, что виртуальная машина автоматически будет передавать на реальный сетевой адаптер (и обратно) все пакеты, передаваемые гостевой операционной системой в виртуальный адаптер.
√ Задание
7. Установите сетевой адаптер виртуальной машины в режим "bridged".