Сергей Золотарев
Операционная система Nucleus, предназначенная для встраиваемых приложений, была разработана компанией Accelerated Technology Inc. (ATI, США), основанной в 1990 г. двумя программистами. Они ставили перед собой вполне конкретную цель: создать очень компактную ОС реального времени для встраиваемых систем, независимую от типа процессора, полностью открытую (что подразумевает поставку с исходными текстами), хорошо документированную и имеющую приемлемую цену.
Среда разработки POWERplant EDE
Чтобы увидеть картинку в натуральную величину, щелкните по этой строке мышкой дважды
Если Nucleus сравнить, например, с такой известной ОС реального времени, как QNX (разработка фирмы QSSL, Канада), то нетрудно заметить ряд их различий.
- Nucleus является кросс-системой, в то время как QNX - одновременно и средой разработки, и средой исполнения. Под кросс-системой понимается такая технология разработки, при которой ПО создается на одной программно-аппаратной платформе, а исполняется на другой. Совмещение в QNX среды разработки и среды исполнения очень полезно в тех случаях, когда пользователь работает на IBM PC-совместимой архитектуре.
- Nucleus позволяет разрабатывать ПО для многих процессоров, а QNX - только для IBM PC-совместимых.
- В отличие от QNX, в поставку Nucleus входят исходные тексты. Это особенно важно для военных, так как наличие полных исходных текстов облегчает сертификацию созданного приложения.
- Приобретая Nucleus, покупатель оплачивает ее только один раз; за тиражирование своего ПО фирма ATI дополнительной платы не взимает. Стоимость этой ОС вместе с необходимыми инструментальными средствами составляет 10 - 30 тыс. долл. При покупке QNX пользователь должен заплатить за полную систему (около 2500 долл. за ОС и компилятор Watcom C), а при тиражировании ПО - покупать у фирмы QSSL по крайней мере модульные лицензии за необходимый набор драйверов (от 50 до 1000 долл.).
- QNX 4.x удовлетворяет стандарту POSIX 1003. Nucleus не отвечает этому стандарту, но он обладает достаточно мощным набором системных вызовов.
Ядра Nucleus
ОС Nucleus основано на многозадачном ядре реального времени Nucleus Plus (в дальнейшем - NP). Спроектированное снизу доверху для современных встроенных систем, оно является переносимым, масштабируемым, хорошо документированным и высоконадежным. NP включает в себя достаточно полный набор средств для разработки встраиваемых приложений, работающих в реальном масштабе времени: стандартные средства управления задачами, межзадачного обмена (почтовые ящики, очереди, конвейеры, семафоры, события, сигналы), управления памятью, таймерами и прерываниями. В нем реализованы два алгоритма диспетчеризации: по приоритетам задач и FIFO. При обращении к функциям ядра выполнение задач может приостанавливаться на неопределенное время, на заданный интервал, либо вообще не приостанавливаться. Все объекты (например, задачи, почтовые ящики, конвейеры) могут создаваться и удаляться динамически так, как того требует приложение. Поскольку ядро реализовано как библиотека функций на Си, в исполняемый образ приложения включаются только те его части, которые используются приложением. По окончании тестирования приложения опция проверки ошибок (отладки) может быть запрещена, в результате чего увеличивается производительность и уменьшается размер кода. К тому же библиотеку NP можно собрать с запрещением/разрешением опции проверки стека.
Интеллектуальный концентратор, интерактивный телевизор и
газовый анализатор углеводорода используют ОС Nucleus
Кроме стандартной версии NP поставляется версия NP++, полностью совместимая с последними стандартами Си++. Это позволяет обращаться ко всем средствам ядра как к объектам и использовать весь набор средств объектно-ориентированного программирования. Возможности NP++ представляют собой не просто “обертку” к ядру. Они включают полную объектно-ориентированную среду для встраиваемых приложений. Для пользователей MS-DOS фирма ATI поставляет специальную версию ядра Nucleus PC+, которая расширяет MS-DOS средствами многозадачности в реальном либо защищенном режиме работы. Поставляются также библиотеки для компиляторов С++ Microsoft и Borland (для работ в реальном режиме) либо MetaWare и Watcom (для защищенного режима).
В таблице представлены поддерживаемые Nucleus процессоры и компиляторы, которые пользователь может применять при разработке собственного ПО. Nucleus может работать более чем с 70 различными комбинациями компиляторов и процессоров. Accelerated Technology поддерживает больше процессоров, чем любой другой поставщик ОС РВ, в том числе такие архитектуры, как RISC, CISC и DSP. Для переноса Nucleus на любую другую платформу достаточно модифицировать три аппаратно-зависимых компонента: модули инициализации Initialization (INT), планирования Sheduling (TMT) и управления таймерами Clock Management (TCT).
Средства поддержки для Nucleus Plus
Производитель | Процессор | Компилятор/отладчик |
AMD | AM292xx, AM290xx | Компилятор Metaware High C 29K |
Fujitsu | SPARClite | Компилятор Microtec Research |
IBM | Power PC 403 | Компилятор Diab Data и отладчик SingleStep |
Intel/AMD | 80x86 Real mode 80386/486 Protected mode | Microsoft C/C++ Borland Turbo C/C++ SSI Link & Locate 86 for Microsoft (встраиваемый) Paradigm Link & Locate (встраиваемый) Metaware High C Watcom C Pharlab Dos Extender Компилятор SSI Link & Locate 386 32-разрядный компилятор Borland 32-разрядный компиля |
National Semiconductor | 80486 PM CR16A, CR16B, CR32A | Borland Turbo C/C++ Watcom C Компилятор GNU Компилятор IAR |
Intel | i960Kx/Cx/Jx/Hx | Компилятор Mentor/MRI Компилятор Intel GNU с Nucleus UDB Компилятор Green Hills |
MIPS | IDT 30xx IDT 4600 LSI LR330x0 LSI 4001 LSI 64008 NEC VR4x00 NEC VR5000 Philips PR30100 | Компилятор IDT GNU с Nucleus UDB Компилятор Green Hills Компилятор Tasking C Компилятор Algoritmics GNU |
Motorola | 680x0 683xx 68HC11 68HC16 ColdFire | Компилятор Mentor/MRI Компилятор Intermetrics Компилятор Introl Компилятор SDS Компилятор Green Hills Компилятор Diab Data и отладчик SingleStep |
Motorola | PowerPC 60x PowerPC 821 PowerPC 860 | Компилятор Diab Data и отладчик SingleStep |
ARM | Семейство ARM 6/7 ARM Thumb StrongARM | Компилятор ARM с Nucleus UDB Компилятор TI C с Nucleus UDB |
Texas Instuments | TMS320C3x/40 TMS320C54x | Инструментарий TI Tools Tartan C/C++ Tools |
Panasonic | MN10200 | Компилятор Panasonic Panax |
Siemens NEC | Семейство C166/167 V25, V821, V830, V851 | Компилятор Tasking C Компилятор Intermetrics Компилятор Green Hills |
Hitachi | H8/300H SH1, SH2, SH3, SH DSP | Компилятор Hitachi C Компилятор Green Hills Компилятор GNU Компилятор IAR |
При покупке Nucleus пользователь может указать, какие компоненты ему нужны для конкретного приложения (ядро, сеть, файловая система). Программное обеспечение поставляется в виде библиотеки, разбитой на множество файлов. Например, при использовании NP большинству тех, кто использует для синхронизации задач очереди, конвейеры и почтовые ящики, потребуются только функции create, delete, send и receive. Обычно пользователю не требуются функции broadcast или force-in-front. Поэтому они находятся в отдельном файле, что позволяет обращаться к ним, только когда они понадобятся.
Средства поддержки среды исполнения
Учитывая возрастающие потребности заказчиков, Accelerated Technology разработала набор сетевых продуктов. Один из них - Nucleus Net - представляет собой собственную версию TCP/IP. Обеспечивая быструю и эффективную связь, он минимально затрагивает остальную часть встроенного ПО пользователя. Для управления на уровне протокола имеется Nucleus SNMP - встроенная поддержка SNMP, ориентированная на приложения с ограниченной памятью и другими ресурсами. Для наблюдения над физическим уровнем предлагается Nucleus RMON, поддерживающий все девять групп RMON MIB и все 10 групп MIB-2. Он спроектирован для работы во встраиваемых средах, где ограничения на процессор и память являются слишком жесткими для использования других возможностей RMON.
Для пользователей, разрабатывающих мосты и шлюзы, ATI предлагает Nucleus Span, реализующий спецификацию Spanning Tree, которая позволяет предупреждать зацикливание пакетов при пересечении границ сегментов.
Во многих приложениях требуются средства поддержки файловой системы для долговременного хранения информации. Возможность сохранения информации на гибком, жестком или виртуальном диске либо PCMCIA-карте (в том числе в многозадачном режиме) обеспечивается компонентом Nucleus File (NF). Эта DOS-совместимая файловая система служит для доступа приложений к дискам, каталогам и файлам. NF может взаимодействовать с любой аппаратурой, включая устройства SCSI, IDE, PCMCIA и гибкие диски. Модуль тесно интегрирован с NP для максимальной эффективности и легкости использования.
Графическая подсистема Nucleus GRAFIX
Accelerated Technology предлагает также ряд пакетов для поддержки WWW-технологий. Новые продукты, такие, как Nucleus WebServ (NWS) и Nucleus JV(Java Virtual Machine, интегрированная с NP), обеспечивают средства интеграции Nucleus NET с Web- и Java-серверами. NWS поддерживает HTTP непосредственно во встраиваемом приложении пользователя. В Nucleus JV реализована виртуальная машина Java фирмы Sun Microsystems, которая позволяет использовать технологию Java в приложениях NP, обеспечивая продуктивную среду для встраиваемой системы.
Средства разработки
Для разработки встраиваемых приложений ATI поставляет несколько средств, выбор которых зависит, во-первых, от приложения пользователя, во-вторых, от типа процессора и, в-третьих, от используемого компилятора. Среди средств поддержки встраиваемых приложений, поставляемых ATI, в первую очередь надо назвать интегрированную среду разработки POWERplant Embedded Development Environment (EDE), представляющую собой набор взаимосвязанных программных средств. POWERplant EDE базируется на интегрированной среде Microsoft Developer Studio, из которой используются возможности редактирования, сборки и отладки ПО в среде разработки; кроме того, это средство включает возможности управления проектами, генерации кода и отладки в среде исполнения для различных аппаратных платформ. POWERplant EDE может взаимодействовать с другими инструментальными средствами разработки ATI, такими, как Nucleus MNT, Nucleus UDB, Nucleus DBUG+.
Среда NP для макетирования (Nucleus MNT) позволяет разрабатывать и тестировать приложения независимо от аппаратного обеспечения. Как правило, разработка ведется в операционной среде Windows NT или Windows 95. Большую часть кода пользователь может разработать на одной из этих платформ, с помощью “родных” средств среды разработки. Выполняя инициализацию, диспетчеризацию и управление таймерами, Nucleus MNT использует три модуля, представляющие собой потоки Windows NT или Windows 95. Модуль инициализации устанавливает векторы прерывания для таймера и терминального интерфейса. Модуль диспетчеризации использует потоки Windows для управления переключением задач (однако приоритеты задач Nucleus Plus, прерывание одной задачи другой и выделение временного кванта обеспечивает Nucleus MNT). Наконец, модуль таймера моделирует кванты времени аппаратного таймера для того, чтобы облегчить отладку функций приостановки задач пользователя Nucleus Plus, выделение размера кванта, тайм-ауты и таймерные потоки.
Одним из наиболее развитых средств разработки является отладчик Nucleus UDB (NU), который обеспечивает отладку на уровне исходных текстов для большинства многозадачных процессорных архитектур. Эта система, функционирующая на рабочей станции под управлением Windows, осуществляет удаленную отладку через последовательный порт или другие интерфейсы. Поддержка многозадачности позволяет проверять объекты ядра динамически, устанавливать точки останова в каждой задаче и накапливать “историческую” информацию о взаимодействии системы пользователя с ядром. С помощью NU можно просматривать содержимое регистров, исходный и ассемблерный коды, глобальные переменные и получить из приложения пользователя доступ к интерфейсу отладчика через консоль ввода-вывода. В комбинации с другими средствами, такими, как встроенная среда разработки POWERplant EDE, переносимый графический интерфейс Nucleus Grafix и реентерабельная библиотека Nucleus CLIB, написанная на языке ANSI C, пользователь получает в свое распоряжение все необходимое для разработки.
При разработке приложений на базе различных ядер Nucleus можно использовать отладочные средства третьих фирм - Paradigm Systems (Paradigm для процессоров x86), Software Development Systems (SDS DLL), Green Hills Systems (SingleStep), Mentor Graphics (XRAY+).
Графическая среда
Nucleus Grafix является переносимой графической средой для встраиваемых приложений. В ней реализованы такие возможности, как ниспадающие меню, диалоговые окна, радиокнопки, окна прокрутки, пиктограммы, блоки просмотра файлов и многие другие. Высокий уровень переносимости Nucleus Grafix обеспечивается грамотно спроектированными многоуровневыми модулями. ATI использует преимущества современных графических адаптеров, которые освобождают центральный процессор от интенсивных вычислительных операций.
Nucleus Grafix состоит из трех главных частей: компонента интерфейса пользователя, основной графической службы и драйвера устройства. Компоненты интерфейса пользователя обеспечивают интерфейс высокого уровня, так что пользователь может создать свой собственный ГИП. Этот ГИП может включать в себя рисование окон, создание ниспадающих меню и других общих средств. Основные графические службы лежат в основе компонентов интерфейса пользователя. Они рисуют окна, линии, буквы, символы, заливают многоугольники, управляют палитрой и делают другие полезные вещи. Драйвер устройства обеспечивает интерфейс с оборудованием.
Применение ОС Nucleus
Не имея пока собственного опыта внедрения проектов с использованием ОС Nucleus, я вынужден ссылаться на опыт других фирм. Для начала упомяну Takasago (Япония), дочернюю фирму NEC, использовавшую Nucleus для управления интеллектуальным концентратором. Этот концентратор имеет свой процессор, с помощью которого осуществляется управление, установка параметров сети, загрузка микропрограмм и т. д. Концентратор должен поддерживать связь по протоколам TCP/IP и SNMP. По отзывам компании Takasago, Nucleus позволил реализовать все необходимые возможности в очень короткие сроки.
Американская фирма Video Guide использовала Nucleus в качестве встроенной ОС для интерактивного телевидения. В этом проекте особенно важным (конечно, при учете технических характеристик Nucleus) является низкая стоимость ОС при тиражировании изделия.
Третьим примером может служить реализация на базе Nucleus универсального газового анализатора углеводорода. Этот анализатор фирмы M.S.A. Baseline Industries является высокоинтеллектуальным устройством, программирование которого требовало использования объектно-ориентированной методологии. Наличие ядра Nucleus, реализованного на Си++, переносимость, низкая стоимость и поставка исходных текстов определили выбор в пользу Nucleus.
С автором статьи можно связаться по телефону: (095) 939-5872 или по адресу: root@nautsilus.ru.