ホームページ  >  記事  >  テクノロジー周辺機器  >  C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

王林
王林転載
2023-05-30 21:31:041620ブラウズ

C を置き換えると、Rust は実際にすべてを書き換えます。

Linux、Google、Amazon Cloud、その他の主要メーカーの支持を得た後、最新の爆発的なニュース -

#Microsoft が 36,000 行の Rust コードで Windows カーネルを書き換えた

そして進捗は非常に速く、4 月のネタバレニュースですが、2 週間後に Windows 11 の内部プレビュー バージョンが使用されました。

Microsoft Cloud Azure CTO は Twitter で興奮気味に次のように叫びました:

Windows 11 Insider Preview の内部テストに参加すると、Rust でサポートされる Windows カーネルを初めて体験することになります。

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

書き直されたカーネルには主に DWriteCore と Win32 GDI の 2 つのプロジェクトが含まれており、すべての Windows ブート テストに合格しています。

このうち、Win32 GDI は 1980 年代後半から 1990 年代前半に書かれた古いコードで、30 年以上の作業経験があります。

Rust に置き換えられた理由は単純かつ大雑把です:

Rust 言語はメモリ セキュリティが非常に高く、元の言語には安全でないサブルーチンが多数あります。カーネルも書き換えられて消えてしまいました。同時に、Rust 言語はより簡潔で効率的です。

公開情報は、時間の経過とともに、Windows カーネルによる Rust の採用が

大幅に拡大されることを示しています。 Rust は大手メーカーに愛用されているだけでなく、Stack Overflow 開発者調査で長年連続して「最も人気のあるプログラミング言語」の座にあり続けています。最近では、Unix システムの基本ツールである sudo と su も Rust で書き直されました。

しかし、少し驚くのは、Rust が最初に発明されたとき、

は実際にはエレベーターを修理するためのものだったということです

? ? ? 怒りのあまり 21 階を登った後、新しい言語を開発することを決意

すべての起源は、2006 年のある日、グレイドン ホアという名前の男にありました

(グレイドン ホア)

私が住んでいたアパートのエレベーターがまた壊れた。 n回目、彼は悪態をつきながら21階の自宅まで這うのに苦労した。彼はなぜエレベーターシステムがあんなにも簡単に崩壊したのか理解できなかったのでしょうか?そんなはずはありません!

グレイドン兄弟は、大規模工場のプログラマーとして、この問題を解決するのは不可能ではないと感じています。

彼は当時 29 歳で、オープンソース Web ブラウザの Mozilla Company

(Firefox を開発した会社)

でパートタイムで働いていました。業界関係者として、彼はエレベーターの故障のほとんどが、メモリ エラーを誤って引き起こし、ソフトウェアのクラッシュを引き起こしやすいプログラミング言語によって引き起こされていることを知っています。 当時、エレベーターのソフトウェアはC言語やC言語で書かれることが多かったです。

利点はコンパクトさと速度ですが、問題は、メモリ エラーが非常に簡単に発生し、システム クラッシュにつながり、さらにはセキュリティの問題につながることです。

それで彼は何もせずにいたのですが、階段を上るのをやめるために、グレイドン兄弟は新しいプログラミング言語を考え出すことにしました。

目標は、メモリ エラーが発生しにくい言語、できれば短くて高速な言語です。

そこで、Rust 言語が誕生しました。

そして、Rust という名前も非常に興味深いです。

サビは菌類と同じ名前で、中国名は植物サビですが、グレイドン氏は「生き残るために過剰に設計されている」とコメントしています。

この種の真菌の生物学的構造は宇宙に完全に分散しており、単一障害点がなく、どの部分を取り除いても生存に影響を与えることがなく、非常に堅牢です。

ライフサイクル全体を通じて、さび菌には合計 5 つの生命体があり、そのうちの 3 つは前の形態に退行することができます。これは、蝶が毛虫に戻って成長できるという事実とほぼ同等です。また。

