Sur le référentiel Git comportant les codes sources de la plateforme Android, Google a annoncé que la nouvelle version de Gabeldorsche, la pile Bluetooth utilisée dans Android depuis la version 11, a été réécrite avec Rust. Les détails sur le projet sont encore manquants, seules les instructions d'assemblage sont disponibles. « Actuellement, les composants Rust sont construits différemment sur Android et sur Linux. Il nous manque le support de Rust dans notre chaîne d'outils GN. Nous construisons donc actuellement les bibliothèques Rust en tant que "staticlib" et les lions en C++. Cela pourrait changer à l'avenir lorsque nous aurons un meilleur support », a déclaré l'équipe.
Pour l'instant, vous pouvez compiler l'ensemble du code Rust en utilisant Cargo. Toutefois, l'équipe a ajouté qu'il y a quelques dépendances nécessaires : vous devez avoir le paquet "protobuf-compiler" installé, disposer d'une version récente de "Cargo + Rust" et utiliser "build.py" à la racine pour faire vos constructions Rust afin qu'il dirige correctement vos dépendances vers les crates disponibles et mette votre "$CARGO_HOME" au bon endroit. Mais à quoi sert cette nouvelle pile Bluetooth exactement ?
En effet, malgré son utilisation courante, le Bluetooth peut encore être une technologie incohérente, certains systèmes d'exploitation et appareils la gérant mieux que d'autres. Le logiciel chargé de gérer les nombreuses parties mobiles d'une connexion Bluetooth est généralement appelé "pile" Bluetooth. Pendant des années, Android s'est appuyé sur la pile "Fluoride" pour ses besoins Bluetooth, mais avec Android 11, Google a commencé à tester une toute nouvelle pile appelée Gabeldorsche ou "GD" en abrégé. Gabeldorsche est en développement depuis 2019, mais Google l'a rendu public pour la première fois en 2020.
Selon Google, Gabeldorsche est conçu pour donner de la stabilité aux réseaux Bluetooth, améliorant ainsi la connectivité de votre appareil mobile avec la domotique ou d'autres types d'appareils. Alors, pourquoi avoir choisi Rust pour la réécriture de Gabeldorsche ? Google n'a pas donné ses raisons, mais en rejoignant la Fondation Rust en février, il a déclaré que Rust est un langage de programmation de systèmes qui combine un contrôle de bas niveau sur les performances avec des caractéristiques de langage moderne et un accent sur la sécurité de la mémoire.
« La sécurité de la mémoire est un défi permanent pour les développeurs de logiciels, en particulier ceux qui travaillent sur des programmes système. Google a commencé à utiliser Rust dans des contextes où la sécurité de la mémoire et les performances sont des considérations essentielles, notamment dans les principaux systèmes Android », a expliqué l'entreprise. Aujourd'hui, voici quelques exemples de projets pour lesquels Google utilise déjà Rust ou contribue à l'écosystème Rust :
- les modules du système d'exploitation dans Android, y compris Bluetooth et Keystore 2.0 ;
- les projets de bas niveau, tels que le moniteur et les pilotes de machine virtuelle crosvm (alternative à QEMU) utilisés dans Chrome OS ;
- contribution à des projets open source utilisant Rust, comme le système de contrôle de code source Mercurial ;
- un micrologiciel pour la prise en charge des clés de sécurité FIDO.
En outre, Binder, le mécanisme de communication interprocessus (inter-process communication (IPC)), utilisé dans Android est également réécrit en Rust. Il est à noter qu'en parallèle, une autre pile Bluetooth est développée pour Fuchsia OS, pour le développement de laquelle le langage Rust est également utilisé. De plus, une nouvelle pile réseau, Netstack3, est écrite en Rust pour Fuchsia. Selon Google, Fuchsia est un système d'exploitation open source de production qui donne la priorité à la sécurité, aux mises à jour et aux performances.
D'après l'entreprise, Fuchsia est une base permettant aux développeurs de créer des produits et des expériences durables sur une large gamme d'appareils. « Un ensemble de principes architecturaux fondamentaux, sûrs, actualisables, inclusifs, pragmatiques, guide la conception et le développement de Fuchsia », a écrit l'entreprise sur son site à propos de l'OS. Bien qu'il existe des frameworks proposés pour guider sa conception, Fuchsia est un travail en cours.
La rumeur l'annonçait comme le remplaçant d'Android et de Chrome OS. Cependant, Google a déclaré en juillet 2019 que son intention n'était pas de remplacer ces deux OS, mais qu'il essayait « simplement de nouveaux concepts ».
Source : Google
Et vous ?
Que pensez-vous de l'adoption de Rust pour la réécriture de la pile Bluetooth Gabeldorsche ?
Selon vous, Rust finira-t-il par remplacer totalement C/C++ dans la programmation système ?
Voir aussi
La prise en charge de Rust pour le développement du noyau Linux commence à prendre forme, le langage fait un premier pas vers la branche "Linux-Next"
À propos de son nouvel OS Fuchsia, Google déclare qu'il essaie « simplement de nouveaux concepts », sans chercher à remplacer Android et Chrome OS
Le système d'exploitation Fuchsia devrait remplacer Android et Chrome OS d'ici 5 ans, des vétérans de Google seraient associés à son développement
Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation