La société Microsoft a annoncé l'ouverture sous licence MIT des codes sources de son système d'exploitation en temps réel Azure RTOS, acquis suite à l'absorption de la société Express Logic en 2019, qui avait été fournie pendant plus de 20 ans sous le nom de ThreadX. Il est affirmé que ce système d'exploitation a été installé sur plus de 12 milliards d'appareils à travers le monde, y compris des appareils électroniques grand public, des systèmes industriels, des dispositifs médicaux, des imprimantes, des puces WiFi et même des systèmes embarqués dans des vaisseaux spatiaux.
Après l'ouverture complète des codes sources, prévue pour janvier 2024 (le code de ThreadX était déjà accessible auparavant, mais sous une licence restrictive), le produit sera placé sous le patronage de l'organisation à but non lucratif Eclipse Foundation et évoluera sous le nom d'Eclipse ThreadX en tant que projet collaboratif indépendant, détaché de tout fournisseur particulier. Il est supposé que le transfert du projet vers une plateforme indépendante permettra d'attirer de nouveaux participants au développement et de stimuler la croissance de la plateforme ainsi que de son écosystème associé. Des entreprises telles qu'AMD, Cypherbridge, NXP, PX5, Renesas, ST Microelectronics, Silicon Labs et Witekio (Avnet) ont déjà exprimé leur volonté de participer au projet collaboratif.
Le système d'exploitation Eclipse ThreadX, dans sa version minimale, ne nécessite que 2 Ko de mémoire et peut fonctionner sur des puces avec 1 Ko de RAM, offrant un passage de contexte en une fraction de microseconde et un chargement en 120 cycles processeur. Parmi les fonctionnalités de ThreadX figurent : une architecture basée sur des cœurs, des planificateurs pour la multitâche préemptive (basée sur des priorités) et la multitâche coopérative, un mécanisme de minimisation des changements de contexte en désactivant la préemption des tâches jusqu'à un seuil de priorité spécifié, le soutien à la chaîne d'événements (event chaining), un large éventail de services système connectables, un traitement extrêmement rapide des interruptions, une optimisation supplémentaire du traitement des interruptions de minuterie, des outils de gestion de mémoire avec prise en charge de MMU/MPU, protection de la mémoire, un mécanisme d'échange de messages et d'organisation des échanges de données entre threads, livraison de notifications d'événements, mécanismes de synchronisation des threads, avec prise en charge des mutex et sémaphores.
Outre les codes du système d'exploitation, des composants associés seront également ouverts et remis à Eclipse :
- NetX Duo — une pile réseau conçue pour une utilisation dans des systèmes en temps réel et des dispositifs IoT (Internet des objets). Prend en charge IPv4, IPv6, TCP, UDP, ICMP, TLS, DTLS, IPsec, PPPoE, DHCP, DNS, HTTP, IGMP, POP3, SMTP, SNMP, MQTT, CoAP, LWM2M.
- USBX — une pile USB prenant en charge les modes client, hôte (EHCI, OHCI) et OTG (on-the-go).
- FileX — un système de fichiers compatible avec FAT (FAT12/16/32 et exFAT) et entièrement intégrable dans le noyau ThreadX.
- LevelX — une implémentation de l'algorithme d'égalisation d'usure (Wear Leveling) pour le FS FileX, permettant de prolonger la durée de vie des mémoires Flash.
- GUIX — une bibliothèque pour créer des interfaces graphiques utilisateur embarquées.
- GuiX Studio — un environnement de conception permettant de créer des éléments graphiques pour la bibliothèque GUIX et de générer automatiquement du code C pour le lancer dans un environnement ThreadX.
- TraceX — un outil de traçage qui fournit une interface graphique pour le suivi et l'analyse d'événements en temps réel.
Compatible avec la plupart des microcontrôleurs et processeurs populaires, y compris les processeurs multicœurs x86, MIPS, RISC-V et ARM, ainsi que des puces de STM, NXP, Qualcomm, Renesas, Texas Instruments et Microchip. Des couches de compatibilité avec FreeRTOS, POSIX et OSEK sont fournies. Le système est certifié pour une utilisation dans des systèmes critiques nécessitant un niveau particulier de fiabilité, conforme aux exigences des normes de sécurité et de fiabilité IEC 61508, IEC 62304, ISO 26262, EN 50128 et EAL4+ Common Criteria.
Les composants liés à la certification ont également été transférés à l'organisation Eclipse et seront disponibles sous une licence ouverte sans redevances. Les certificats existants permettent d'utiliser Eclipse ThreadX dans des productions chimiques, des systèmes pour le secteur pétrolier et gazier, des centrales électriques, l'industrie aérospatiale, le chemin de fer, des systèmes automobiles (y compris les puces de gestion du moteur, les systèmes d'assistance à la conduite et les pilotes automatiques) et des dispositifs médicaux.
Source : opennet.ru
