Системы реального времени

FreeRTOS, Zephyr, VxWorks

Mars Rover Curiosity работает на VxWorks с 2012 года без единой перезагрузки. Falcon 9 летит на VxWorks - от старта до посадки первой ступени. AirPods работают на FreeRTOS: IMU, аудио, BLE в 10 KB RAM. Умные замки и Matter-устройства переходят на Zephyr. Каждый выбор - компромисс между ценой лицензии, памятью, сертификацией и экосистемой. VxWorks лицензия стоит от USD 12 000 за устройство. FreeRTOS - MIT, бесплатно. Zephyr - Apache 2.0, бесплатно. Цена - не главный критерий: Boeing 787 использует VxWorks, а не сэкономленные USD 12K на RTOS определяют успех самолёта.

  • **NASA Curiosity Rover**: VxWorks на RAD750 radiation-hardened процессоре - работает с 2012, обновления приходят через uplink с Земли с задержкой 20+ минут
  • **AirPods Pro**: FreeRTOS на Apple H1/H2 chip - управляет Active Noise Cancellation, Transparency mode, Spatial Audio одновременно при < 10 KB RAM footprint
  • **Nordic nRF5340 Matter устройства**: Zephyr как de-facto стандарт - BLE + Thread + Matter из коробки, PSA Certified Level 2 через TF-M
  • **Siemens SIMATIC PLC**: VxWorks или Wind River Linux в зависимости от safety level - IEC 62443 Industrial Security сертификат

FreeRTOS: IoT стандарт

**FreeRTOS** - монолитный kernel с вытесняющим планировщиком и минимальным footprint ~10 KB RAM. Создан Richard Barry в 2003, приобретён Amazon в 2017. Работает на 40+ миллиардах устройств. Архитектура: single binary, все компоненты статически слинкованы. Управление памятью - пять стратегий (heap_1 - heap_5): heap_4 наиболее распространена (first-fit с объединением блоков). Нет встроенного POSIX, нет сетевого стека в ядре. Сила FreeRTOS - в простоте API и массивной экосистеме портов (35+ архитектур от AVR до RISC-V).

**AWS FreeRTOS** (теперь FreeRTOS LTS): Amazon добавил MQTT, TLS 1.3, OTA updates и HTTP-клиент поверх ядра. Ядро осталось MIT, компоненты AWS - MIT или лицензия Amazon. ESP32 с FreeRTOS + AWS IoT Core - стандартная архитектура IoT-сенсора за USD 2.

**heap_4 vs heap_5**: heap_4 - единый пул памяти, heap_5 позволяет несколько несмежных регионов (полезно когда SRAM1 + SRAM2 разделены в адресном пространстве, как на STM32H7). При фрагментации heap_4: использовать статическое выделение через xTaskCreateStatic().

FreeRTOS задача вызывает xQueueSend() когда очередь полна. Передан timeout=0. Что произойдёт?

Zephyr: Linux Foundation RTOS

**Zephyr** - проект Linux Foundation (2015), Apache 2.0 лицензия. Целевая аудитория: микроконтроллеры с < 256 KB RAM, где Linux избыточен, а FreeRTOS не хватает встроенных возможностей. Ключевые отличия от FreeRTOS: devicetree для описания hardware (как в Linux), Kconfig для конфигурации сборки, встроенный networking stack (BLE, WiFi, LoRa, Thread, Ethernet), POSIX API subset, TF-M (Trusted Firmware-M) для PSA Certified. Toolchain: west + CMake. Zephyr native имеет Bluetooth Host Stack - не просто HCI обёртку. Поддерживает 500+ плат из коробки.

**ML на Edge с Zephyr**: Arm Cortex-M55 + Ethos-U55 NPU поддерживаются в Zephyr. TensorFlow Lite Micro запускается как Zephyr thread. Типовой pipeline: IMU данные через Zephyr sensor API -> inference thread -> BLE notify. Zephyr - де-факто стандарт для ML at the Edge на ARM Cortex-M (2024).

**West workspace**: Zephyr требует west meta-tool и manifest-файл для управления зависимостями. `west update` скачивает десятки репозиториев. Время первой инициализации workspace - 15-30 минут при медленном интернете. Не пытаться собрать Zephyr без west - не сработает.

Devicetree в Zephyr (позаимствованный из Linux) решает какую задачу?

VxWorks: аэрокосмический стандарт

**VxWorks** - Wind River Systems, 1987. Не open-source. Лицензия: от USD 12 000 за устройство для DO-178C Level A сертификата. Стоимость обоснована: сертификация само по себе стоит миллионы, VxWorks предоставляет готовый сертификационный пакет (DAL A/B/C для авиации, ASIL-D для automotive ISO 26262, IEC 62443 для industrial security). Архитектура: Wind microkernel + POSIX-совместимый API поверх. Детерминированная латентность прерывания: < 1 мкс на современном железе. Поддержка сертифицированного hypervisor для mixed-criticality систем.

**Mixed-criticality с VxWorks Hypervisor**: Boeing 787 запускает certifiable RTOS guest (flight controls) и Linux guest (cabin entertainment) на одном многоядерном CPU. Hypervisor гарантирует spatial isolation (память) и temporal isolation (CPU time). Сертификат DO-178C Level A касается только certifiable guest - Linux не нужно сертифицировать.

**Почему Curiosity и Falcon 9 на VxWorks**: не потому что самый быстрый, а потому что heritage. JPL использует VxWorks с Spirit/Opportunity 2004. Каждая миссия - десятилетия разработки и верификации. Менять RTOS = начинать сертификацию заново. Технический долг в авиакосмосе - не баг, а осознанный риск-менеджмент.

