Rust pour Linux inclut plusieurs améliorations pour prendre en charge

Au cours des derniers mois Les développeurs Linux se sont disputés la possibilité de autoriser l'utilisation du langage Rust pour écrire de nouveaux pilotes de périphérique pour le noyau.

L'année dernière, les développeurs du noyau Linux ils semblent s'être mis d'accord sur la question, Les partisans de Rust ont cité des travaux montrant qu'environ les deux tiers des vulnérabilités du noyau attribuées aux CVE dans Android et Ubuntu sont liées à des problèmes de sécurité de la mémoire.

Suite à cette déclaration, Linus Torvalds, ingénieur logiciel, créateur principal et développeur du noyau Linux, a déclaré dans une interview que les discussions sur le sujet seraient beaucoup plus importantes qu'un long article de Google sur le langage.

Interrogé sur la suggestion d'utiliser Rust, il a indiqué que : « La solution ici est simple : utilisez simplement C ++ au lieu de Rust. »

Après ça en mars, le premier support a été lancée qui a permis aux pilotes Rust d'être placés dans l'arborescence Linux-Next pour des tests supplémentaires avant leur éventuelle inclusion dans le noyau principal.

Juste derrière, il y avait une "demande de commentaires" rééditée sur la liste de diffusion du noyau sur la perspective du code Rust pour le noyau Linux.

Miguel OjedaLe développeur du noyau Linux a lancé une proposition de demande de commentaires (RFC) sur la liste de diffusion du noyau Linux.

Le message de la liste de diffusion décrit les convictions des développeurs impliqués dans l'ajout de code Rust au noyau, les avantages tels qu'une sécurité améliorée de la mémoire, etc.

« Certains d'entre vous ont remarqué au cours des dernières semaines et des derniers mois qu'une tentative sérieuse est en cours pour introduire une deuxième langue dans le noyau. Nous y sommes enfin, avec une RFC qui ajoute la prise en charge de Rust au noyau Linux », a déclaré Miguel Ojeja. "Nous savons que l'introduction d'un nouveau langage dans le noyau entraîne des coûts et des risques énormes", a-t-il ajouté.

L'équipe du projet Rust pour Linux passé du compilateur bêta de Rust à l'utilisation de versions stables, migrant à chaque sortie d'une nouvelle version.

"Nous tenons à remercier Rust d'avoir travaillé avec nous sur ces options afin que le noyau puisse les utiliser", a déclaré Miguel.

Lors de la mise à jour du compilateur, l'équipe a pu supprimer certaines fonctionnalités instables de la liste: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic et try_reserve.

En plus de cela, il est souligné que quelques options de modularisation ont été ajoutées plus à allouer pour désactiver certaines fonctions inutiles : no_rc et no_sync.

En amont, pour que le cas d'utilisation du noyau soit bien pris en charge, ou plus précisément, le "mix" d'options dont le noyau a besoin, le noyau en amont a également ajouté no_fp_fmt_parse.

D'autre part, Rust a permis une série de diagnostics supplémentaires pour le compilateur Rust et Clippy. Une différence par rapport à C est que les diagnostics Rust sont un peu plus faciles à désactiver dans le code, ce qui est plus strict dans le cas général.

Aussi des abstractions et des mises à jour de pilotes ont été implémentées. L'équipe a ajouté des abstractions pour les verrous de flux, les rappels de gestion de l'alimentation, la mémoire io (readX / writeX), les puces irq et les gestionnaires de flux de haut niveau, les puces gpio (y compris les puces irq), les périphériques, les périphériques amba et les pilotes.

Le soutien de la le contrôleur est amélioré avec une infrastructure indépendante du bus, Objets révocables, mutex révocables, itérateurs de bits efficaces, meilleurs diagnostics de panique et enveloppes de pointeurs simplifiées. De plus, il a amélioré et simplifié les objets Ref (compatibles avec refcount_t) et remplacé toutes les instances de Rust.

Et un nouveau pilote pour les périphériques gpio PL061 a été implémenté et expédié sous forme de correctif RFC.

Enfin, il convient de noter que La prise en charge de la rouille est toujours considérée comme expérimentale. Cependant, le support est assez bon pour que les développeurs du noyau se mettent au travail dans les abstractions Rust pour les sous-systèmes d'écriture et les contrôleurs et autres modules. La série actuelle vient d'arriver sur Linux-next, donc le premier run aura lieu cette semaine.

source: https://lkml.org/lkml


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.