Nucleus RTOS — это операционная система реального времени (RTOS), разработанная Embedded Software Division of Mentor Graphics , Siemens Business, поддерживающая 32- и 64-разрядные платформы встраиваемых систем . Операционная система (ОС) разработана для встраиваемых систем реального времени для медицинских, промышленных, потребительских, аэрокосмических и Интернета вещей (IoT) применений. Nucleus был впервые выпущен в 1993 году. Последняя версия — 3.x, и включает в себя такие функции, как управление питанием , модель процесса, поддержка 64-разрядных вычислений, сертификация безопасности и поддержка гетерогенных вычислительных многоядерных систем на кристалле (SOC).
Модель процесса Nucleus добавляет разделение доменов пространства для изоляции задач и модулей в SOC с блоком управления памятью (MMU) или блоком защиты памяти (MPU), например, на базе ядер ARMv7/8 Cortex-A/R/M.
Nucleus поддерживает множество встраиваемых процессоров, включая ведущие устройства ARMv7 Cortex A, R и M. Последние выпуски поддерживают 64-битные устройства ARMv8 . На официальном сайте есть полный список поддерживаемых устройств. [2] Он включает 32-битные MCU и MPU, настраиваемые устройства, а также 32-битные и 64-битные многоядерные процессоры .
Nucleus 1.x был впервые выпущен в 1993 году компанией Accelerated Technology (ATI) как Nucleus PLUS. Вскоре он стал одной из наиболее часто используемых RTOS на рынке встраиваемых систем. После своего раннего успеха там, ATI добавила поддержку сетей , графики и файловых систем , что ускорило принятие.
Mentor Graphics приобрела ATI в марте 2002 года, за которой вскоре последовало второе поколение Nucleus RTOS. Версия 2.x была выпущена в 2003 году, улучшив ее переносимость между различными архитектурами и наборами инструментов. Были добавлены новые компоненты, такие как IPv6 , файловая система Flash-памяти и Universal Serial Bus ( USB ) 2.0. Mentor заменила устаревший отладчик Codelab на инструменты разработки EDGE, которые включали инструменты компилятора , отладчик , симулятор и профилировщик .
Mentor Graphics представила Nucleus 3-го поколения в 2010 году. Версия 3.x была предназначена как для высокопроизводительных микропроцессорных блоков (MPU), микроконтроллерных блоков (MCU), цифровых сигнальных процессоров (DSP), так и для программируемых пользователем вентильных матриц (FPGA). Для устройств с ограниченными ресурсами памяти Nucleus был разработан для масштабирования до размера памяти <10 килобайт (КБ) как для кода, так и для данных.
Nucleus 3.x представил поддержку симметричной многопроцессорной обработки (SMP) и асимметричной многопроцессорной обработки (AMP) как неконтролируемой uAMP, так и контролируемой sAMP (с использованием Mentor Embedded Hypervisor ). Другие дополнения в Nucleus 3.x:
В дополнение к новым функциям в версии 3.x, Nucleus перешла от модели a la carte к единому пакету.
Mentor приобрела CodeSourcery в декабре 2010 года, чтобы заменить инструменты разработки EDGE на Sourcery CodeBench. Sourcery CodeBench включает в себя цепочку инструментов компилятора, отладчик и инструменты анализа трассировки. Цепочка инструментов компилятора основана на цепочке инструментов GNU. Отладчик и интегрированная среда разработки (IDE) основаны на Eclipse . Sourcery CodeBench поддерживает архитектуры ARM, IA-32 , MIPS и PPC со встроенными рабочими процессами и распознаванием ОС для Nucleus RTOS и Mentor Embedded Linux.
Nucleus 3.x представил унифицированную систему сборки и конфигурации, с помощью которой ядро настраивается через один файл и собирается как одна библиотека. Подобно menuconfig в Linux, инструмент конфигурации на основе пользовательского интерфейса (UI), интегрированный с CodeBench, предоставляет пользователю графически выбираемые компоненты для настройки ядра во время сборки. Система конфигурации Nucleus позволяет пользователю настраивать интеграцию новых инструментальных цепочек, поддержки архитектуры и свойств сборки.
Компоненты Nucleus RTOS включают в себя:
Nucleus поддерживает возможность подключения к другим устройствам через различные интерфейсы, включая:
В отличие от Windows и Unix-подобных операционных систем, Nucleus не нуждается в файловой системе для работы. Однако для сложных применений, требующих локального хранилища, Nucleus поддерживает несколько файловых систем, включая FAT, SAFE (отказоустойчивая) и LWEXT.
Nucleus обеспечивает поддержку различных файловых систем и носителей данных через интерфейс прикладного программирования (API) виртуальной файловой системы, который позволяет получать доступ к поддерживаемым файловым системам и устройствам хранения данных с помощью одних и тех же вызовов функций независимо от базового формата хранения.
Сетевой стек Nucleus представляет собой двойной стек IPv4 и IPv6, который поддерживает более 60 сетевых протоколов. Сетевой стек Nucleus поддерживает POSIX и обеспечивает простой в использовании интерфейс приложений на основе сокетов. Краткий список поддерживаемых протоколов включает:
Nucleus поддерживает широкий спектр вариантов шифрования для безопасной связи, чтобы защитить данные в состоянии покоя или при передаче. Nucleus поставляется с OpenSSL и пакетом, похожим на OpenSSL, wolfSSL (ранее CyaSSL), который намного меньше OpenSSL для проектов, требующих шифрования, но ограниченных по объему памяти. [3] Протоколы безопасности для защиты данных при передаче включают IPsec/IKE, SSH/SSL/TLS/DTLS. Шифрование включает DES, 3DES, AES, SHA-256. Алгоритмы криптографии с открытым ключом включают RSA. Поддержка включает X.509, RADIUS и 802.1X.
Поддерживаются несколько модулей Wi-Fi от разных производителей чипов, таких как QCA, Broadcom, TI и CSR:
Nucleus 3.x поддерживает OpenGL и ведущие сторонние библиотеки пользовательского интерфейса. Nucleus поддерживает фреймворк Qt UI, оптимизированный для размера кода и интегрированный в CodeBench для отладки и трассировки. Другие поддерживаемые пользовательские интерфейсы включают Embedded Wizard и Socionext CGI Studio.
Последние версии Nucleus включают поддержку HTTPS, Constrained Application Protocol (CoAP), MQTT и 6LoWPAN .
Nucleus также объявила о поддержке фреймворка облачных вычислений Microsoft Azure.
Nucleus интегрирован со сторонними промышленными стеками от лидеров отрасли. Поддержка промышленного стека включает хост и клиент OPC Unified Architecture (OPC UA), а также EtherNet/IP от Softing. Архивировано 22 августа 2017 г. на Wayback Machine и EtherCAT от KoenigPa.
Nucleus поддерживает режим асимметричной многопроцессорной обработки (AMP) и режим симметричной многопроцессорной обработки (SMP) для ведущих 32- и 64-битных гетерогенных многоядерных SoC. Nucleus также может работать как GOS с Mentor Embedded Hypervisor.
При работе в режиме AMP Nucleus RTOS может сосуществовать с другими экземплярами Nucleus, Linux и/или программами bare machine (metal), распределенными на других процессорах. В этом режиме каждый процессор работает независимо и ведет себя как отдельная система в SoC. Mentor Embedded Multicore Framework обеспечивает межпроцессное взаимодействие между операционными системами на различных ядрах и управление жизненным циклом процессора. Работа SMP подразумевает наличие экземпляра Nucleus RTOS, управляющего несколькими ядрами одновременно. Nucleus может распределять свои операции по всем ядрам на многоядерном устройстве или любому подмножеству ядер. Для этой цели Nucleus предлагает поддержку API времени выполнения для связанного вычислительного домена, а также управление задачами и привязками прерываний для назначения ядер.
Nucleus RTOS упакован следующим образом:
Nucleus SafetyCert сертифицирован на соответствие высочайшим уровням безопасности по стандартам DO-178C , IEC 61508 , IEC 62304 и ISO 26262 .
Примеры устройств, использующих продукцию Nucleus: