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 !

Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux,
Et aurait qualifié le C++ de « langage de m... », après le message de Google

Le , par Bruno

234PARTAGES

17  0 
Dans un post publié sur son blog le 14 avril, l’équipe de développement de Google a annoncé qu’elle participe à l'évaluation du langage Rust pour le développement du noyau Linux. Suite à cette déclaration, Linus Torvalds, ingénieur logiciel, créateur principal et développeur du noyau Linux, a déclaré lors d’une interview que des discussions sur le sujet seraient beaucoup plus importantes qu'un long post de Google sur le langage. Interrogé sur la suggestion d'un internaute qui a indiqué que, « la solution ici est simple : il suffit d'utiliser C++ au lieu de Rust », Linus Torvalds n'a pas pu se retenir et aurait même traité le C++ de « langage de m... ».

Rappelons que 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. Juste derrière, 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é.


L'équipe Android de Google soutient Rust pour le développement du système d'exploitation Android. L’entreprise a annoncé le 6 avril 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.

Selon Google, 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.

« Dans notre précédent article, nous avons annoncé qu'Android prend désormais en charge le langage de programmation Rust pour le développement notre système d'exploitation mobile. Dans le même ordre d'idées, nous participons également à l'effort d'évaluation de l'utilisation de Rust comme langage supporté pour le développement du noyau Linux », a déclaré Google dans un nouveau message posté le 14 avril sur son blog.

« Le C a été le langage de choix pour l'écriture des noyaux pendant près d'un demi-siècle, car il offre le niveau de contrôle et de performance requis par un composant aussi critique. La densité des bogues de sécurité mémoire dans le noyau Linux est généralement assez faible en raison de la qualité élevée du code, des normes élevées de révision du code et des mesures de protection soigneusement mises en œuvre. Toutefois, des bogues de sécurité de la mémoire se produisent encore régulièrement. Sur Android, les vulnérabilités dans le noyau sont généralement considérées comme étant de haute gravité, car elles peuvent entraîner un contournement du modèle de sécurité en raison du mode privilégié dans lequel le noyau fonctionne », a ajouté Google

Nombre de backports dans les branches stables


Google, AWS, Huawei, Microsoft et Mozilla se sont associées pour lancer la fondation Rust et se sont engagées à lui consacrer un budget de deux ans à hauteur d'un million de dollars. 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. L'annonce avait été faite par Ashley Williams, Directeur exécutif par intérim de la fondation, le 8 février sur le site Internet de l'organisation. « Aujourd'hui, au nom de l'équipe de Rust, je suis heureux d'annoncer la création de la Fondation Rust, une nouvelle organisation indépendante à but non lucratif chargée de gérer le langage de programmation et l'écosystème Rust, en mettant l'accent sur le soutien de l'ensemble des responsables qui régissent et développent le projet ».

Dans une annonce faite sur son blog également le 8 février, Google a dit être ravie d’avoir rejoint la fondation Rust et se dispose pour travailler sur des questions comme l'interopérabilité avec C++. « S'appuyant sur les investissements de longue date de Google dans le C/C++ et les compilateurs et chaînes d'outils, nous sommes ravis d'annoncer notre adhésion à la fondation Rust », a annoncé Google sur son blog. « Nous sommes impatients de participer davantage à la communauté Rust, en particulier de travailler dans l'ensemble sur des questions importantes, notamment l'interopérabilité avec C++, la coordination des examens de sécurité, la réduction des coûts des mises à jour et de continuer à accroître nos investissements dans les projets Rust existants », a ajouté l'entreprise.

Selon Google, le langage Rust est maintenant prêt à rejoindre le C comme langage pratique pour l'implémentation du noyau. Il pourra aider à réduire le nombre de bogues potentiels et de vulnérabilités de sécurité dans le code tout en préservant ses caractéristiques de performance. L’équipe de développement de Google a travaillé sur un prototype initial du pilote Binder pour permettre de faire des comparaisons significatives entre les caractéristiques de sécurité et de performance de la version C existante et de son homologue Rust. Elle a rejoint l'organisation Rust for Linux, où la communauté avait déjà fait et continue de faire un excellent travail pour ajouter le support Rust au système de construction du noyau Linux.

Google pense que la conception doit tenir compte du langage C et permettent au code des deux langages d'interagir l'un avec l'autre : « nous sommes particulièrement intéressés par les abstractions sûres, à coût nul, qui permettent au code Rust d'utiliser les fonctionnalités du noyau écrites en C, et par la manière d'implémenter des fonctionnalités en Rust idiomatique qui peuvent être appelées de manière transparente depuis les parties C du noyau ».

Comme Rust est un nouveau langage pour le noyau, il est également possible d'appliquer les meilleures pratiques en termes de documentation et d'uniformité. Par exemple, le développeur doit documenter les exigences qui doivent être satisfaites par les appelants pour garantir que son utilisation est fiable ; en outre, pour chaque appel à des fonctions non sécurisées (ou l'utilisation de constructions non sécurisées comme le déréférencement d'un pointeur brut), le développeur doit documenter la justification de la sécurité de cette utilisation.

Linus Torvalds aurait indiqué lors d’une interview que le fait de discuter sur le projet serait beaucoup plus important qu'un long post de Google sur le langage. Il aurait également déclaré en réponse à des questions lors de cette interview que la prise en charge de Rust n'était « pas encore effective », ajoutant qu’il y avait une bonne avancée à ce sujet « au point où peut-être elle pourrait être possible avec la version 5.14 ».

Interrogé sur la suggestion d'un internaute avisé, qui a déclaré lors d'une discussion sur le post Google, « La solution ici est simple : il suffit d'utiliser C++ au lieu de Rust », Torvalds n'a pas pu se retenir « Le C++ fait qu'empirer les difficultés. C'est vraiment un langage de merde ». « Pour les personnes qui n'aiment pas le C, optez pour un langage qui vous offre réellement quelque chose de valable. Par exemple, les langages avec sécurité de la mémoire, qui peuvent éviter certains des dangers du C, ou les langages qui facilitent la gestion de la mémoire. Toute personne qui dit réécrire le noyau en C++ est trop ignorante », ajoute Torvalds.

Rappelons qu'il y a quelques années, en réponse à un contributeur qui s'interrogeait sur les raisons qui ont conduit au choix du C (plutôt que du C++) pour le système de gestion de version Git, Torvalds s'en est donné à cœur joie pour avouer son désamour au C++ qu'il avait alors qualifié d’« horrible langage ». Notons que Linus Torvalds est tout aussi connu parmi les développeurs pour avoir initié le projet du système de gestion de version Git. « C++ est un langage horrible. Ce qui le rend d'autant plus horrible est le fait que beaucoup de programmeurs "non standard'' l'utilisent, au point qu'il est nettement plus facile de générer de la merde totale et absolue avec », avait-il déclaré.

Source : Google

Et vous ?

La déclaration de Linus Torvalds au sujet du langage C++, ne serait-elle pas un peu exagérée ?

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

Quels commentaires faites-vous de la possible prise en charge du langage de programmation Rust dans le noyau Linux ?

Voir aussi :

Par défaut Linus Torvalds : "C++ est un langage horrible", en justifiant le choix du langage C pour Git

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

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

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

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