MENU

Le langage Rust fête son 10e anniversaire

Le langage Rust fête son 10e anniversaire

Interviews |
Par Nick Flaherty, A Delapalisse



Alors que Rust fête son10e anniversaire, Nick Flaherty de eeNews/ECInews s’entretient avec Tony Aiello et Stephen Hedrick d’Adacore sur l’évolution du langage pour les systèmes embarqués et critiques.

Rust évite les problèmes de mémoire qui surviennent avec C et C++, garantissant que le code peut être développé pour des applications sécurisées et critiques en termes de sécurité. Mais il y a plusieurs perceptions qui freinent son développement : il n’y a pas assez d’ingénieurs qualifiés ayant de l’expérience dans le langage, et les outils ne sont pas prêts.

Il existe des parallèles entre le développement du langage Rust et le langage formel Ada. Adacore développe des outils pour les systèmes de sécurité critiques et a lancé une version de son outil Gnat Pro pour Rust en 2023.

« Notre perspective est différente de celle du grand public. Nous nous concentrons sur le développement d’outils pour les applications à haute intégrité, souvent dans le domaine de l’embarqué, c’est-à-dire l’aérospatial et la défense, certains nouveaux espaces, l’automobile, le médical », a déclaré M. Aeillo, responsable des produits et de l’innovation chez Adacore et chef de produit chargé du lancement des outils Rust.

« Ce que nous voyons, c’est que Rust prend de l’ampleur. L’intérêt pour Rust est largement alimenté par les ingénieurs de base qui veulent trouver une approche avant-gardiste, l’utilisent dans des projets de loisir et s’activent dans leurs équipes pour que Rust soit adopté ».

« S’il y a des hésitations de la part des responsables, c’est moins à cause des ingénieurs que du fait que l’utilisation n’a pas été prouvée dans notre domaine et qu’il y a des questions sur l’exhaustivité de l’écosystème, la qualification des normes de sécurité, ce sont des choses qui doivent être abordées », a-t-il déclaré.

« Il s’agit d’un langage encore jeune et beaucoup de choses vont mûrir avec le temps. Le fait est qu’il y ait encore un engouement et que celui-ci augmente et commence à pénétrer l’industrie. Il est important de noter que tout langage grand public a ces obstacles à surmonter », a déclaré M. Hedrick, l’actuel chef de produit de Rust

L’une des objections à l’utilisation de Rust est que les développeurs peuvent utiliser correctement le langage C pour le code critique.

« Je ne crois pas qu’il soit possible faire du C correctement pour l’embarqué. Je ne pense pas que le langage C soit approprié pour les applications critiques en matière de sécurité », a déclaré M. Aiello. « Nvidia a opté pour Spark et a utilisé des méthodes formelles complètes pour son développement critique en matière de sécurité, et il existe une étude de cas à ce sujet. Si vous devez écrire un nouveau code, vous ne devriez pas utiliser le langage C. »

« Lorsque nous avons commencé à parler d’un produit Rust, nous avons été surpris de constater qu’il n’y avait pas la vague d’intérêt à laquelle nous nous attendions. Il y a eu beaucoup de conversations et les clients voulaient en savoir plus sur Rust », a déclaré M. Aiello. « Aujourd’hui, nous avons beaucoup plus de prospects qui semblent être sur le point de s’intéresser sérieusement à Rust, mais il y a une certaine hésitation à ne pas vouloir être les premiers. Je suis prudemment optimiste d’après ce que nous entendons par l’intermédiaire du consortium pour la sécurité critique.

« Il y a des choses qui semblent similaires à Ada. Il s’agit d’un langage sans danger pour les utilisateurs, ce qui ralentit les gens et le rend un peu similaire, mais je pense qu’il y a plus de différences que de similitudes.

L’un des facteurs a été le mandat Ada délivré en 1987 par le ministère américain de la défense pour normaliser le développement de logiciels et remédier à la prolifération des différents langages et dialectes de programmation.

« Ada avait moins de dix ans lorsque le mandat a été publié et le sentiment était que les compilateurs n’étaient pas prêts », a déclaré M. Aiello. « Les compilateurs de Rust sont prêts, de sorte que Rust C est suffisamment rapide et stable. Le code produit est efficace, mais la différence la plus importante est que, même si les ingénieurs Rust sont moins nombreux que les ingénieurs C, il y a une énorme communauté derrière Rust. La force de cette communauté est difficile à évaluer ».

