La version 2.20.0 du projet Mongoose OS est désormais disponible, offrant un cadre pour le développement de firmwares pour des appareils IoT basés sur les microcontrôleurs ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4 et STM32F7. Il dispose d'un support intégré pour l'intégration avec les plateformes AWS IoT, Google IoT Core, Microsoft Azure, Samsung Artik, Adafruit IO, ainsi qu'avec tous les serveurs MQTT. Le code du projet, écrit en C et JavaScript, est distribué sous la licence Apache 2.0.
Les particularités du projet incluent :
- Le moteur mJS, destiné au développement d'applications en JavaScript (JavaScript est positionné pour la création rapide de prototypes, tandis que pour les applications finalisées, il est recommandé d'utiliser les langages C/C++);
- Système de mise à jour OTA avec support du retour en arrière en cas d'échec;
- Outils de gestion à distance de l'appareil;
- Support intégré pour le chiffrement des données sur la mémoire Flash;
- Fourniture d'une version de la bibliothèque mbedTLS, optimisée pour tirer parti des fonctionnalités des puces cryptographiques et d'une consommation mémoire minimale;
- Prise en charge des microcontrôleurs CC3220, CC3200, ESP32, ESP8266, STM32F4, STM32L4, STM32F7;
- Utilisation des outils standards ESP32-DevKitC pour AWS IoT et kit ESP32 pour Google IoT Core;
- Prise en charge intégrée de AWS IoT, Google IoT Core, IBM Watson IoT, Microsoft Azure, Samsung Artik et Adafruit IO;

Parmi les changements de la nouvelle version :
- Il est possible d'utiliser une pile réseau externe LwIP;
- Les fonctions liées au chiffrement ont été traduites dans la bibliothèque mbedtls;
- Pour les puces esp8266, une protection contre le débordement de la pile a été ajoutée à toutes les fonctions de gestion de la mémoire et l'implémentation des fonctions malloc a été optimisée;
- L'utilisation de la bibliothèque libwpa2 a été arrêtée;
- La logique de sélection du serveur DNS a été améliorée;
- L'initialisation du générateur de nombres aléatoires a été améliorée;
- Pour les puces ESP32, le chiffrement transparent des données sur les mémoires Flash a été intégré dans LFS;
- Ajout de la prise en charge du chargement de fichiers de configuration à partir de dispositifs VFS;
- Mise en œuvre de l'utilisation des hachages SHA256 lors de l'authentification;
- Prise en charge considérablement étendue de Bluetooth et Wi-Fi.
Source : opennet.ru
