ARealTI collabore depuis de nombreuses années avec le leader mondial en matière de technologie de voiture connectée. Parmi les nombreux projets développés chez cet industriel, nous avons mis au point un nouvel hyperviseur. L’objectif était de pouvoir remplacer plusieurs processeurs/SoCs/ECUs par un seul SoC supportant la virtualisation afin d’exécuter plusieurs OS en parallèle.
En raison de contraintes temps réel, une virtualisation des ressources hardware nécessite un couplage fort avec le bas niveau. Des drivers ont donc été développés dans l’hyperviseur pour certaines fonctionnalités du SoC (GPIOs, interruptions, co-processeurs graphiques, …).
L’hyperviseur de type 1 mis en place tourne directement au-dessus du hardware. La virtualisation est OS agnostique et supporte les OS temps réel, ce qui est nécessaire pour gérer des systèmes critiques sur un véhicule.
L’hyperviseur fournit une interface d’hypercalls permettant la communication avec l’hyperviseur, et entre les machines virtuelles. Nous réalisons ensuite des pilotes virtualisées utilisant cette couche de communication pour partager les ressources matérielles entre les différents OS.
La problématique de la virtualisation et du support de plusieurs OS est omniprésente dans tous les aspects de ce projet et conditionne les choix techniques. Certaines tâches qui pourraient sembler à priori anodines deviennent vite complexes quand il s’agit de supporter plusieurs OS en parallèle, sur une plateforme virtualisée. Le hardware et le software permettent une isolation entre les machines virtuelles, mais les défis des traitements asynchrones restent omniprésents.
Le soin apporté par ARealTIsur les performances, la sécurité, et la sûreté de fonctionnement de la plateforme permettent de virtualiser des OS temps réels dédiés à des systèmes critiques.