Dans le contexte actuel des appareils connectés, les systèmes d’exploitation en temps réel (RTOS) jouent un rôle essentiel dans le développement de solutions IoT, industrielles, médicales ou automobiles. Parmi la multitude d’options disponibles, trois se démarquent par leur maturité, leur support et leur communauté active : FreeRTOS, Azure RTOS et Zephyr.
Bien que tous permettent d’exécuter des tâches déterministes avec une faible latence sur des microcontrôleurs et des SoC, ils répondent à des philosophies, des modèles de licences et des architectures différentes. Voici un aperçu de leurs principales différences techniques et d’implémentation.
Origine et vision generale
- FreeRTOS : Initialement développé par Richard Barry, aujourd’hui maintenu par Amazon Web Services (AWS), il est sous licence MIT et supporte principalement le langage C. Orienté vers une utilisation générale, IoT et faible consommation.
- Azure RTOS : créée par Express Logic, rachetée par Microsoft. La licence est gratuite pour un usage commercial. Son orientation est orientée IoT industriel et Azure IoT.
- Zephyr : soutenu par la Linux Foundation, il est également sous licence Apache 2.0. Son développement concerne principalement l’embarqué, l’industriel, le edge computing et la modularité.
Comparaison technique
- Noyau en temps réel : léger, préemptif chez FreeRTOS ; ThreadX, robuste et déterministe dans Azure RTOS ; noyau modulaire et optionnel en mode tickless dans Zephyr.
- Support SMP : absent pour FreeRTOS et Azure RTOS, limité à certaines architectures chez Zephyr.
- Taille mémoire minimale : environ 2 Ko pour FreeRTOS et Azure RTOS, de 8 à 20 Ko pour Zephyr selon le sous-système.
- Architectures supportées : un vaste support pour Zephyr, y compris ARM, RISC-V, x86, tandis que FreeRTOS et Azure se concentrent principalement sur ARM Cortex-M.
- Systèmes de fichiers : support de FAT et systèmes tiers pour FreeRTOS, FileX pour Azure, LittleFS ou FAT pour Zephyr.
- Réseau : support standard avec lwIP, NetX ou Zephyr Net stack intégrés.
- Sécurité : intégration de TLS et cryptographie, TrustZone pour Azure et Zephyr, support partiel chez FreeRTOS.
- USB : prise en charge étendue chez Zephyr, limitée ou optionnelle chez les autres.
Intégration cloud et DevOps
- Support cloud : AWS IoT Core pour FreeRTOS, Azure IoT Hub pour Azure RTOS, optionnelle pour Zephyr via des modules tiers.
- Mises à jour OTA : support natif avec AWS OTA, Azure Device Update, et Zephyr DFU.
- Débogage et traçage : outils tels que Tracealyzer, TraceX, Zephyr Logging.
Sécurité et certifications
- TrustZone : support partiel chez FreeRTOS, complet chez Azure et Zephyr.
- Certifications : possibles avec Azure RTOS dans des standards comme IEC 61508 ou ISO 26262, en partie pour Zephyr, limité ou nécessite des partenaires pour FreeRTOS.
- Secure Boot / Root-of-Trust : dépend du hardware dans le cas de FreeRTOS, intégré avec Azure Sphere ou RT Core.
Ecosystème, outils et communauté
- Environnements de développement : compatibles avec divers IDE pour FreeRTOS, Visual Studio pour Azure RTOS, et VSCode avec Zephyr SDK.
- Communauté : très large pour FreeRTOS, support professionnel pour Azure, active et diversifiée pour Zephyr.
- Partenaires et SoC supportés : un large éventail avec NXP, ST, Microchip pour FreeRTOS ; ST, NXP pour Azure ; Intel, Nordic, Adafruit pour Zephyr.
- Simulateurs : support partiel ou limité, QEMU et autres outils disponibles.
Choix pour 2025 : cas d’usage recommandés
- FreeRTOS : pour projets simples, à faible consommation et portables, idéal pour microcontrôleurs 32 bits.
- Azure RTOS : pour applications industrielles ou médicales nécessitant fiabilité et intégration cloud avec Azure.
- Zephyr : pour projets modulaires, flexibles et sophistiqués, notamment ceux impliquant sécurité, vision, BLE ou intelligence artificielle embarquée.
Conclusion
Les RTOS comme FreeRTOS, Azure RTOS et Zephyr ne concurrencent pas nécessairement, mais se complètent, chacun évoluant pour répondre à des besoins spécifiques du secteur embarqué et IoT. FreeRTOS est apprécié pour sa simplicité, Azure RTOS pour son intégration professionnelle, tandis que Zephyr se distingue par sa modularité et son ambition d’échelle.
Le choix dépendra finalement de l’écosystème matériel, des exigences de certification, de la stratégie cloud et de la gestion à long terme du firmware.