Publication de la version du système d'exploitation modulaire Embox 0.7, destiné à l'exécution isolée d'applications conçues à l'origine pour Linux, sans utiliser Linux. Le système peut fonctionner en temps réel (RTOS) sur diverses classes d'appareils, des systèmes x86 normaux aux cartes peu puissantes et microcontrôleurs. Le code du projet est écrit en langage C et distribué sous licence BSD.
Le noyau d'Embox est divisé en une série de bibliothèques implémentant diverses interfaces programmatiques (gestion de la mémoire, planificateur de tâches, pile réseau, etc.). Grâce à sa modularité, Embox permet d'utiliser le minimum de composants et bibliothèques système nécessaires pour lancer chaque application. Pour chaque application, une image autonome est créée, optimisée pour une tâche spécifique et capable de fonctionner sur le matériel sans couches supplémentaires ni utilisation de noyaux universels et d'environnements système.
Cette configuration permet d'exécuter des applications existantes avec un minimum de frais généraux sur des appareils aux ressources limitées. Embox assure également un niveau de protection supplémentaire : les applications sont liées statiquement aux bibliothèques et en dehors de l’application initialement fournie, il est impossible d’exécuter d'autres programmes dans l'environnement formé.
Des exemples d'application d'Embox incluent la création d'un téléphone VoIP basé sur le microcontrôleur STM32F7 et la bibliothèque PJSIP, l'exécution d'une interface graphique basée sur Qt sur le microcontrôleur STM32F7, l'exécution d'une application de traitement d'informations visuelles sur la carte STM32F769i à l'aide d'OpenCV, l'exécution isolée du serveur SSH Dropbear, le lancement du jeu Quake3 et d'applications graphiques utilisant Mesa.

Fonctionnalités principales d'Embox :
- Prise en charge des architectures de processeurs x86, ARM, RISC-V, Microblaze, SPARC, E2K, PowerPC et MIPS.
- Prise en charge des microcontrôleurs STM32 et possibilité d'exécuter des programmes utilisant Qt, OpenCV, PJSIP et d'autres frameworks populaires.
- Prise en charge de cartes similaires à Raspberry Pi.
- Prise en charge de la création d'environnements pour l'exécution d'applications dans les langages C++, Java, Python, Lua, TCL, Lisp, Ruby, JavaScript et Scheme.
- Compatibilité POSIX.
- Possibilité d'utiliser des systèmes de fichiers FAT et ext2/3/4.
- Pile TCP/IP avec prise en charge des sockets et des protocoles réseau standard (UDP, HTTP, ARP, NTP, ICMP).
- Disponibilité d'outils de type Unix, tels que ls, cat et mount.
Parmi les changements de la nouvelle version :
- Sous-système pour l'accès sans fil implémenté.
- Sous-système pour la gestion via des commandes AT implémenté.
- Amélioration de la prise en charge de l'architecture RISC-V. Prise en charge ajoutée des plateformes Milandr MDR1206FI, Baikal-Electronics Baikal-U et Syntacore SCR-5.
- Prise en charge ajoutée du processeur MIPS64 KOMDIV-64.
- Système de construction modernisé.
- Prise en charge ajoutée de la plateforme d'apprentissage machine TensorFlow Lite.
- Prise en charge ajoutée du framework Ardupilot avec implémentation de pilote automatique.
- Prise en charge ajoutée du protocole WebSocket.
- Améliorations des sous-systèmes SPI, I2C et MMC.
Source : opennet.ru
