Die Veröffentlichung der modularen Betriebssystemversion Embox 0.7 wird bekanntgegeben, die auf die isolierte Ausführung von Anwendungen abzielt, die ursprünglich für Linux erstellt wurden, jedoch ohne Linux auskommen. Das System ist in der Lage, im Echtzeitbetrieb (RTOS) auf verschiedenen Gerätetypen zu arbeiten, von gewöhnlichen x86-Systemen bis hin zu stromsparenden Platinen und Mikrocontrollern. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz verbreitet.
Der Kern von Embox ist in eine Reihe von Bibliotheken unterteilt, die verschiedene Programmierschnittstellen implementieren (Speicherverwaltung, Task-Planer, Netzwerk-Stack usw.). Dank der Modularität ermöglicht es Embox, für jede Anwendung nur die minimal erforderlichen Systemkomponenten und Bibliotheken zu verwenden, die für die Ausführung der spezifischen Anwendung notwendig sind. Für jede Anwendung wird ein eigenständiges Image erstellt, das für eine bestimmte Aufgabe optimiert ist und in der Lage ist, direkt über die Hardware zu arbeiten, ohne zusätzliche Schichten oder universelle Kerne und Systemumgebungen zu verwenden.
Eine solche Anordnung ermöglicht es, bestehende Anwendungen mit minimalen Overheadkosten auf Geräten mit eingeschränkten Ressourcen auszuführen. Embox bietet auch eine zusätzliche Schutzebene — Anwendungen werden statisch mit den Bibliotheken verknüpft, und außer der ursprünglich bereitgestellten Anwendung können in der erstellten Umgebung keine anderen Programme ausgeführt werden.
Beispiele für die Verwendung von Embox umfassen die Erstellung eines VoIP-Telefons auf Basis des Mikrocontrollers STM32F7 und der Bibliothek PJSIP, das Starten einer grafischen Benutzeroberfläche auf Basis von Qt auf dem Mikrocontroller STM32F7, die Ausführung einer Anwendung zur Verarbeitung visueller Informationen auf der STM32F769i-Platine mit OpenCV, die isolierte Ausführung des SSH-Servers Dropbear, sowie das Starten des Spiels Quake3 und grafischer Anwendungen, die Mesa verwenden.

Die Hauptfunktionen von Embox:
- Unterstützung von Prozessorarchitekturen x86, ARM, RISC-V, Microblaze, SPARC, E2K, PowerPC und MIPS.
- Unterstützung für Mikrocontroller STM32 und die Möglichkeit, Programme, die Qt, OpenCV, PJSIP und andere beliebte Frameworks nutzen, auf ihnen auszuführen.
- Unterstützung für Platinen wie Raspberry Pi.
- Unterstützung für die Erstellung von Umgebungen zur Ausführung von Anwendungen in den Programmiersprachen C++, Java, Python, Lua, TCL, Lisp, Ruby, JavaScript und Scheme.
- POSIX-Kompatibilität.
- Möglichkeit zur Verwendung der Dateisysteme FAT und ext2/3/4.
- TCP/IP-Stack mit Unterstützung für Sockets und gängige Netzwerkprotokolle (UDP, HTTP, ARP, NTP, ICMP).
- Verfügbarkeit von Unix-ähnlichen Tools wie ls, cat und mount.
Zu den Änderungen in der neuen Version gehören:
- Ein Subsystem für drahtlosen Zugriff wurde implementiert.
- Ein Subsystem zur Steuerung über AT-Befehle wurde implementiert.
- Die Unterstützung der RISC-V-Architektur wurde verbessert. Unterstützung für die Plattformen Milandr MDR1206FI, Baikal-Electronics Baikal-U und Syntacore SCR-5 hinzugefügt.
- Unterstützung für den MIPS64-Prozessor KOMDIV-64 hinzugefügt.
- Das Build-System wurde modernisiert.
- Unterstützung für die Machine-Learning-Plattform TensorFlow Lite hinzugefügt.
- Unterstützung für das Ardupilot-Framework mit Implementierung des Autopiloten hinzugefügt.
- Unterstützung für das WebSocket-Protokoll hinzugefügt.
- Die Subsysteme SPI, I2C und MMC wurden verbessert.
Quelle: opennet.ru
