Microsoft、Windowsのコア部分を「Rust」で書き換えていることを明らかに

masapoco
投稿日
2023年4月29日 14:54
rust logo

Microsoftは、Rustプログラミング言語でWindowsのコアライブラリを書き換え、よりメモリセーフなコードが既に開発者に提供されている。

WindowsのOSセキュリティの責任者であるDavid Weston氏は、先月のBlueHat IL 2023でWindowsのカーネルにRustが導入されたことを発表した

発表の中でWeston氏は、MicrosoftがWindowsカーネルにRustを採用したことについての進捗を説明した。Microsoftがこの言語に興味を持った理由はいくつかあるが、そのうちの1つがRustが提供するメモリの安全性とセキュリティだ。Weston氏は、Windows 11がカーネルにRustを組み込んで起動するようになるのはもうすぐで、本当にすぐかもしれない、と付け加えた。実際、今から数週間以内に実現する可能性がある。

彼は、「今後数週間から数ヶ月のうちに、カーネルにRustを組み込んだWindowsが実際に起動するようになるでしょうね。基本的な目標は、C++の内部データ型のいくつかをRustの同等型に変換することです」と述べた。

Microsoftは、ユーザーの手に渡る前にメモリセーフティバグを見つけて修正するための手段として、数年前からRustに関心を示していた。これらの種類のバグは、2006年以降にWindows製品で修正されたCVE一覧にリストされたセキュリティ脆弱性の約70%の原因だった。

Rustツールチェーンは、攻撃者がソフトウェアの弱点を攻撃する機会を減らすために、攻撃可能なコードがビルドおよび出荷されることを防ぐことを目指している。簡単に言えば、Rustはメモリセーフティと同様の保護に焦点を当てており、結果的に生成されるコード中のバッドバグの数を減らすことが出来る。

Googleなどのライバル企業も、Rustに対する支持を公言し、実際に導入を始めている

メモリセーフプログラミングへの業界の関心が高まる中、MicrosoftのRustへの取り組みはますます熱心になっている。Microsoft Azure CTOであるMark Russinovich氏は、新しいソフトウェアプロジェクトがC/C++の代わりにRustを使用するように宣言した。

WindowsのRustリファクタリングは、2020年にWindowsのDWriteエンジンを含むWindows App SDKの実装であるDWriteCoreから始まった。DWriteCoreは現在、約152,000行のRustコードと約96,000行のC++コードで構成されている。

そのため、メモリセーフ性の向上に加え、シェーピング(置換)およびOpenType Library Services(OTLS)を使用したグリフのパフォーマンスが5〜15%高速化された。これらの改善はすべて、開発者にすでに提供されている。

Microsoft Windowsグラフィックデバイスインターフェイス(Win32 GDI)もRustに移植され、現在36,000行のRustコードが含まれるとのことだ。

「実際には、Windowsカーネルには今、Rustで実装されたSysCallがあります」とWeston氏は述べている。

しかし、MicrosoftのRustに対する支持にも限界があります。「RustでWindowsを書き換えることは、おそらく近い将来起こることはないでしょう。だから、Rustを愛しているとしても、私たちのネイティブコードをより多く保護することを含む戦略が必要です」とWeston氏は述べている。

しかし、Microsoftからの限定的なサポートでも、コードの貢献によりRustがより能力を発揮し、全体的なオープンソースコミュニティにとってメリットがあると言えます。

オープンソースソフトウェア開発者であり、PythonのFlaskの責任者であり、現在はSentryのセキュリティエンジニアであるArmin Ronacher氏は、The Registerに電子メールで次のように語っている。「特に、Microsoftが既存のコンパイラを再利用することを期待しているので、その結果、より良いPDB [Program Database]サポートになることを願っています。Windowsでは、デベロッパーツールサポートがDWARFベースのプラットフォームと比較して遅れているためです」

PythonとRustを使用する開発者であり、Pydanticの創設者であるSamuel Colvin氏は、The Registerに次のように語っている。「Microsoftがこのように先進的な考えを持っているのに感銘を受けていますが、あまり驚きません。エンジニアたちからRustの採用を求められていると思います。今日アプリケーションを構築する場合、パフォーマンスが重要であるか、低レベルである場合、Rustは当然の選択肢です」。

Colvin氏は、優れたRustエンジニアが普及しているわけではないかもしれないが、優れたC/C++エンジニアよりもRustエンジニアを見つけるのが簡単だと信じているという。

「Rustの経験が豊富な人々は少ないかもしれませんが、学ぼうとするエンジニアは多くいます。安全なコードを書くことがどれだけ困難であるか、Rustで実現することは数倍簡単です。私たちRustを頼りにしている人々にとって、MicrosoftがRustを使用し、そしてそのサポートを期待できることは本当にエキサイティングです」と、Colvin氏は述べている。


Source



この記事が面白かったら是非シェアをお願いします!


  • call center 2
    次の記事

    生成AIが実世界において、労働者の生産性を14%向上させることが世界で初めて示された

    2023年4月29日 16:15
  • 前の記事

    孤独の大切さ – なぜ一人でいる時間が、時にあなたのためになるのか?

    2023年4月29日 14:21
    alone
この記事を書いた人
masapoco

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

おすすめ記事

  • Babylon 7

    Microsoft、Webゲーム用のグローバルイルミネーションサポートを追加したBabylon.js 7.0を公開

  • a04c35e8e555c1cc7ae1d6a5f3159856

    MicrosoftとOpenAI、1000億ドル以上をかけて超人的AI開発のためのスーパーコンピューター「Stargate」を開発する計画

  • microsoft edge chromium

    Microsoft EdgeブラウザでRAMの消費量を制御出来る機能がテスト中

  • cyberpunk 2077 night city wire june 2020 nvidia geforce rtx exclusive screenshot 001

    Microsoft、SSDを活用し少ないVRAMでもレイトレーシング性能を向上出来る手法の特許を公開

  • snapdragon x elite hero

    Qualcomm、「Snapdragon X Eliteを搭載したノートPCでほとんどのゲームが実行可能になる」と発表

今読まれている記事