Выпуск Embox 0.7, ОС для запуска отдельных Linux-приложений поверх оборудования

Опубликован выпуск модульной операционной системы Embox 0.7, нацеленной на обособленный запуск поверх оборудования приложений, изначально созданных для Linux, но без использования Linux. Система способна работать в режиме реального времени (RTOS) на различных классах устройств, от обычных систем x86, до маломощных плат и микроконтроллеров. Код проекта написан на языке Си и распространяется под лицензией BSD.

Ядро Embox разделено на серию библиотек, реализующих различные программные интерфейсы (управление памятью, планировщик задач, сетевой стек и т.п.). Благодаря модульности Embox позволяет использовать для запуска каждого приложения минимальный набор системных компонентов и библиотек, достаточный для запуска конкретного приложения. Для каждого приложения формируется самодостаточный образ, оптимизированный для определённой задачи и способный работать поверх оборудования без лишних прослоек и без применения универсальных ядер и системных окружений.

Подобная компоновка позволяет запускать существующие приложения с минимальными накладными расходами на устройствах с ограниченными ресурсами. Embox также обеспечивает дополнительный уровень защиты – приложения связываются с библиотекам статически и кроме изначально поставляемого приложения в сформированном окружении невозможно выполнить другие программы.

В качестве примеров применения 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.

Среди изменений в новом выпуске:

  • Реализована подсистема для беспроводного доступа.
  • Реализована подсистема для управления через AT-команды.
  • Улучшена поддержка архитектуры RISC-V. Добавлена поддержка платформ
    Milandr MDR1206FI, Baikal-Electronics Baikal-U и Syntacore SCR-5.
  • Добавлена поддержка MIPS64-процессора KOMDIV-64.
  • Модернизирована сборочная система.
  • Добавлена поддержка платформы машинного обучения TensorFlow Lite.
  • Добавлена поддержка фреймворка Ardupilot с реализацией автопилота.
  • Добавлена поддержка протокола WebSocket.
  • Улучшены подсистемы SPI, I2C и MMC.

Release. Ссылка here.