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 fait l'objet d'une nouvelle série de discussions,
Après une proposition de RFC

Le , par Bruno

1.9KPARTAGES

16  0 
Le mois dernier, le tout premier support permettant l'utilisation du langage de programmation Rust dans le noyau Linux est apparu dans l'arbre Linux-Next pour des tests plus étendus avant son inclusion éventuelle dans le noyau principal. Aujourd'hui, une "demande de commentaires" a été relancée sur la liste de diffusion du noyau autour des perspectives du code Rust pour le noyau Linux. Miguel Ojeda, développeur du noyau Linux, a lancé une proposition de RFC (Request For Comments) sur la liste de diffusion du noyau Linux.

Miguel Ojeda, développeur du noyau, a lancé une proposition de 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 du code Rust au noyau, les avantages tels que l'amélioration de la sécurité de la mémoire, et plus encore. « Certains d'entre vous ont remarqué ces dernières semaines et ces derniers mois qu'une tentative sérieuse d'apporter un second langage au noyau était en train de se forger. Nous y sommes enfin, avec une RFC qui ajoute le support pour Rust au noyau Linux », a déclaré Miguel Ojeja. « Nous savons qu'il y a des coûts et des risques énormes à introduire un nouveau langage dans le noyau », a-t-il ajouté.


Rappelons que les RFC sont un ensemble de documents qui font référence auprès de la communauté Internet et qui décrivent, spécifient, aident à l'implémentation, standardisent et débattent de la majorité des normes, standards des technologies et protocoles liés à Internet et aux réseaux en général. Chacun de ces documents représente une proposition de spécification qui peut à tout moment être rendue obsolète par un nouveau document RFC. Ainsi, les RFC sont des fichiers textes dont le nom est rfcxxxx.txt dont xxxx est un nombre incrémenté pour chaque nouveau RFC.

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.

Notons que Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.

Avec Rust, il est possible de développer des pilotes de périphériques, des systèmes embarqués, des systèmes d'exploitation, des jeux, des applications web, et bien d'autres choses encore. Des centaines d'entreprises dans le monde entier utilisent Rust en production pour des solutions multiplateformes et économes en ressources. Des logiciels connus et appréciés, comme Firefox, Dropbox, et Cloudflare, utilisent ce langage. De la startup à la multinationale, du système embarqué au service web à haute disponibilité, Rust serait une excellente solution.

Selon Miguel Ojeda, développeur du noyau Linux, les avantages de l’introduction du langage Rust dans le noyau Linux l'emportent sur les coûts. Pour le développeur, en utilisant Rust dans le noyau Linux, le nouveau code écrit en Rust a un risque réduit de bogues de sécurité mémoire, grâce aux propriétés du langage Rust. Le langage Rust serait plébiscité pour sa sécurité.

Google a récemment déclaré que : « les défauts de sécurité de la mémoire menacent fréquemment la sécurité des appareils, en particulier pour les applications et les systèmes d'exploitation. Par exemple, sur le système d'exploitation mobile Android, Google dit avoir constaté que plus de la moitié des vulnérabilités de sécurité traitées en 2019 résultaient de bogues de sécurité de la mémoire. Et ce, malgré les efforts considérables déployés par l'entreprise et d'autres contributeurs au projet Open Source Android, pour investir ou inventer diverses technologies, notamment l'AddressSanitizer, des allocateurs de mémoire améliorés et de nombreux fuzzers et autres outils de vérification du code ».

Le langage de programmation Rust se popularise davantage, une popularité grandement alimentée par les grandes entreprises technologiques et les solutions utilisées à grande échelle. En début de ce mois, Google a révélé sur le référentiel Git comportant les codes sources de la plateforme Android, que la nouvelle version de Gabeldorsche, la pile Bluetooth utilisée dans Android depuis la version 11, a été réécrite avec Rust.

Google a également annoncé la semaine dernière que l'Android Open Source Project (AOSP) prendra désormais en charge le langage Rust pour le développement de son système d’exploitation mobile. « Outre les langages à mémoire sécurisée comme Kotlin et Java, nous sommes heureux d'annoncer que le projet Android Open Source prend désormais en charge le langage de programmation Rust pour le développement du système d'exploitation Android », a déclaré Google sur son blog. Cette annonce s'inscrit dans le cadre des efforts déployés par l'entreprise pour résoudre les problèmes de sécurité de la mémoire dans le système d'exploitation. Voici, ci-dessous quelques raisons évoquées par Miguel Ojeja pour l’utilisation de Rust dans le noyau Linux :

  • plus de personnes s'impliquent dans le développement du noyau grâce à l'utilisation d'un langage moderne ;
  • en tirant parti des outils de Rust, il est possible d’appliquer les directives de documentation qui ont été établies jusqu'à présent dans le cadre du projet Rust ;
  • les développeurs sont plus confiants dans le remaniement et l'acceptation des correctifs pour les modules grâce à la sécurité du langage, les correctifs pour les modules grâce au sous-ensemble sûr de Rust ;
  • les nouveaux pilotes et modules deviendront plus faciles à écrire, grâce à des abstractions plus faciles à concevoir, basées sur les caractéristiques du langage modernes, ainsi qu'à une documentation détaillée.

Selon les partisans de l’ajout du langage Rust comme second langage (à côté du langage C) pour l’écriture du noyau Linux, Rust est un langage de programmation système qui apporte plusieurs avantages clés par rapport au C dans le contexte de ce projet :

  • bibliothèque standard étendue et indépendante ;
  • une distinction claire entre le code fiable et le code "non fiable" ;
  • un système de types plus strict pour réduire davantage les erreurs de logique ;
  • outils intégrés prêts à l'emploi : générateur de documentation, tous basés sur le compilateur ;
  • pas de comportement non défini dans le sous-ensemble fiable, y compris la sécurité de la mémoire et l'absence de courses de données ;
  • un langage riche en fonctionnalités : types de somme, filtrage, génériques, durées de vie, références partagées et exclusives, modules et visibilité.

