Stage - Conception d’un générateur automatique de drivers en Rust

Résumé du poste
Stage(6 mois)
Rennes
Télétravail non autorisé
Salaire : Non spécifié
Éducation : Bac +5 / Master
Compétences & expertises
Connaissances en cybersécurité
Communication
Rust

Questions et réponses sur l'offre

Le poste

Descriptif du poste

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.


Profil recherché

Vous suivez une formation dans le domaine des technologies de l’information et de la communication avec une spécialisation en sécurité informatiques. Vous avez de l’appétence pour la programmation avec éventuellement des connaissances en Rust.


Déroulement des entretiens

·         Si votre candidature est présélectionnée, vous serez contacté(e) pour apprécier vos attentes et vos motivations au cours d’un entretien téléphonique ou physique.

·         Vous pourrez faire l’objet d’une procédure d’habilitation.

Envie d’en savoir plus ?

D’autres offres vous correspondent !

Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.