Système d’exploitation temps réel doté d’une implantation native des threads Posix, PX5 déboule sur le marché

C’est sous la houlette de William (Bill) Lamie que vient de naître PX5, un nouvel entrant sur le marché des systèmes d'exploitation temps réel (RTOS). William Lamie est une figure bien connue du monde des logiciels embarqués qui est à l’origine des RTOS Nucleus et surtout ThreadX, devenu Azure ThreadX suite au rachat d’Express Logic par Microsoft en 2019. Le P de PX5 signifie pThreads (Posix threads), tandis que le X relève de la commutation de threads et que le 5 indique que PX5 est le 5e RTOS dont Bill Lamie est à l'origine.

Le développement du système PX5 est parti du constat, mis en avant par ses concepteurs, que le système d’exploitation Embedded Linux, un dérivé de Linux adapté aux systèmes embarqués, est utilisé par une large communauté de développeurs qui tirent parti des threads Posix (pThreads). Les pThreads forment un ensemble d'API standard destiné aux opérations de multithreading. Ce qui inclut les threads eux-mêmes, les sémaphores, les mutex, les variables de condition, etc. Or, selon les développeurs de PX5, Embedded Linux d’une part ne prend pas en compte des contraintes de temps réel déterministe et d’autre part ne peut pas être mis en œuvre sur des microcontrôleurs limités au niveau de la capacité mémoire,  en particulier ceux qui ne gèrent pas la MMU (Memory Management Unit).

D’où l’idée fondatrice de PX5 : procurer aux développeurs un système d’exploitation temps réel qui prenne en charge de manière native les pThreads, très familiers des développeurs Linux, mais absents de la quasi-totalité des RTOS du commerce (sauf parfois sous forme de couches pThread additionnelles qui alourdissent le poids du RTOS). En somme PX5 a l’ambition de proposer le meilleur des deux mondes, RTOS d’un côté, Linux de l’autre.

"Notre mission chez PX5 est d’apporter aux développeurs l’API Posix pThreads normalisée par l’IEEE, existante au sein de Linux, pour des applications temps réel déterministes sur des systèmes embarqués à ressources mémoires limitées", résume Bill Lamie, fondateur de la société PX5, basée à San Diego aux Etats-Unis.

PX5 est donc conçu, selon ses promoteurs, pour les appareils embarqués les plus limités en ressources, car il nécessite moins de 1 Ko de mémoire de zone d'instructions pour un fonctionnement minimal, sans recours à une MMU, et 10 Ko pour la plupart des applications. A comparer aux mégaoctets de mémoire réclamés par la plupart des implantations Linux. Avec en sus le respect du déterminisme quelle que soit la charge du système  avec un changement de contexte entièrement déterministe et des appels d’API qui prennent moins de 1 µs.

Qualifié d’Industrial Grade par ses concepteurs, en raison de sa capacité à respecter des contraintes fortes de sûreté de fonctionnement, PX5 est capable de vérifier notamment tous les pointeurs de fonction, les adresses de retour et la mémoire allouée, réduisant ainsi le risque de corruption accidentelle ou intentionnelle de la mémoire. Le système est écrit en C générique, avec une quantité minimale de dépendance spécifique au processeur et au compilateur utilisés.

Conséquence, il peut selon ses concepteurs être porté sur n’importe quelle architecture 8/16/32/64 bits avec une prise en charge du compilateur C. D’ores et déjà  PX5 est implanté sur les architectures Arm Cortex-M, Cortex-R et Cortex-A, et est pris en charge par les outils de développement d’IAR Systems (qui ont été utilisés pour son développement par les équipes de PX5), les outils Arm et les outils open source GCC.

Disponible sous forme commerciale (avec une licence d’exploitation) ou en open source, PX5 sera intégré très rapidement, selon Bill Lamie, à de nombreux projets open source embarqués populaires, notamment LwIP, FatFS, LittleFS, LVGL et TinyUSB.

Enfin, PX5 est d'ores et déjà soutenu par des sociétés partenaires du projet, comme Cypherbridge Systems, société californienne qui développe des logiciels de sécurité, Clarinox, éditeur de piles de protocoles Buetooth et Wi-Fi pour l’embarqué, et Percepio, éditeur suédois qui propose sous le nom de Tracealyzer un logiciel de visualisation et d'analyse d’exécution du code sur des systèmes d’exploitation embarqués.