Stage - Runtime Bare-Metal Rust dans Asterios H/F - Safran
- Massy - 91
- Stage
- Safran
Les missions du poste
Safran est un groupe international de haute technologie opérant dans les domaines de l'aéronautique (propulsion, équipements et intérieurs), de l'espace et de la défense. Sa mission : contribuer durablement à un monde plus sûr, où le transport aérien devient toujours plus respectueux de l'environnement, plus confortable et plus accessible. Implanté sur tous les continents, le Groupe emploie 100 000 collaborateurs pour un chiffre d'affaires de 27,3 milliards d'euros en 2024, et occupe, seul ou en partenariat, des positions de premier plan mondial ou européen sur ses marchés.
Safran est la 2ème entreprise du secteur aéronautique et défense du classement « World's Best Companies 2024 » du magazine TIME.
Safran Electronics & Defense propose à ses clients des solutions d'intelligence embarquée leur permettant d'appréhender l'environnement, de réduire la charge mentale et de garantir une trajectoire, même en situation critique, ce dans tous les environnements : sur terre, en mer, dans le ciel ou l'espace. La société met les expertises de ses 13 000 collaborateurs au service de ces trois fonctions : observer, décider et guider, pour les marchés civils et militaires.Mission de stage:
Un programme temps-réel ASTERIOS s'écrit en utilisant le langage PsyC, et se décompose en une pluralité d'unités d'exécutions nommées « agents », qui définissent des automates temporisés, et peuvent être assimilés à des threads dans une certaine mesure. Le PsyC est un langage d'architecture dont la syntaxe est fortement inspirée du C ; son objectif est d'orchestrer des instructions C en leur affectant des contraintes temporelles, ainsi que d'exprimer des canaux de communication temporisés entre agents.
Le PsyC est compilé par une chaîne outillée propriétaire développée en interne. Elle pilote une chaîne de compilation « classique » sur étagère (e.g. gcc) permettant la génération de code objet ainsi que l'édition de liens et la manipulation de binaires. Les binaires issus de la phase de compilation sont exécutés par une plateforme d'exécution PsyC (ASTERIOS Engine) : typiquement, un noyau temps-réel s'exécutant directement sur un matériel dédié. Asterios Technologies réalise la conception, le développement, et la campagne de certification de ces composants logiciels, de sorte à assurer une compatibilité avec le DAL-A, plus haut niveau de sûreté de fonctionnement du standard aéronautique DO-178C. Il est également possible d'exécuter du PsyC en mode simulation via ASTERIOS Simulator, qui s'exécute nativement sur un système d'exploitation grand public (e.g. GNU/Linux ou Windows).
Rust est un langage de programmation système en pleine croissance depuis sa première version stable en 2015.Les bonnes propriétés du langage ont suscité beaucoup d'intérêt, notamment dans le domaine de l'aéronautique. Les objectifs de ce stage consistent à étudier les préconditions permettant l'exécution d'un programme Rust sur un environnement bare-metal (sans le support d'un système d'exploitation), et à exécuter un programme Rust au sein d'un agent PsyC piloté par un noyau ASTERIOS.
Le stage sera découpé en plusieurs jalons :
1. Découverte de l'environnement ASTERIOS et du langage PsyC.
2. Mise en place de mécanismes de FFI (Foreign Function Interface) permettant l'exécution de code Rust au sein de code PsyC sur ASTERIOS Simulator, permettant de se reposer sur un système d'exploitation généraliste.
3. Étude des mécanismes de lancement d'un programme Rust compilé en bare-metal.
4. Application des connaissances obtenues pour porter le prototype développé avec ASTERIOS Simulator sur un système embarqué piloté par ASTERIOS. Il pourra être nécessaire de modifier le noyau ASTERIOS pour obtenir un support satisfaisant des programmes Rust.
Le profil recherché
Etudiant-e en Bac +5 d'une école d'ingénieur, spécialisé-e en informatique (ou équivalent)
Ce stage nécessite une volonté de comprendre et mettre en oeuvre les mécanismes d'exécution bas niveau. Un bon niveau de maîtrise du C est attendu comme prérequis.