Проект разрабатывает медицинский прибор класса IIb (IEC 62304 Software Safety Class C). Какой критерий выбора RTOS наиболее важен?

Decision Matrix: выбор RTOS

Выбор RTOS - не технический, а системный вопрос: что сертифицировать, сколько памяти, какая экосистема нужна. **Footprint**: FreeRTOS 6-10 KB RAM (ядро), Zephyr 8-30 KB (зависит от включённых subsystems), VxWorks 200 KB+ (с полным POSIX). **Сертификация**: FreeRTOS - нет официальной, Zephyr - PSA Certified Level 1-3 через TF-M, VxWorks - DO-178C/ISO 26262/IEC 62443. **Экосистема**: FreeRTOS лидирует по количеству портов и примеров, Zephyr - по современным протоколам (Matter, Thread, Bluetooth LE Audio), VxWorks - по aerospace heritage. ML at the edge: Zephyr + TFLite Micro для Cortex-M55 с NPU - единственный путь в 2024-2025.

КритерийFreeRTOSZephyrVxWorks
RAM минимум6-10 KB8-30 KB200 KB+
ЛицензияMIT (бесплатно)Apache 2.0 (бесплатно)Коммерческая (от USD 12K)
СертификацияНет официальнойPSA Certified (TF-M)DO-178C, ISO 26262, IEC 62443
BLE/WiFi в ядреНет (через библиотеки)Да (Bluetooth Host Stack)Партнёрские стеки
POSIX APIНетSubsetПолный
ML at the EdgeОграниченноTFLite Micro + Ethos-UЧерез SDK
Основная нишаIoT сенсоры, ESP32/STM32BLE устройства, ML MCUАвиация, космос, automotive
ПримерыAirPods, Amazon EchoNordic nRF52840 девайсыCuriosity Rover, Boeing 787

**Zephyr - не замена FreeRTOS, а замена Linux**: Zephyr целится в устройства с < 256 KB RAM, где раньше использовали либо Linux (избыточно), либо FreeRTOS без networking. Если проект уже на FreeRTOS и не нужны BLE Host Stack или Matter - миграция на Zephyr не даёт выгоды и стоит месяцев работы.

RTOS - это FreeRTOS. Остальные - экзотика для больших бюджетов

FreeRTOS лидирует по количеству deployments, но Zephyr быстро захватывает modern IoT с BLE/Matter/ML, а VxWorks - единственный выбор при DO-178C/ISO 26262 сертификации

В 2017 Amazon купил FreeRTOS и инвестирует в AWS IoT интеграцию. Linux Foundation инвестирует в Zephyr для modern connectivity (Matter, Bluetooth LE Audio, ML). Wind River обновил VxWorks 23 с Cloud Native tools. Рынок сегментирован по нишам, не по качеству: у каждой RTOS есть домены, где она доминирует обоснованно.

Ключевые идеи

  • **FreeRTOS**: 6-10 KB RAM, MIT лицензия, 40B+ deployments. Стандарт для IoT сенсоров и MCU без connectivity stack. Простой API, 35+ архитектур
  • **Zephyr**: Linux Foundation, Apache 2.0, devicetree + Kconfig, встроенный BLE Host Stack и Matter. Де-факто стандарт для modern IoT с BLE/ML at the Edge на Cortex-M55
  • **VxWorks**: DO-178C/ISO 26262/IEC 62443 сертификация, < 1 мкс interrupt latency, hypervisor для mixed-criticality. Аэрокосмос, automotive safety, industrial. От USD 12K/устройство
  • **Decision matrix**: память + сертификация + экосистема определяют выбор. Zephyr - не замена FreeRTOS, а замена Linux на ресурсоограниченных MCU. У каждой RTOS своя ниша

Связанные темы

Выбор RTOS пересекается с embedded архитектурой, OS примитивами и parallelism моделями:

  • RTOS архитектура (rts-04) — Планировщик, IPC, MPU - механизмы внутри каждой из трёх RTOS
  • Embedded Systems (emb-05) — RTOS выбор определяет HAL и driver model для embedded проекта
  • OS синхронизация (os-05-sync) — RTOS mutex vs POSIX mutex: одна концепция, разные real-time гарантии
  • Parallel Computing (par-05) — Multi-core RTOS scheduling и AMP/SMP режимы - параллелизм в real-time контексте

Вопросы для размышления

  • Компания разрабатывает autonomous underwater vehicle (AUV): Cortex-M7, 512 KB RAM, real-time управление двигателями (< 5мс deadline), sonar processing, Ethernet telemetry. Нет safety certification требований. Какую RTOS выбрать и почему FreeRTOS или Zephyr лучше VxWorks в этом случае?
  • VxWorks стоит в 100 раз дороже FreeRTOS но используется в Boeing 787. Certification package стоит миллионы отдельно. Почему аэрокосмические компании не переходят на открытые RTOS даже при огромных бюджетах - что конкретно даёт VxWorks certification evidence?
  • Zephyr devicetree описывает hardware в compile-time. FreeRTOS работает с любым BSP через ifdef. Какой подход лучше масштабируется при разработке линейки продуктов на 5 разных MCU с похожей периферией?

Связанные уроки

  • rts-01
  • rts-02
  • rts-03
  • rts-04
  • emb-05
  • os-05-sync
  • par-05
  • os-01-intro
FreeRTOS, Zephyr, VxWorks

0

1

Войти

Стартап разрабатывает умный замок: nRF52840, BLE, 256 KB RAM, Matter protocol, без safety сертификации. Какую RTOS выбрать?