Heim > Artikel > Technologie-Peripheriegeräte > Ersetzen Sie C++! 36.000 Zeilen Rust-Code schreiben den Windows-Kernel neu. Diese Sprache wurde erstmals zur Reparatur von Aufzügen verwendet
Rust ersetzt C++ und wird wirklich alles neu schreiben!
Nachdem es von großen Herstellern wie Linux, Google und Amazon Cloud bevorzugt wurde, ist die neueste Eilmeldung, dass
Microsoft den Windows-Kernel mit 36.000 Zeilen Rust-Code neu geschrieben hat.
Und der Fortschritt geht ziemlich schnell. Spoiler-News für April, nach zwei Wochen wurde die interne Vorschauversion von Windows 11 verwendet.
Microsoft Cloud Azure CTO rief aufgeregt auf Twitter:
Wenn Sie an der Windows 11 Insider Preview teilnehmen, erleben Sie zum ersten Mal den von Rust unterstützten Windows-Kernel!
Der neu geschriebene Kernel umfasst hauptsächlich zwei Projekte, DWriteCore und Win32 GDI, und hat alle Windows-Starttests bestanden.
Unter diesen wurde Win32 GDI Ende der 1980er und Anfang der 1990er Jahre geschrieben und ist ein alter Code mit mehr als 30 Jahren Berufserfahrung.
Der Grund, warum es jetzt durch Rust ersetzt wird, ist einfach und grob:
Die Rust-Sprache verfügt über eine extrem hohe Speichersicherheit und eine große Anzahl unsicherer Unterprogramme im ursprünglichen Kernel sind nach dem Umschreiben ebenfalls verschwunden. Gleichzeitig ist die Rust-Sprache prägnanter und effizienter.
Öffentliche Informationen deuten auch darauf hin, dass die Akzeptanz von Rust durch den Windows-Kernel im Laufe der Zeit erheblich ausgeweitet wird.
Rust wird nicht nur von großen Herstellern geliebt, sondern ist auch seit vielen Jahren in Folge die „beliebteste Programmiersprache“ in der Entwicklerumfrage von Stack Overflow. Kürzlich wurden auch sudo und su, die Grundwerkzeuge von Unix-Systemen, in Rust neu geschrieben.
Aber was ein wenig überraschend ist, ist, dass Rust ursprünglich erfunden wurde, um Aufzüge zu reparieren? ? ?
Der Ursprung von allem ist, dass eines Tages im Jahr 2006 der Aufzug in der Wohnung, in der ein Mann namens Graydon Hoare lebte, erneut kaputt ging. Zum x-ten Mal hatte er Mühe, fluchend zu seinem Haus im 21. Stock zu kriechen. Er konnte nicht herausfinden, warum das Aufzugssystem so leicht zusammenbrach? Das sollte nicht sein!
Als Programmierer in einer großen Fabrik ist Bruder Graydon der Meinung, dass diese Angelegenheit nicht unmöglich zu lösen ist.
Er war damals 29 Jahre alt und arbeitete Teilzeit bei Mozilla, dem Open-Source-Webbrowser-Unternehmen
(dem Unternehmen hinter Firefox). Als Brancheninsider weiß er, dass die meisten Aufzugsausfälle durch die Programmiersprache verursacht werden, die leicht versehentlich Speicherfehler verursacht und Softwareabstürze verursacht. Zu dieser Zeit wurde Aufzugssoftware oft in der Sprache C oder C++ geschrieben.
Ihre Vorteile sind Kompaktheit und Geschwindigkeit, aber das Problem ist, dass es sehr leicht zu Speicherfehlern, Systemabstürzen und sogar Sicherheitsproblemen kommen kann.
Anstatt also das eine und das andere zu tun, beschloss Bruder Graydon einfach, eine neue Programmiersprache zu entwickeln, um das Treppensteigen zu stoppen.
Das Ziel ist eine Sprache, die nicht anfällig für Gedächtnisfehler ist, am besten kürzer und schneller.
So wurde die Rust-Sprache geboren.
Und der Name Rust ist auch sehr interessant.
Rost hat den gleichen Namen wie ein Pilz, dessen chinesischer Name Pflanzenrost ist. Graydon bemerkte, dass er „überdimensioniert zum Überleben“ sei.
Diese pilzliche biologische Struktur ist vollständig verteilt und weist keinen einzigen Fehlerpunkt im Weltraum auf, was bedeutet, dass das Entfernen eines Teils allein ihr Überleben nicht beeinträchtigt und sie äußerst robust ist.
Rostpilze haben im gesamten Lebenszyklus insgesamt 5 Lebensformen, von denen sich 3 in die vorherige Form zurückbilden können, was fast der Tatsache entspricht, dass sich ein Schmetterling wieder in eine Raupe verwandeln und wieder wachsen kann.
Darüber hinaus können Rust-Pilze auf mehreren Hosts parasitär sein, was den Schwerpunkt der Rust-Sprache auf Interoperabilität zwischen Sprachen widerspiegelt.
△Plants with Rust (Sorry für diejenigen mit Kryptophobie!)
Nach mehreren Jahren der Solo-Entwicklung erhielt Rust 2009 Unterstützung vom Mozilla Research Institute; das Projekt wurde 2010 angekündigt.
Während des Entwicklungsprozesses hat Rust eine äußerst aktive Community aufgebaut. Jeder Entwickler kann Fehler direkt an dieses Projekt melden oder direkt Quellcode beisteuern.
Im Mai 2015 wurde Rust Version 1.0 offiziell veröffentlicht.
In nur einem Jahr hat Rust unzählige Fans angezogen. Seit 2016 wurde sie von der Stack Overflow-Entwicklerumfrage sieben Jahre in Folge als „beliebteste Programmiersprache“
bewertet.Die Vorteile, auf die es sich verlässt, um kontinuierlich ganz oben auf der Liste zu stehen, sind: erstens eine hohe Laufgeschwindigkeit, zweitens eine hohe Speicherauslastung und drittens die Vermeidung von Segfaults. Kurz gesagt, es ist ein leistungsstarkes Tool, das C/C++ in einigen Teilen ersetzen kann.
In der Code-Welt kursiert also ein Sprichwort, das Rust mit Parkour vergleicht. Man kann risikoreiche Bewegungen ausführen, aber es ist nicht leicht, sich selbst zu verletzen. Im Vergleich dazu kann man C++ als ein Spiel mit einer brennenden Kettensäge betrachten.Und durch die Entwicklung von Rust wurde Bruder Graydon auch in einer Schlacht berühmt.
In den nächsten Jahren beteiligte er sich auch an der Entwicklung von Swift.
Das ist auch eine interessante Geschichte. Im Vergleich zur Tätigkeit als Teamleiter bevorzuge ich offenbar die Entwicklung an vorderster Front.
Als Antwort auf „Warum das Rust-Team verlassen hat“ sagte er einmal, dass sein persönliches Gefühlsleben um das Jahr 2013 einen schweren Schlag erlitten habe (Scheidung), der dazu geführt habe, dass er nicht mehr viel Energie habe, um für das Rust-Team verantwortlich zu sein Halten Sie sich bei Mozilla bedeckt. Beeilen Sie sich nicht, das Projekt zu starten, und geben Sie dann Ihren Job auf.
Bis Anfang 2016 erhielt er einen Anruf vom Apple-Team, in dem ihm mitgeteilt wurde, dass sie nach Programmierern suchten, die bei der Entwicklung von Swift helfen würden.
Aber hier ist Rusts legendäre Geschichte nur zur Hälfte erzählt.
Mit der ursprünglichen Absicht „hohe Sicherheit“ erfreut es sich in den letzten Jahren bei großen Herstellern immer größerer Beliebtheit.
Nicht nur Windows, sondern auch Mainstream-Systeme wie Linux und Android haben Rust angenommen. Die Beziehung zwischen Amazon Cloud, Microsoft, Google und Rust war schon immer gut.
Der Hauptgrund dafür könnte sein, dass C/C++ hinsichtlich der Speichersicherheit wirklich nicht gut ist.
Microsoft war beispielsweise vor einigen Jahren sehr an Rust interessiert. Sie identifizierten es als eine gute Möglichkeit, Sicherheitslücken im Speicher vor der Produktauslieferung zu beseitigen. Im Jahr 2019 gab Microsoft zu, dass 70 % der von CVE in seinen Produkten offengelegten Schwachstellen auf Sicherheitslücken im Speicher zurückzuführen waren, die durch die Verwendung von C/C++ verursacht wurden.
Die Rust-Toolkette konzentriert sich auf das Aufdecken potenzieller Schwachstellen im Code, was im Idealfall die Möglichkeit eines Angriffs auf den Code verringert.
Andererseits wurde Rust auch in den Linux-Kernel eingeführt.Letztes Jahr kündigte Herr Linus auf dem von der Linux Foundation veranstalteten Open Source Summit 2022 plötzlich an, dass Rust möglicherweise zur nächsten Version hinzugefügt wird!
Das bedeutet, dass die offizielle PR für Rust für Linux in die Hauptlinie des Linux-Kernels integriert wird.
(Rust für Linux ist eine Organisation, die die Kombination von Linux und Rust fordert)Sie müssen wissen, dass allein der Rust-Support-Patch für die siebte Version veröffentlicht wurde.
Als das Publikum die Nachricht hörte, brachen sie sofort in Applaus aus, so sehr, dass Linus eine Weile brauchte, um alle zu beruhigen.
Ein paar Monate später wurde Linux Version 6.1 veröffentlicht und der Kernel fügte Unterstützung für Rust hinzu und wurde damit neben C zur zweiten offiziellen Sprache.
Google hat tatsächlich schon früher Maßnahmen ergriffen.Wenn Android 12 im Jahr 2021 veröffentlicht wird, wird die Unterstützung für Rust bekannt gegeben. Seitdem weiten sie den Einsatz von Rust im Android-Open-Source-Projekt aus.
Der Ansatz von Google besteht jedoch nicht darin, C/C++ sofort durch Rust zu ersetzen, sondern neuen Code in Rust zu schreiben.
Aus den offiziellen Daten können wir ersehen, dass C und C++ immer noch dominieren und der Anteil von Rust allmählich zunimmt.
Stand Ende letzten Jahres gab Google an, dass keine Sicherheitslücken in den in Rust geschriebenen Teilen von Android gefunden wurden. Dieses Ergebnis ist sehr wichtig, da es bedeutet, dass Rust die häufigste Schwachstelle in Android, nämlich die Speichersicherheitslücke, wirksam verhindern kann. Die 22-Jahres-Daten von Google zeigen, dass Sicherheitslücken im Speicher einen sehr hohen Anteil aller Arten von Schwachstellen ausmachen.
In vielen in C/C++ geschriebenen Komponenten (wie Bluetooth, NFC usw.) gibt es alle tausend Codezeilen eine Schwachstelle. Basierend auf diesem Verhältnis hat Rust wahrscheinlich Hunderte von Schwachstellen blockiert. Und aufgrund seiner hohen Parallelitätsvorteile kann die Verwendung von Rust in Android die Systemsicherheit und Latenz weiter ausgleichen. Im Allgemeinen führen einige Sicherheitsmaßnahmen dazu, dass die Programmiersprache langsamer wird.
Mit dem neuen UWB-Stack können Sie beispielsweise ein paar Megabyte Speicher einsparen und einige IPC-Verzögerungen vermeiden, indem Sie bestehende Prozesse durchlaufen.
Amazon Cloud mag Rust auch sehr,
weil es auch sehr gut beim Energiesparen ist. Eine Studie testete 27 Programmiersprachen und ergab, dass C und Rust hinsichtlich der Energienutzung 50 % effizienter als Java und 98 % effizienter als Python waren.
Aber das Problem von C wurde schon oft erwähnt und es gibt viele Sicherheitslücken im Speicher, sodass Rust auf dieser Grundlage erneut gewinnt.
Tatsächlich bevorzugen große Hersteller Rust nicht nur, sondern schwärmen sogar davon.Im Jahr 2020 kündigte Mozilla, das Unternehmen hinter Rust, groß angelegte Entlassungen an, das Rust-Team wurde entlassen und das Schicksal von Rust geriet in große Ungewissheit.
Um diese versteckte Sorge zu vermeiden, haben große Hersteller wie Amazon, Microsoft, Google und Huawei gemeinsam eine gemeinnützige Rust-Stiftung ins Leben gerufen. Verpflichten Sie sich, innerhalb von zwei Jahren etwa 1 Million US-Dollar in das Budget zu investieren, um die Wartung des Rust-Projekts zu unterstützen.
In der Branche gibt es unzählige Taten von Rust.
Kürzlich wurden zwei zentrale Unix-ähnliche Dienstprogramme in Rust neu geschrieben. GitHub hat seine Suchmaschine so geändert, dass sie auf Rust basiert, einem Go-Dienst, der ebenfalls in Rust neu geschrieben wurde. Rust Es gibt auch Nachteile. Beispielsweise ist es später schwieriger zu erlernen und die Entwicklungsgeschwindigkeit ist zu Beginn viel langsamer als bei Go und Java.
Rust hat also großes Lob, aber seine „Verkaufsrate“ ist immer noch relativ durchschnittlich und kann sogar als „unpopuläre Sprache“ bezeichnet werden.
Vor allem in China kann die Rekrutierung von Rust als „erbärmlich gering“ bezeichnet werden.
Einige Internetnutzer haben eine pessimistische Einstellung:
Aus diesem Grund optimiert sich Rust auch weiter.Laut der von ihm veröffentlichten Rust 2024-Route wird das offizielle Team seine Bemühungen verstärken, die Lernschwelle zu senken und ökologische Verbindungen zu stärken.
Es lohnt sich also, gespannt zu sein, wie sich Rust in Zukunft entwickeln wird~
Das obige ist der detaillierte Inhalt vonErsetzen Sie C++! 36.000 Zeilen Rust-Code schreiben den Windows-Kernel neu. Diese Sprache wurde erstmals zur Reparatur von Aufzügen verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!