さらに、Rust 菌類は複数のホストに寄生する可能性があり、これは Rust 言語が言語間の相互運用性を重視していることを反映しています。

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。△Rust を使用したプラント (暗号恐怖症の方はごめんなさい!)

数年間の単独開発の後、Rust は 2009 年に Mozilla に買収されました。同社の研究機関によるもので、このプロジェクトは 2010 年に発表されました。

開発プロセス中、Rust は非常に活発なコミュニティを確立しており、開発者は誰でもこのプロジェクトにバグを直接報告したり、ソース コードを直接提供したりできます。

2015 年 5 月に、Rust バージョン 1.0 が正式にリリースされました。

わずか 1 年で、Rust は数え切れないほどのファンを魅了しました。 2016 年以来、7 年連続で Stack Overflow 開発者調査により、

「最も人気のあるプログラミング言語」 と評価されています。 リストのトップを維持するための利点は、1 つ目は実行速度が速いこと、2 つ目はメモリ使用率が高いこと、3 つ目はセグメンテーション違反の防止であることです。

つまり、一部のC/Cを置き換えることができる強力なツールです。

コードの世界には、Rust をパルクールにたとえる格言がありますが、リスクの高い動きをすることはできますが、自分自身を傷つけるのは簡単ではありません。

対照的に、C は燃えるチェーンソーで遊んでいるように見えます。

そして、Rust の開発のおかげで、グレイドン兄弟もまた、ある戦いで有名になりました。

翌年には、Swift の開発にも参加しました。

これも興味深い話です。私はチームリーダーよりも、開発の最前線で働くほうが好きなようです。

彼はかつて「Rust チームを去った理由」への回答で、2013 年頃に個人的な精神生活が大きな打撃 (離婚) に見舞われ、その結果 Rust チームの責任を負うエネルギーがあまりなくなったと述べました。その後、彼はまだ Mozilla の社長を務めていましたが、私は地味で立ち上げを急いでいないいくつかのプロジェクトに取り組み、その後仕事を辞めました。

2016 年の初めまで、彼は Apple チームから Swift の開発を手伝ってくれるプログラマーを探しているという電話を受けましたが、「それはリーダーシップではないポジションだったので、私はそっちのほうが好きでした。」

安全性を頼りに大手メーカーの寵児になる

しかしここでは、Rust の伝説的な物語はまだ半分しか語られていません。

本来の「高い安全性」を目的として、近年大手メーカーを中心に採用が進んでいます。

Windows だけでなく、Linux や Android などの主流システムも Rust を採用しています。 Amazon Cloud、Microsoft、Google、Rust の関係は常に良好です。

この主な理由は、C/C がメモリの安全性が実際には苦手であることかもしれません。

たとえば、Microsoft は数年前に Rust に非常に興味を持っていました 彼らは、製品をリリースする前にメモリ セキュリティの脆弱性を排除する方法として Rust を特定しました。配達、良いアイデアです。

2019 年、Microsoft は、CVE によって公開された自社製品の脆弱性の 70% が、C/C の使用によって引き起こされるメモリ セキュリティの脆弱性であったことを認めました。

Rust ツール チェーンは、コード内の潜在的な脆弱性を発見することに重点を置いており、これによりコードが攻撃される可能性が理想的には軽減されます。

その一方で、Rust は Linux カーネルにも導入されました。

昨年、Linux Foundation が主催する 2022 Open Source Summit で、Linus 氏が突然、次のバージョンに Rust が追加される可能性があると発表しました。

これは、Rust for Linux の公式 PR が Linux カーネルのメインラインにマージされることを意味します。

(Rust for Linux は Linux と Rust の組み合わせを求める組織です)

Rust サポート パッチだけが 7 番目にリリースされていることを知っておく必要があります。バージョン 。

