Ferrous Systems obtient la certification IEC 61508 -SIL 2 pour un sous-ensemble de la bibliothèque Rust Core

La jeune société allemande Ferrous Systems, sise à Berlin, fondée en 2018, et fournisseur de solutions logicielles autour du langage de programmation Rust pour systèmes embarqués et critiques, annonce avoir obtenu la certification TÜV SÜD pour un sous-ensemble de la bibliothèque Rust Core (core) selon la norme IEC 61508, au niveau SIL 2. Objectif affiché : accélérer l'adoption du langage Rust dans les secteurs critiques.

Ce sous-ensemble est désormais intégré la chaîne d'outils de compilation Rust Ferrocene 25.11.0, disponible en open source. Selon Ferrous Systems, cette étape, jugée importante, lève un obstacle à l'adoption de Rust dans les secteurs réglementés, autorisant les équipes de développement à tirer pleinement parti des performances et de la sécurité offertes par le langage Rust, tout en respectant des exigences de conformité liées au strict respect de diverses normes de sécurité fonctionnelle.

« Il est impossible d'exécuter Rust dans des environnements embarqués ou critiques sans le noyau, et ce dernier ne peut être certifié sans une validation rigoureuse à l'aide de chaînes d'outils comme Ferrocene, commente Florian Gilcher, directeur général de Ferrous Systems. Cette version réaffirme notre engagement à fournir des compilateurs Rust modernes – et désormais des bibliothèques certifiées – pour répondre aux besoins des systèmes critiques. »

Pour rappel, le noyau Rust Core est la base de toutes les autres bibliothèques Rust. Disponible dans les applications dites “no_std” (*), il fournit un ensemble d'outils essentiels pour le développement de systèmes embarqués.

Contrairement à la plupart des bibliothèques, le noyau est ici étroitement intégré au compilateur Rust. Dans ce cadre, Ferrous Systems indique que la société a commencé à travailler sur la certification d'un sous-ensemble du noyau à l'automne 2023 afin de prendre en charge les normes de sécurité fonctionnelle telles que l'ISO 26262 et la CEI 61508. Des partenaires, dont Cryspen et Thoughtworks, ont également contribué au projet en fournissant des outils.

Désormais, l’organisme de certification TÜV SÜD a certifié ce premier sous-ensemble de la bibliothèque noyau Rust selon la norme CEI 61508, au niveau SIL 2. Cette certification s'applique à la chaîne d'outils Ferrocene et à son utilisation sur des cibles matérielles qualifiées, notamment les architectures Armv7E-M et Armv8-A.

Pour rappel, Ferrocene est la première chaîne d'outils de compilation du langage Rust, disponible en open source et qualifiée pour les applications critiques en matière de sécurité. Elle permet aux équipes de développement de concevoir des systèmes plus sûrs, de réduire les efforts d'ingénierie et d'accélérer la certification.

La  chaîne Ferrocène est qualifiée TÜV SÜD pour le développement lié à la sécurité selon les normes ISO 26262 (ASIL D), IEC 61508 (SIL 3) et IEC 62304 (Classe C), et prend en charge les démarches de qualification vers les niveaux SIL 4 et DO-178C (DAL C). Ferrocene est disponible pour Linux et QNX Neutrino ( et pour d'autres systèmes d'exploitation temps réel (RTOS) sur demande).

Son code source est distribué sous licence MIT ou Apache-2.0 et inclut un manuel de sécurité open source ainsi que des documents de certification conformes aux exigences strictes de sécurité fonctionnelle.

A noter que Ferrocene 25.11.0 intègre des améliorations par rapport aux versions amont de Rust 1.89 et 1.90, notamment l'inférence explicite des arguments génériques `const`, des vérifications de code supplémentaires, des tests de documentation compilés de manière croisée et la prise en charge des types `i128` et `u128` dans les fonctions `extern "C"`.

D’ores et déjà des compagnies comme Sonair utilise Ferrocène pour un capteur ultrasonique 3D sécurisé destiné à équiper un robots autonomes et qui fonctionne sur un processeur quadricœur Armv8-A, associé à un sous-système Armv7E-M. De son côté la société Kiteshield l'utilise pour développer un système de sécurité fondé sur Rust destiné à prévenir les collisions entre machines manuelles et autonomes dans des mines souterraines.

(*) Les applications “no_std” sont utilisées sur des appareils "bare metal”, sans système d’exploitation, ni allocateur de mémoire et qui n’ont à disposition que la bibliothèque Rust standard