Les microcontrôleurs ARM Cortex-M ont leur système d’exploitation Posix… en open source

Frosted OS

[MAJ LE 18/07/2016] Frosted OS, acronyme qui signifie “FRee Operating System for Tiny Embedded Devices”, est un système d’exploitation pour dispositifs embarqués de petite taille, à fortes contraintes mémoire, ...dont l’originalité est d’exposer un système d’appels du noyau via une API conforme aux spécifications Posix. L’origine de cet OS disponible en open source et écrit à partir d’une page blanche est à rechercher du côté d'une équipe de développeurs belges.

L’approche suivie par l’équipe de Frosted OS est d’avoir séparé strictement le noyau et l'espace utilisateur sur des cibles basées sur un cœur de microcontrôleur ARM Cortex-M sans unité de gestion de mémoire (MMU). L’objectif affiché est de fournir un système conforme Posix capable d'exécuter des bibliothèques et des applications dans l'espace utilisateur avec une protection mémoire forte vis-à-vis du noyau. Le tout en mettant à disposition un outil de commandes en ligne du type Unix qui s’appuie sur une couche d'abstraction matérielle basée sur le projet open source unicore-mx, une branche (un fork) du projet libopencm3 (un firmware pour les Cortex-M0, M0+, M3 et M4).

La technologie proposée permet le chargement dynamique des applications et, dans un proche avenir, la communication TCP/IP. Pour le moment, l’équipe de développement affirme que Frosted OS est porté sur les microcontrôleurs STM32F4/F7 de STMicroelectronics, la famille des LPC17xx de NXP et les Stellaris LM3S de Texas Instruments. Il fonctionne également sur la plate-forme de simulation QEMU, logiciel libre de machine virtuelle pouvant émuler un processeur lorsque le matériel n’est pas disponible.

Les domaines applicatifs visés sont l’Internet des objets et la rétro-ingénierie de jeux anciens comme Doom pour lequel l’équipe a montré la validité de son concept.

Les travaux en cours sur cet OS sont accessibles ici.