聴衆はそのニュースを聞くとすぐに拍手が湧き起こり、ライナスが全員を落ち着かせるのにしばらく時間がかかりました。

数か月後、Linux バージョン 6.1 がリリースされ、カーネルは Rust のサポートを追加し、C に次ぐ 2 番目の公式言語になりました。

Google の行動は実際にはもっと早かったのです。

Android 12 が 2021 年にリリースされると、Rust をサポートすることが発表されます。それ以来、彼らは Android オープンソース プロジェクトで Rust の使用を拡大してきました。

ただし、Google のアプローチは、C/C をすぐに Rust に置き換えるのではなく、Rust で新しいコードを記述することです。

公式データを見ると、依然として C と C が優勢であり、Rust の割合が徐々に増加していることがわかります。

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

昨年末の時点で、Google は、Rust

で書かれた Android の部分にセキュリティ上の脆弱性は見つかっていないと述べました。 この結果は、Android で最も一般的な脆弱性、つまりメモリ安全性の脆弱性を Rust が効果的に防止できることを意味するため、非常に重要です。 Google の 22 年間のデータによると、メモリ セキュリティの脆弱性がすべての種類の脆弱性の中で非常に高い割合を占めています。

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

C/C で書かれた多くのコンポーネント (Bluetooth、NFC など) では、1000 行ごとに脆弱性が存在します。コード。この比率に基づくと、Rust はおそらく数百の脆弱性をブロックしたと考えられます。

そして、高い同時実行性の利点に基づいて、Android で Rust を使用すると、システムのセキュリティとレイテンシのバランスをさらに高めることができます。一般的に、セキュリティ対策によっては、プログラミング言語の速度が低下することがあります。

たとえば、新しい UWB スタックを使用すると、既存のプロセスを実行することで数メガバイトのメモリを節約し、IPC の遅延を回避できます。

Amazon Cloud も Rust を非常に気に入っています。

理由は、エネルギーの節約にも非常に優れているためです。

ある研究では 27 のプログラミング言語をテストし、エネルギー使用の点で C と Rust は Java より 50%、Python より 98% 効率的であることがわかりました。 しかし、Cの問題は何度も言及されており、メモリセキュリティの脆弱性も多数あるため、これを踏まえると、再びRustが勝ちます。

実際、大手メーカーは Rust を支持するだけでなく、Rust を溺愛しています。 C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

2020 年、Rust の背後にある会社 Mozilla が大規模な人員削減を発表し、Rust チームは解雇され、Rust の運命は大きな不確実性に陥りました。

この隠れた懸念を回避するために、Amazon、Microsoft、Google、Huawei などの大手メーカーが直接共同で Rust 非営利財団を立ち上げました。 Rust プロジェクトのメンテナンスをサポートするために、2 年以内に約 100 万米ドルの予算を投資することを約束します

業界では、Rust の功績は数え切れないほどあります。

最近、2 つのコア Unix ライク ユーティリティ sudo と su が Rust で書き直されています。以前、GitHub は検索エンジンを Rust ベースに変更しました。Go サービスの Discord も Rust で書き直されました...

しかし、Rust には後から学ぶのが難しく、最初は Go や Java に比べて開発速度がはるかに遅いなどの欠点もあります。

つまり、Rust は高い評価を受けていますが、その「販売率」はまだ比較的平均的であり、「不人気言語」のレッテルを貼られる可能性もあります。

特に中国では、Rust の採用は「情けないほど少ない」と言えます。

一部のネチズンは悲観的です:

C++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。

このため、Rust 自体もさらに最適化されています。

同社が発表したRust 2024ロードマップによると、公式チームは学習閾値を下げ、生態系のつながりを強化する取り組みを強化する予定だ。

ということで、Rust が今後どのように発展していくのか、まだまだ楽しみですね~

以上がC++ を置き換えてください! 36,000 行の Rust コードが Windows カーネルを書き換えます。この言語はエレベーターの修復に初めて使用されました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。