IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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"

Le , par Bill Fassinou

101PARTAGES

13  0 
Rust fait enfin son entrée dans le développement du noyau Linux, après plusieurs années d'analyses et de dialogue sur les avantages. Discuté à nouveau lors de la conférence Linux Plumbers l'année dernière, le tout premier support de Rust est apparu la semaine passée dans la branche Linux-Next. Même si les auteurs de ce travail jugent qu'il ne s'agit pas d'un ajout significatif, cela jette les bases de la construction des fonctionnalités du noyau Rust pour l'avenir. Ce support est conditionné par la présence d'un compilateur Rust (rustc) sur le système. De ce fait, les architectures actuellement visées sont ARM64 et x86_64.

Les développeurs de Linux discutent depuis un moment de la perspective de permettre l'utilisation du langage développé par Mozilla Research pour écrire de nouveaux pilotes de périphériques pour le noyau. L'année dernière, les développeurs du noyau Linux semblent s'être mis d'accord sur le sujet. Pour mémoire, Rust est plébiscité, car il offre plusieurs avantages, notamment en ce qui concerne la mémoire. Les partisans de Rust ont cité des travaux qui montrent qu'environ deux tiers des vulnérabilités du noyau auxquelles ont été attribués des CVE sur Android et Ubuntu sont tous liés à des problèmes de sécurité de la mémoire.



Par exemple, d’après les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE), 15,9 % des 2288 vulnérabilités qui ont affecté le noyau Linux en 20 ans sont liées à des dépassements de la mémoire tampon. C’est un défi à relever pour le futur en matière de programmation système. En outre, les géants de l'industrie, d'Apple à Amazon en passant par Facebook et Microsoft, se sont lancés ces dernières années dans le recrutement de développeurs Rust. D'ailleurs, selon la firme de Redmond, Rust est la meilleure chance de l’industrie informatique pour la mise sur pied d’applications système sécurisées.

Selon les partisans de Rust, il peut permettre d'éviter complètement cette classe d'erreurs à l'avenir grâce à des API plus sûres activées par son type de système et son vérificateur d'emprunt. D'autres avantages ont aussi été cités par ces derniers pour justifier la proposition de continuer le développement du noyau avec Rust. Comme premier pas vers ce rêve, le support initial de Rust a été annoncé jeudi sur rust-for-linux dans Linux-Next. « Cela ne signifie pas que nous allons le faire dans la version principale, bien sûr, mais c'est une bonne étape pour rendre les choses aussi faciles que possible », a prévenu Miguel Ojeda, qui est impliqué dans cet effort.

« C'est, malgré tout, une étape importante vers la capacité d'écrire les pilotes dans un langage plus sûr », a-t-il ajouté. Notons que la branche Linux-Next est la zone d'attente pour les correctifs destinés à la prochaine fenêtre de fusion du noyau. Ainsi, si vous faites du développement de noyau de pointe, vous voudrez peut-être travailler à partir de cet arbre plutôt que de la branche principale de Linus Torvalds. Selon les explications d'Ojeda, ce support nécessite la présence d'un compilateur Rust (rustc) sur le système. Ainsi, les architectures actuellement visées sont ARM64 et x86_64.

Actuellement, le support du noyau a besoin d'une chaîne d'outils Rust nightly récente pour la construction. En outre, bien qu'aucun pilote de noyau Rust ne soit encore prêt, la fusion initiale vers Linux-Next inclut un exemple de module de noyau écrit en Rust. Par ailleurs, alors que Rust est maintenant dans Linux-Next, il n'est pas encore clair si/quand il sera intégré à la branche principale. En général, le travail dans Linux-Next est peaufiné jusqu'au prochain cycle, mais il peut parfois rester dans Linux-Next plus longtemps s'il s'agit d'un travail en cours. Le code doit encore passer par toutes les formalités de demande d'extraction de la fenêtre de fusion.