L’écosystème Rust

Il reconnaît toutefois les lacunes de l’écosystème, en particulier la couverture des conditions et décisions modifiées (MC/DC). Il s’agit d’un critère de couverture de code utilisé pour garantir la fiabilité et la robustesse des systèmes logiciels critiques et qui va au-delà de la couverture de base pour vérifier que chaque condition au sein d’une décision affecte indépendamment le résultat de cette décision.

« Il y avait des lacunes et nous les comblons. Nous avons un outil de couverture pour Rust qui sortira à l’automne. La couverture MC/DC manquait et elle est absolument nécessaire. Une autre lacune est une norme de codage pour Rust dans les normes de sécurité critiques. La Fondation Rust est en train d’élaborer une norme de codage et, une fois que ce sera fait, les outils suivront. En attendant, il s’agit d’une solution ad hoc, mais plus nuancée pour l’instant.

La certification des bibliothèques d’exécution telles que la bibliothèque standard pour les normes de sécurité critiques comme ISO26262 pour l’automobile et IEC61508 pour l’industrie est également un problème potentiel.

« Ada a un runtime riche et Rust a un runtime riche », a déclaré M. Aiello. « Vous pouvez vous passer de libstd, mais libcore est considéré comme un élément fondamental du langage. Il s’agit d’une grande bibliothèque de 36 000 lignes de code qui est intégrée à l’application finale et qui doit être certifiée. Cela prendra du temps et sera coûteux, et nous en discutons avec les clients potentiels. Cependant, une fois que quelques-unes de ces certifications auront été réalisées, l’ensemble de la communauté se trouvera dans une meilleure situation.

« À l’avenir, des pressions pourraient s’exercer contre la recompilation des bibliothèques. Si vous voulez livrer une bibliothèque Rust, vous devez la livrer en open source, ce qui peut poser des problèmes avec le code propriétaire. Ce n’est pas non plus quelque chose que le projet ignore », a déclaré M. Aeillo. « Des discussions sont en cours pour savoir quand et comment aborder le problème de l’API pour le code propriétaire.

Le Safety Critical Consortium comprend la Rust Foundation, ARM, Ferrous Systems, OxidOS, Synopsys, HighTec EDV-Systeme, TrustInSoft, Veecle et Woven by Toyota pour soutenir l’utilisation du langage et étendre l’écosystème avec les projets et les normes de sécurité critiques existants, y compris SAE JA1020.

« Grâce au travail actif du Safety Critical Consortium, de nombreux progrès ont été réalisés et, au fur et à mesure que les choses avancent, les gens considèrent que cette option est de plus en plus viable », a déclaré M. Hedrick. « Plus nous aurons d’exemples d’adoption par l’industrie pour montrer les applications réelles, plus nous devrons viser. Il y a encore beaucoup à venir et le potentiel est énorme, et c’est ce qui est formidable.

M. Aiello ne s’attend pas à subir les mêmes pressions pour obtenir un mandat pour Rust.

« Je ne m’attends pas à un mandat pour Rust. Je pense que le DoD s’est tellement brûlé avec ADA que je ne pense pas qu’il recommencera. En revanche, il existe une forte pression en faveur d’un mandat sur la sécurité de la mémoire et d’un matériel à mémoire sécurisée tel que CHERI« , a-t-il déclaré. « Aujourd’hui encore, j’entends dire que les clients exercent des pressions pour que l’on passe à la sécurité de la mémoire.

Les copilotes IA peuvent également vous aider à coder en Rust.

« Je pense que c’est une excellente idée, surtout lorsqu’il s’agit de l’apprendre », a déclaré M. Hedrick. « Ensuite, vous pouvez devenir aussi complexe que vous le souhaitez. La marée monte, les bateaux montent, les projets robotiques amateurs et communautaires se multiplient, sur Raspberry Pi et d’autres plates-formes, et peuvent s’étendre à la recherche dans les entreprises. »

www.adacore.com

Si vous avez apprécié cet article, vous aimerez les suivants : ne les manquez pas en vous abonnant à :    ECI sur Google News

Partager:

Articles liés
10s