Maison > Article > Périphériques technologiques > Remplacez le C++ ! 36 000 lignes de code Rust réécrivent le noyau Windows. Ce langage a d'abord été utilisé pour réparer les ascenseurs.
En remplaçant le C++, Rust va vraiment tout réécrire !
Après avoir été favorisé par de grands fabricants tels que Linux, Google et Amazon Cloud, la dernière nouvelle est que
Microsoft a réécrit le noyau Windows avec 36 000 lignes de code Rust.
Et les progrès sont assez rapides. Spoiler news du mois d'avril, après deux semaines, la version préliminaire interne de Windows 11 a été utilisée.
Le CTO de Microsoft Cloud Azure a crié avec enthousiasme sur Twitter :
Si vous rejoignez Windows 11 Insider Preview, vous découvrirez pour la première fois le noyau Windows pris en charge par Rust !
Le noyau réécrit comprend principalement deux projets, DWriteCore et Win32 GDI, et a réussi tous les tests de démarrage de Windows.
Parmi eux, Win32 GDI a été écrit à la fin des années 80 et au début des années 90 et est un code ancien avec plus de 30 ans d'expérience professionnelle.
La raison pour laquelle il est désormais remplacé par Rust est simple et grossière :
Le langage Rust a une sécurité de mémoire extrêmement élevée, et un grand nombre de sous-programmes dangereux dans le noyau d'origine ont également disparu après avoir été réécrits. En même temps, le langage Rust est plus concis et efficace.
Les informations publiques indiquent également qu'au fil du temps, l'adoption de Rust par le noyau Windows sera considérablement étendue.
Non seulement il est apprécié des grands fabricants, mais Rust est également le « langage de programmation le plus populaire » dans l'enquête auprès des développeurs Stack Overflow depuis de nombreuses années consécutives. Récemment, sudo et su, les outils de base des systèmes Unix, ont également été réécrits en Rust.
Mais ce qui est un peu surprenant, c'est que Rust a été inventé à l'origine pour réparer les ascenseurs ? ? ?
L'origine de tout est qu'un jour de 2006, l'ascenseur de l'appartement où vivait un homme nommé Graydon Hoare est à nouveau tombé en panne. Pour la énième fois, il a eu du mal à ramper vers son domicile au 21ème étage en jurant. Il n'arrivait pas à comprendre pourquoi le système d'ascenseur s'effondrait si facilement ? Cela ne devrait pas être le cas !
En tant que codeur dans une grande usine, frère Graydon estime que cette question n'est pas impossible à résoudre.
Il avait 29 ans à l'époque et travaillait à temps partiel chez Mozilla, la société de navigateurs Web open source
(la société derrière Firefox). En tant qu'initié de l'industrie, il sait que la plupart des pannes d'ascenseurs sont causées par le langage de programmation qui introduit facilement accidentellement des erreurs de mémoire, provoquant des pannes logicielles. A cette époque, les logiciels d'ascenseurs étaient souvent écrits en langage C ou C++.
Leurs avantages sont la compacité et la rapidité, mais le problème est qu'il est très facile de provoquer des erreurs de mémoire, des pannes du système et même des problèmes de sécurité.
Alors, au lieu de faire une chose et une autre, frère Graydon a simplement décidé de proposer un nouveau langage de programmation afin d'arrêter de monter les escaliers.
L'objectif est un langage qui ne soit pas sujet aux erreurs de mémoire, de préférence plus court et plus rapide.
C'est ainsi que le langage Rust est né.
Et le nom de Rust est également très intéressant.
La rouille porte le même nom qu'un champignon, dont le nom chinois est la rouille végétale. Graydon a commenté qu'elle est "sur-conçue pour la survie".
Cette structure biologique fongique est entièrement distribuée, sans aucun point de défaillance unique dans l'espace, ce qui signifie que le retrait d'une seule partie n'affectera pas sa survie, et elle est extrêmement robuste.
Dans tout leur cycle de vie, les champignons de la rouille ont un total de 5 formes de vie, dont 3 peuvent régresser vers la forme précédente, ce qui équivaut presque au fait qu'un papillon peut redevenir une chenille et repousser.
De plus, les champignons Rust peuvent parasiter plusieurs hôtes, ce qui reflète l'accent mis par le langage Rust sur l'interopérabilité entre les langues.
△Plants with Rust (Désolé pour ceux qui souffrent de cryptophobie !)
Après plusieurs années de développement en solo, Rust a reçu le soutien du Mozilla Research Institute en 2009, le projet a été annoncé en 2010 ;
Pendant le processus de développement, Rust a établi une communauté très active. Tout développeur peut signaler directement les bogues de ce projet ou contribuer directement au code source.
En mai 2015, la version 1.0 de Rust est officiellement sortie.
En seulement un an, Rust a attiré d'innombrables fans. Depuis 2016, il a été classé « langage de programmation le plus populaire »
par l'enquête auprès des développeurs Stack Overflow pendant 7 années consécutives.Les avantages sur lesquels il s'appuie pour rester continuellement en tête de liste sont : premièrement, une vitesse d'exécution rapide, deuxièmement, une utilisation élevée de la mémoire et troisièmement, la prévention des erreurs de segmentation. En bref, c'est un outil puissant qui peut remplacer le C/C++ dans certaines parties.
Il y a donc un dicton qui circule dans le monde du code qui compare Rust au parkour. Vous pouvez faire des mouvements à haut risque, mais il n'est pas facile de se blesser. En comparaison, le C++ peut être considéré comme jouant avec une tronçonneuse enflammée.Et grâce au développement de Rust, frère Graydon est également devenu célèbre au cours d'une bataille.
Au cours des années suivantes, il a également participé au développement de Swift.
C'est aussi une histoire intéressante. Plutôt que d'être chef d'équipe, il me semble préférer faire du développement de première ligne.
Il a dit un jour en réponse à "Pourquoi avoir quitté l'équipe Rust" que sa vie émotionnelle personnelle avait subi un coup dur (divorce) vers 2013, ce qui l'avait empêché d'avoir beaucoup d'énergie pour être responsable de l'équipe Rust. Plus tard, il a toujours. fait profil bas chez Mozilla. Ne vous précipitez pas pour lancer le projet, puis quittez votre emploi.
Jusqu'au début de 2016, il a reçu un appel de l'équipe Apple, lui disant qu'ils recherchaient des programmeurs pour l'aider à développer Swift. "C'était un poste non-dirigeant, et je le préférais."
Mais ici, l’histoire légendaire de Rust n’est racontée qu’à moitié.
Avec l'intention initiale de « haute sécurité », il est devenu de plus en plus populaire parmi les grands fabricants ces dernières années.
Non seulement Windows, mais également les systèmes grand public tels que Linux et Android ont adopté Rust. Les relations entre Amazon Cloud, Microsoft, Google et Rust ont toujours été bonnes.
La principale raison en est peut-être que le C/C++ n'est vraiment pas bon en matière de sécurité de la mémoire.
Par exemple, Microsoft s'est beaucoup intéressé à Rust il y a quelques années. Ils l'ont identifié comme un bon moyen d'éliminer les vulnérabilités de sécurité de la mémoire avant la livraison du produit.
En 2019, Microsoft a admis que 70 % des vulnérabilités révélées par CVE dans ses produits étaient dues à des vulnérabilités de sécurité mémoire causées par l'utilisation de C/C++. La chaîne d'outils Rust se concentre sur la découverte des vulnérabilités potentielles dans le code, ce qui réduit idéalement la possibilité que le code soit attaqué.D'un autre côté, Rust a également été introduit dans le noyau Linux.
L'année dernière, lors du Sommet Open Source 2022 organisé par la Linux Foundation, M. Linus a soudainement annoncé que Rust pourrait être ajouté à la prochaine version ! Cela signifie que le PR officiel de Rust pour Linux sera fusionné dans la ligne principale du noyau Linux.(Rust for Linux est une organisation appelant à la combinaison de Linux et Rust)
Vous devez savoir que seul le patch de support de Rust a été publié dans la septième version. Lorsque le public a appris la nouvelle, ils ont immédiatement applaudi, à tel point qu'il a fallu un certain temps à Linus pour calmer tout le monde. Quelques mois plus tard, la version 6.1 de Linux est sortie et le noyau ajoute la prise en charge de Rust, devenant ainsi la deuxième langue officielle après le C.Google a en fait agi plus tôt.
Quand Android 12 sortira en 2021, il annoncera la prise en charge de Rust. Depuis lors, ils ont étendu l’utilisation de Rust dans le projet open source Android. Cependant, l’approche de Google n’est pas de remplacer immédiatement le C/C++ par Rust, mais d’écrire du nouveau code en Rust. D'après les données officielles, nous pouvons voir que le C et le C++ dominent toujours et que la proportion de Rust augmente progressivement. À la fin de l'année dernière, Google a déclaré queaucune faille de sécurité n'avait été trouvée dans les parties d'Android écrites en Rust.
Ce résultat est très important car il signifie que Rust peut prévenir efficacement la vulnérabilité la plus courante d'Android, à savoir la vulnérabilité de sécurité de la mémoire. Les données de Google sur 22 ans montrent que les vulnérabilités de sécurité de la mémoire représentent une proportion très élevée de tous les types de vulnérabilités. Dans de nombreux composants écrits en C/C++ (tels que Bluetooth, NFC, etc.), il y aura une vulnérabilité toutes les mille lignes de code. Sur la base de ce ratio,Rust a probablement bloqué des centaines de vulnérabilités.
Et sur la base de ses avantages élevés en matière de concurrence, l'utilisation de Rust dans Android peut équilibrer davantage la sécurité et la latence du système. De manière générale, certaines mesures de sécurité entraîneront un ralentissement du langage de programmation. Par exemple, en utilisant la nouvelle pile UWB, vous pouvez économiser quelques mégaoctets de mémoire et éviter certains retards IPC en exécutant les processus existants. Amazon Cloud aime aussi beaucoup Rust,car il est aussi très agréable pour économiser de l'énergie.
Une étude a testé 27 langages de programmation et a révélé que C et Rust étaient 50 % plus efficaces que Java et 98 % plus efficaces que Python en termes d'utilisation d'énergie. Mais le problème du C a été mentionné à plusieurs reprises, et il existe de nombreuses vulnérabilités en matière de sécurité de la mémoire, donc sur cette base, Rust gagne à nouveau. En fait, les grands fabricants non seulement privilégient Rust, mais en raffolent même. En 2020, Mozilla, la société derrière Rust, a annoncé des licenciements à grande échelle, l'équipe de Rust a été licenciée et le sort de Rust est tombé dans une énorme incertitude.Afin d'éviter ce souci caché, de grands fabricants tels qu'Amazon, Microsoft, Google et Huawei ont lancé conjointement une fondation à but non lucratif Rust. S'engager à investir environ 1 million de dollars de budget d'ici deux ans pour soutenir la maintenance du projet Rust.
Dans l’industrie, les actes de Rust sont innombrables.
Récemment, deux utilitaires de base de type Unix, sudo et su, ont été réécrits dans Rust ; auparavant, GitHub a modifié son moteur de recherche pour qu'il soit basé sur Rust Discord, un service Go, a également été réécrit dans Rust...
Cependant, Rust Il y a aussi des inconvénients. Par exemple, il sera plus difficile d'apprendre plus tard et la vitesse de développement au début est beaucoup plus lente que Go et Java.
Rust a donc de nombreux éloges, mais son « taux de vente » est encore relativement moyen, et il peut même être qualifié de « langage impopulaire ».
Surtout en Chine, le recrutement de Rust peut être qualifié de « pitoyablement peu nombreux ».
Certains internautes ont une attitude pessimiste :
Pour cette raison, Rust s'optimise également davantage.
Selon le parcours Rust 2024 qu'elle a publié, l'équipe officielle redoublera d'efforts pour abaisser le seuil d'apprentissage et renforcer les liens écologiques.
Donc, cela vaut la peine d’attendre avec impatience comment Rust se développera à l’avenir~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!