Quoi qu'il en soit, l'effort progresse et il pourrait être intéressant de voir si cette infrastructure Rust initiale pour le noyau Linux parvient à être intégrée à la version 5.13 ou à une autre version du noyau cette année. Enfin, comme souligné plus haut, une partie de l'attrait pour Rust vient des caractéristiques de sécurité de la mémoire de Rust, en particulier par rapport au C, dans lequel le noyau Linux est actuellement codé. Une partie du problème, cependant, est que Rust est compilé sur la base de LLVM, par opposition à GCC, et supporte donc moins d'architectures.

C'est un problème auquel la communauté a assisté récemment lorsque la bibliothèque de chiffrement Python a remplacé une partie de l'ancien code C par Rust. En effet, cela a conduit à une situation où certaines architectures ne seront pas prises en charge. Actuellement, la proposition d'inclure Rust dans le noyau Linux limite ce problème en disant que Rust serait utilisé, au moins initialement, pour écrire des pilotes qui « ne seraient de toute façon jamais utilisés sur les architectures les plus obscures ».

Certaines entreprises n'ont toutefois pas attendu que l'équipe de développement du noyau Linux donne son aval pour la prise en charge de Rust, avant de commencer leurs propres efforts. Si vous cherchez un exemple de l'utilisation et de l'utilité de Rust dans le développement du noyau Linux, vous pouvez consulter les travaux d'Amazon Web Services avec Bottlerocket, une distribution Linux pour les conteneurs qui est largement écrite en Rust.

Sources : rust-for-linux, AWS Bottlerocket

Et vous ?

Quel est votre avis sur le sujet ?

Voir aussi

Les développeurs semblent d'accord à l'unanimité pour la prise en charge de Rust pour le développement du noyau Linux lors de la conférence Linux Plumbers

L'année 2020 est-elle celle de Rust au sein du noyau Linux ? C'est ce que suggère une sortie de Linus Torvalds, qui donne des instructions sur l'introduction de son support au système de build

« Il est vraiment difficile de trouver des mainteneurs » : Linus Torvalds parle de la prochaine génération de responsables du développement de Linux à l'occasion de la conférence Open Source Summit

Rust : les développeurs révèlent pourquoi ils ne sont pas plus nombreux à utiliser le langage de programmation, en pointant du doigt un manque d'adoption en entreprise, d'après un sondage

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 19/04/2021 à 7:12
Citation Envoyé par Bruno Voir le message
La déclaration de Linus Torvalds ne serait pas un exagéré au sujet du langage C++ ?
Elle manque de nuance, mais en même temps c'est une réponse à une déclaration qui en manquait tout autant, et Linus Torvalds n'est pas connu pour être un fin diplomate.
Le C++ a son intérêt, mais le but premier de l'intégration de Rust étant de fournir une meilleure sécurité, le C++ est clairement en dessous sur le sujet.
18  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 22/03/2021 à 15:57
Personne n'a dit que Rust était de la poudre magique qui résout tous les problèmes possibles et imaginables. Rust est juste un langage moderne qui permet le genre de chose permises par le C++ avec de bien meilleures garanties de sécurité, ni plus ni moins.
12  0 
Avatar de
https://www.developpez.com
Le 22/03/2021 à 17:21
Citation Envoyé par MetalFlower Voir le message
C'est un faux problème, cette histoire de Rust dans le kernel. En quoi ça va aider pour avoir un meilleur Linux ? Rust ou pas, on aura toujours des drivers graphiques en carton-pâte qui ne supporte pas la v-sync en 2021, 3/4 des imprimantes qui ne seront pas compatible Linux et le reste. Après, c'est chouette de pouvoir faire un driver de Voodoo FX en Rust mais ça va servir à qui ?
Pas mal... mais on t'a reconnu, Fleur en plastique.
9  0 
Avatar de walfrat
Membre expérimenté https://www.developpez.com
Le 20/04/2021 à 10:02
Disons que si on lit a travers les insultes, moi je comprend ça :

  • Ca critique concerne le C++ dans le cas de problème pointu de très bas niveau.
  • Cette critique affirme que ce langage ne résout pas des problèmes qui existent déjà en C DANS le cadre de ce besoin mais en rajoutent même.
  • L'usage des librairies STL/Boost dans le cadre de ce que fait Linus n'est pas nécessairement approprié quand tu vises un très haut niveau de performance sur des problématiques de bas niveau. Hors il y a beaucoup de développeurs qui se contentent d'utiliser les fonctions des librairies sans vraiment en comprendre les limites, ce qui est gênant quand tu veux faire quelque chose de vraiment pointu. En soi ce n'est pas la faute du C++ mais pour Linus c'était une façon de filtrer plus facilement des développeurs.


