Системы реального времени
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.
| Критерий | FreeRTOS | Zephyr | VxWorks |
|---|---|---|---|
| RAM минимум | 6-10 KB | 8-30 KB | 200 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/STM32 | BLE устройства, ML MCU | Авиация, космос, automotive |
| Примеры | AirPods, Amazon Echo | Nordic 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 с похожей периферией?