Представлен выпуск модульной операционной системы Embox 0.7, нацеленной на обособленный запуск поверх оборудования приложений, изначально созданных для Linux, но без использования Linux. Система способна работать в режиме реального времени (RTOS) на различных классах устройств, от обычных систем x86, до маломощных плат и микроконтроллеров. Исходный код проекта написан на языке C и опубликован на GitHub под лицензией BSD. Решение находится в разработке 16 лет.
Ядро проекта Embox разделено на серию библиотек, реализующих различные программные интерфейсы (управление памятью, планировщик задач, сетевой стек). Благодаря модульности Embox позволяет использовать для запуска каждого приложения минимальный набор системных компонентов и библиотек, достаточный для запуска конкретного приложения. Для каждого приложения формируется самодостаточный образ, оптимизированный для определённой задачи и способный работать поверх оборудования без лишних прослоек и без применения универсальных ядер и системных окружений.
Подобная компоновка в Embox позволяет запускать существующие приложения с минимальными накладными расходами на устройствах с ограниченными ресурсами. Embox также обеспечивает дополнительный уровень защиты — приложения связываются с библиотекам статически и кроме изначально поставляемого приложения в сформированном окружении невозможно выполнить другие программы.
По информации OpenNET, в качестве примеров применения Embox упоминается создание VoIP-телефона на базе микроконтроллера STM32F7 и библиотеки PJSIP, запуск на микроконтроллере STM32F7 графического интерфейса на базе Qt, выполнение на плате STM32F769i приложения для обработки визуальной информации при помощи OpenCV, обособленный запуск SSH-сервера Dropbear, запуск игры Quake3 и графических приложений, использующих Mesa.
Основные возможности Embox:
поддержка процессорных архитектур x86, ARM, RISC-V, Microblaze, SPARC, E2K, PowerPC и MIPS.
поддержка работы на микроконтроллерах STM32 и возможность запускать на них программы, использующие Qt, OpenCV, PJSIP и другие популярные фреймворки.
поддержка плат, подобных Raspberry Pi.
поддержка создания окружений для запуска приложений на языках C++, Java, Python, Lua, TCL, Lisp, Ruby, JavaScript и Scheme.
POSIX-совместимость.
возможность использования файловых систем FAT и ext2/3/4.
стек TCP/IP с поддержкой сокетов и типовых сетевых протоколов (UDP, HTTP, ARP, NTP, ICMP).
доступность Unix-подобных утилит, таких как ls, cat и mount.
Основные изменения и доработки в Embox 0.7:
реализована подсистема для беспроводного доступа.
реализована подсистема для управления через AT-команды.
улучшена поддержка архитектуры RISC-V. Добавлена поддержка платформ Milandr MDR1206FI, Baikal-Electronics Baikal-U и Syntacore SCR-5.
добавлена поддержка MIPS64-процессора KOMDIV-64.
модернизирована сборочная система.
добавлена поддержка платформы машинного обучения TensorFlow Lite.
добавлена поддержка фреймворка Ardupilot с реализацией автопилота.
добавлена поддержка протокола WebSocket.
улучшены подсистемы SPI, I2C и MMC.
Источник: habr.com