C'est ce qu'il affirme, les aficionados savent mieux que moi ce qu'il en est.
9  1 
Avatar de Pogzy
Membre à l'essai https://www.developpez.com
Le 19/04/2021 à 10:39
Faut reconnaître que C++ est vraiment casse gueule pour des systèmes critiques.
7  0 
Avatar de smarties
Membre éprouvé https://www.developpez.com
Le 22/03/2021 à 17:10
Citation Envoyé par MetalFlower Voir le message
..., on aura toujours des drivers graphiques en carton-pâte qui ne supporte pas la v-sync en 2021, 3/4 des imprimantes qui ne seront pas compatible Linux et le reste. Après, c'est chouette de pouvoir faire un driver de Voodoo FX en Rust mais ça va servir à qui ?
C'est pas la faute des développeurs du noyau forcément, c'est de la faut des constructeurs qui ne publient pas/ne maintienne pas leurs drivers ou ne fournissent pas une documentation pour le programmer. Le développeur du noyau n'a pas tous les matériels sous la main pour les réaliser lui même.
6  0 
Avatar de walfrat
Membre expérimenté https://www.developpez.com
Le 19/04/2021 à 15:35
Le jeu vidéo est loin d'être un système critique
Je ne suis pas vraiment d'accord.

Sur le mot critique, au sens de la sécurité des personnes, on est d'accord.

Cependant quand tu as des jeux en lignes qui supportent des millions de personnes h24 et que a part la maintenance, t'as vraiment pas envie que tes serveurs crashes ou rament, il y a quand même un très haut niveau de robustesse et de performances et de fiabilité qui s'approchent beaucoup des systèmes critiques je pense.
5  0 
Avatar de coder_changer_vie
Membre régulier https://www.developpez.com
Le 08/07/2021 à 19:02
"Google sponsorise Ojeda pour qu'il travaille à temps plein sur le projet pendant un an"

Suis-je le seul à penser que venant d'un grand groupe, ce type d'investissement semble démesurément ridicule aux regard des enjeux / bénéfices techniques ?

C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).

j'ai pas suivi en détail, mais c'est le reflexe pavlovien que ça inspire en première lecture
5  0 
Avatar de AoCannaille
Membre expert https://www.developpez.com
Le 09/07/2021 à 9:56
Citation Envoyé par coder_changer_vie Voir le message
C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).
Sans compter les ~900 000 serveurs de googles qui génèrent genre 90% de leur chiffre d'affaire...
5  0 
Avatar de Astraya
Membre chevronné https://www.developpez.com
Le 19/04/2021 à 12:08
Je trouve cela bien qu'ils essaient de pousser Rust.

Oui C++ n'apporte rien de plus que le C pour le développement OS. Rust répond aux problèmes spécifiques au développement d'un noyau qu'il soit Linux ou Windows.
mais pour "C++ est un langage de merde", ça montre juste que Torvalds a une position critique et clairement il ne sait pas peser ces mots ( et pour moi, en fait un type patibulaire a qui je ne fais pas confiance même point de vue technique ) et que tout ce qu'il dit est a prendre prendre avec des pincettes.
Est-ce que son avis est la vérité absolue? Je ne crois pas en une personne ayant la réponse unique au problème de l'univers.

J'aime Rust et j'aime C++, le deux ont leur forces et leurs faiblesses, mais clairement dire que C++ c'est de la merde c'est du niveau court d'école.
8  4