Dans l'ensemble, Rust est un langage qui a su tirer parti de décennies d'expérience des langages de programmation système et des langages fonctionnels. Cependant, Miguel Ojeja reconnaît également les raisons de s'y opposer, comme les temps de compilation plus lents, le manque de standardisation de certains aspects, l'infrastructure existante du noyau Linux qui est axée sur le C, et la dépendance au projet LLVM (est une collection de technologies de compilateurs et de chaînes d'outils modulaires et réutilisables) pour la compilation du code Rust.

En début d’année, AWS, Huawei, Google, Microsoft et Mozilla se sont associées pour lancer la fondation Rust et se sont engagées à lui consacrer un budget d'un million de dollars pour deux ans. Ce budget permettra au projet de développer des services, des programmes et des événements qui aideront les responsables du projet Rust à développer le meilleur Rust possible.

Pour Ashley Williams, Directeur exécutif par intérim de la fondation, Rust est un langage qui donne du pouvoir à tout le monde, mais surtout aux gens qui pensent que la programmation système n'est pas pour eux. « L'une des forces motrices les plus puissantes du projet Rust est la croyance simultanée dans le pouvoir de la programmation système et l'engagement à faire en sorte que ce pouvoir soit utilisable par tous », a-t-il déclaré lors de son discours d’ouverture de la RustConf 2020.

Selon Shane Miller, responsable de l'équipe Rust chez AWS et également professeur d'université, la raison pour laquelle les ingénieurs choisissent Rust pour créer des services est que cela leur permet d'offrir aux clients des expériences qui répondent à leurs exigences de qualité et de sécurité beaucoup plus rapidement et à moindre coût.

Pour certains analystes, étant donné le timing de ce RFC et le fait que la fusion du noyau Linux va probablement démarrer la semaine prochaine (ou être retardée jusqu'à la semaine suivante si la version 5.12-rc8 est justifiée), il est probable que cette prise en charge du noyau ne soit pas possible pour Linux 5.13. Peut-être avec Linux 5.14 ou une autre version du noyau plus tard dans l'année.

Source : Liste de diffusion

Et vous ?

Que pensez-vous du langage Rust ?

Quelle est votre préférence entre les langages Rust et C ?

Quel est votre avis sur le sujet ?

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"

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

Google annonce la prise en charge du langage Rust pour le développement d'Android, l'intérêt est de résoudre les problèmes de sécurité de la mémoire

La nouvelle réécriture de la pile Bluetooth d'Android est faite avec le langage Rust, Google devrait annoncer plus d'informations sur le code dans les prochaines semaines

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 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 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 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 19/04/2021 à 15:17
Citation Envoyé par Maltide Voir le message
C++ a été pendant longtemps le langage de programmation bien aimé des développeurs de jeux vidéo et bien plus. Encore aujourd'hui, C++ est utilisé dans de nombreux projets par des géants comme Google.

Doit on traiter le C++ de casse gueule ?
Pire encore, de langage de merde ?
Le jeu vidéo est loin d'être un système critique. Le C++ est efficace et très utilisé, mais oui, c'est clairement un langage casse-gueule niveau sécurité.
5  1 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 23/04/2021 à 12:13
Citation Envoyé par SimonDecoline Voir le message
Pour la taille de l'exécutable, je doute que le surcout soit génant, à moins de programmer des microcontrolleurs des années 70.
Sachant que le noyau Linux est utilisé dans de l'embarqué, la taille peut avoir une importance.
4  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 29/04/2021 à 5:26
Citation Envoyé par moldavi Voir le message
Et pour en rajouter une couche, j'imagine que Linus Torvalds touche des subventions de Mozilla Rust, et pas de C++.
Magnifique accusation gratuite d'un truc absolument improbable. Mozilla n'a rien a gagner a l'utilisation de Rust dans Linux, en tout cas certainement pas au point de payer Linus qui a l'air de tout sauf d'une personne facile a acheter, sachant qu'au contraire, il s'est désengagé financièrement de Rust, dont il n'est plus du tout le plus gros sponsor.
Linus Torvalds n'a pas attendu Rust pour dire du mal de C++ et il ne dit pas non plus que Rust destiné a prendre la place du C. Il dit juste qu'il résout des problèmes intéressants au niveau sécurité que le C++ ne résout pas aussi efficacement et qu'il est d'accord pour l'expérimenter.

Citation Envoyé par SimonDecoline Voir le message
Rust a un compilateur, un débogueur, un générateur de doc, etc... ça alors mais quel exploit ! C'est vraiment le seul langage du monde à faire ça...
C'est pas le seul a faire ça, loin de là, mais le fait qu'ils soient bien intégré rend leur usage bien plus naturel. C'est particulièrement important pour cargo car l'absence de dépôt de référence complique vraiment leur adoption en C++.

Citation Envoyé par SimonDecoline Voir le message
Et du coup c'est quoi la commande cargo pour intégrer et réutiliser une lib C ou fortran ?
Pour la plupart des bibliothèques C qui n'ont pas un équivalent Rust, il y a un wrapper disponible dans crates.io (le dépôt standard de cargo), donc ont les ajoute comme n'importe qu'elle dépendance Rust, en une ligne dans le fichier de config du projet.

C'est vrai que si le wrapper n'existe pas encore, c'est plus compliqué, mais il y a des outils pour les générer automatiquement.

De nos jours, crates.io est vraiment bien fourni et il est de plus en plus rare que je ne trouve pas ce que je cherche dedans.
4  0