Au sein de la division « scientifique et technique » de la sous-direction Expertise, le laboratoire « Sécurité du Logiciel » (LSL) est responsable du développement logiciel robuste recouvrant toutes les étapes du cycle de développement. 1. Description du stage Rust est un langage conçu pour éviter les erreurs mémoire grâce à son système d’ownership et de borrowing. Chaque donnée à un propriétaire unique, et l’accès à la mémoire est strictement contrôlé pour éviter les pointeurs nuls, les fuites mémoires ou les accès concurrents dangereux. De même, afin de garantir que les références restent valides et sûres, Rust demande d’ajouter des règles de durée de vie ( lifetimes ). Ce système rend Rust très sûr, mais aussi contraignant : certaines structures de données ou optimisations sont difficiles à réaliser [1]. De même, lors de programmation bas niveau comme des drivers ou des microcontrôleurs, le code doit interagir avec des registres matériels, des zones de mémoire partagée ou des interruptions matérielles, ce qui n’est pas compatible avec les contraintes Safe de Rust. Pour les cas où ces restrictions sont trop fortes, Unsafe Rust permet de contourner les règles, au prix d’une sécurité qui repose alors sur le développeur. 2. Objectifs du stage · Avec l’encadrant, vous allez modéliser un driver sous forme de micro-langage [2], · coder en Rust le driver et identifier des structures de codes, · produire un générateur de code capable de produire un driver à partir de la modélisation. [1] ASTRAUSKAS VYTAYTAS et al. « How do programmers use unsafe rust? », OOPSLA 2020, ACM Digital Library. [ https://dl.acm.org/doi/10.1145/3428204 ] [2] REVELILLERE Laurent et al. « A DSL Approach to Improve Productivity and Safety in Device Drivers Development », Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.