Сергей Золотарев

 

Операционная система 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.