Windowsの根幹をなす巨大なコードベースは、数十年にわたってC言語とC++の蓄積によって築かれてきた。ハードウェアの性能を限界まで引き出す低水準の制御能力と引き換えに、開発現場はメモリ管理の不備から生じる脆弱性の修正に追われ続けてきた。OSカーネルからオフィススイートに至るまで、ポインタの不正参照やバッファオーバーフローは、発見と修正の終わりのない循環を生み出している。

Microsoftは2026年9月、カナダのモントリオールで開催された年次技術会議RustConf 2026において、社内の最上位開発言語枠である「Tier 1」にRustを追加したと公表した。これまで実験的な導入や一部のクラウド基盤サービスに留まっていた言語を、C++、C#、TypeScriptという主力言語と同等の支援対象へ引き上げる決定だ。

この発表は、一般向けの製品仕様を即座に変更したり、既存のC++コードを一掃したりする類のものではない。巨大な社内開発組織がソフトウェアを構築する際の支援体制を、開発環境の整備からセキュリティ要件の適合確認に至るまで制度化したという基盤運用の転換である。長年の課題であったメモリ安全性の確保に向け、同社はコンパイラ基盤の統合という地道な工学的解法を選択した。

AD

社内標準「Tier 1」の定義とエンジニアリング体制の刷新

RustConf 2026の基調講演に登壇したMicrosoftのRustツール部門プリンシパルエンジニア、Victor Ciura氏は、同社におけるRustの扱いが明確に引き上げられた事実を明かした。Ciura氏は講演の中で、Rustが現在MicrosoftにおけるTier 1言語となり、社内開発において最も手厚く支援される言語の列に加わったと述べた。この発表に合わせ、非営利団体Rust Foundationの公式ブログにも同氏の寄稿が2026年9月10日付で掲載された。

MicrosoftはRust Foundationの創立プラチナメンバーとして以前からRustのエコシステムに関与してきた。しかし、社内開発組織における位置づけが最上位に格上げされたことは、個別の開発チームによる自発的な採用を超えた全社的な後押しを形作っている。Ciura氏が説明した「整備された道(paved path)」とは、ローカル環境でのコード記述から製品環境への展開、さらには保守に至るソフトウェア開発ライフサイクル全体を包括する支援網を指す。

この支援体制には、検証済みコンパイラツールチェーンの安全な社内配信、開発生産性を高めるエディタやデバッガの整備、品質管理ワークフローの標準化が含まれる。加えて、Microsoftが全社的に義務付けているセキュリティ開発ライフサイクル(SDL: Security Development Lifecycle)への適合も要件となる。社内エンジニアがRustを選択した際、コンプライアンス審査やビルドパイプラインの構築で個別の例外対応を求める必要がなくなった。

ただし、この指定はMicrosoftの社内エンジニアリングにおける支援方針を定めたものであり、同社が提供する商用製品の仕様変更を外部に告知したものではない。C++やC#の非推奨化を宣告するものでもなく、既存言語との共存を前提とした開発体制の拡充である。

独自バックエンド「rustc_codegen_utc」が担うMSVCツールチェーンとの統合

社内Tier 1昇格の技術的な核となるのが、Microsoftが開発した独自のRustコンパイラバックエンド「rustc_codegen_utc」である。公式のRustコンパイラであるrustcは、共通の構文解析や意味解析、中間表現の生成を担当するフロントエンドと、各環境向けの機械語を出力するバックエンドが疎結合で設計されている。標準ではLLVM(Low Level Virtual Machine)をバックエンドとして利用するが、GCCを利用するrustc_codegen_gccや、高速コンパイルを目指すrustc_codegen_craneliftといった代替バックエンドの研究もコミュニティ内で進められてきた。

rustc_codegen_utcは、このバックエンド機構を利用してrustcをMicrosoft Visual C++(MSVC)の内部コンパイラ基盤「UTC」へ直接接続する。Windows向けのネイティブバイナリを生成するプラットフォームとして数十年の実績を持つMSVCのコード生成エンジンを、そのままRustのコンパイルに流用する設計だ。

Ciura氏は寄稿の中で、この構造がもたらす利点を強調した。rustcをそのバックエンドに接続することで、RustはWindows固有のあらゆる機能に対して並行した実装を要求することなく、最初から互換性を保ちながら同一のプラットフォーム投資の上に構築できると説明した。その結果、Windows上におけるRustとC++の統一されたコード生成プラットフォームが誕生するという。

この統合基盤の目的は、Windows特有のABI(Application Binary Interface)への完全準拠と、Windows環境に蓄積されたバイナリ保護技術の継承にある。アドレス空間配置のランダム化や制御フローの完全性を担保するセキュリティ機構、リンク後の解析やコンプライアンス検証、そしてシステム稼働中に修正を適用するホットパッチ(Hotpatch)機能への適合が含まれる。

rustcバックエンド コード生成対象 位置づけと特徴(Ciura氏の寄稿および技術報道に基づく)
rustc_codegen_llvm LLVM中間表現経由の機械語 公式標準バックエンド。広範なアーキテクチャを支援し、最適化の成熟度が高い。
rustc_codegen_utc MSVC内部コンパイラ基盤(UTC) Microsoft独自開発。WindowsのABI、ツールチェーン、Hotpatch機能と直接結合する。
rustc_codegen_gcc GCCのlibgccjit経由の機械語 GNUツールチェーンとの統合を目指す。GCCが持つ広範な組み込みCPU向け資産を活用。
rustc_codegen_cranelift Cranelift中間表現経由の機械語 高速なコード生成に特化。開発時のビルド時間短縮やJIT実行環境向けに研究が進む。

Ciura氏が明らかにした社内データによると、rustc_codegen_utcは2026年初頭の段階で社内本番環境での稼働基準を満たしており、Rust 1.90以降はセルフホスティング(当該バックエンド自身を当該バックエンドでビルドすること)を実現しているという。すでに100を超えるMicrosoftの社内リポジトリで利用されていると説明されている。

ただし、これらの成熟度に関する数値や評価は、Ciura氏の講演および同社の発表に基づく自己申告である。外部の独立した監査機関や第三者によるベンチマーク結果は公表されておらず、コード自体もオープンソースとして広く公開されている状態にはない。MSVCという独自のコンパイラ資産に依存する構造上、Windows向けビルドの利便性が向上する一方で、社外の一般開発者が即座に同一の恩恵を享受できる環境ではない点に留意が必要だ。

AD

100を超える社内リポジトリと分散基盤「Oxidizer」の先行実績

Rustの採用は、Tier 1指定によって突然始まったわけではない。英国のテックメディアThe Registerが報じたところによると、同社のコードリポジトリのうち100を超えるプロジェクトで、すでにRustが実務に投入されている。低水準なシステム領域からクラウド上の大規模分散サービスに至るまで、適用範囲は徐々に広がっていた。

その代表例が、Microsoftがオープンソースとして公開している分散サービス基盤「Oxidizer」である。2025年4月に作成され、MITライセンスの下でGitHub上で管理されているこのプロジェクトは、高いスケーラビリティと可用性が求められるRustサービスを構築するためのクレート(ライブラリ)群で構成されている。

Oxidizerのリポジトリには、モジュール化された実用的なクレート群が並ぶ。サービスの抽象化層を提供する「layered」、HTTPクライアント機能を受け持つ「fetch」、障害波及を防ぐサーキットブレーカーとしての「seatbelt」、キャッシュ制御を担う「cachet」、柔軟なリクエスト配送を実現する「routerama」、さらにはgRPC通信上でREST APIを透過的に処理する「rest_over_grpc」などが含まれる。

The Registerの報道によれば、Oxidizerのクレート群はMicrosoft 365の基幹サービスであるOutlook、Word、Excel、OneDrive、SharePointのバックエンド機能の構築や改善に利用されてきた。さらに、生成AIを活用した支援機能群「Copilot」の技術基盤においても、Rustのコードが重要な役割を担っている。

Oxidizerに含まれるlayeredクレートの設計思想は、同社の技術的志向を如実に表している。Rustコミュニティで標準的に使われてきた非同期ミドルウェア基盤「Tower」に対し、layeredはRustの言語仕様に導入されたトレイト内の非同期関数(async fn in traits)と不変参照(&self)を前提にした設計を採用した。これにより、型定義の複雑さを抑えつつ、保守性の高い非同期パイプラインを記述できる。既存のtower-serviceとの相互運用性も維持されており、Microsoftが単に外部のオープンソース資産を利用するだけでなく、言語の新しい仕様に合わせた基盤実装を社外へ還元している姿勢がうかがえる。

ファームウェア、デバイスドライバ、ハイパーバイザ、OSカーネルといった低水準なレイヤーから、クラウド上で動作する大規模マイクロサービスに至るまで、MicrosoftにおけるRustの適用範囲は多岐にわたる。この多様な適用領域こそが、MSVCツールチェーンと密接に結びついた独自バックエンドの開発を促す動機となった。

メモリ安全性の追求とレガシー資産の現実

MicrosoftがRustの社内導入を強力に推進する最大の動機は、数十年にわたり同社を悩ませてきたメモリ安全性に起因する脆弱性の排除である。

Rustは、元Mozillaの開発者であるGraydon Hoare氏が2006年に個人プロジェクトとして開発を開始したプログラミング言語だ。CやC++が持つ高い実行性能を維持しながら、所有権(Ownership)と借用(Borrowing)という厳格な型システムをコンパイラレベルで強制することで、プログラマが明示的にメモリを解放する過程で生じるバグを排除する設計思想を持つ。ガベージコレクタを持たないため、リソース消費の予測可能性が求められるシステムプログラミングの現場で支持を広げてきた。

業界全体を見渡しても、データベースからパッケージマネージャに至るまで、性能向上と安全性確保を目的に既存ソフトウェアをRustで再実装する試みは一般的な傾向となっている。時にはAI支援ツールを併用しながらコードの置き換えを進める動きも報じられている。

Microsoftの経営陣も、この安全性の欠落がもたらすコストを長年警告してきた。Microsoft AzureのCTOを務めるMark Russinovich氏は、2025年のRustConf基調講演において、Windowsに割り当てられるCVE(共通脆弱性識別子)のうち約70パーセントがメモリ管理の問題に起因していると指摘した。この数値は同氏による講演内の説明に基づくものであり、対象期間におけるWindows CVEの総件数やメモリ問題に分類された絶対件数などの内訳データは、確認できた公表資料には示されていない。その際、Russinovich氏はどれほどCやC++を改善したいと願っても、Rustが最初から備えている水準にまで引き上げることはできないと、ずっと以前に悟ったと述べている。

さらにThe Registerは、2026年9月の月例セキュリティ更新(Patch Tuesday)において過去最多となる974件のCVEに対処した事実を引き合いに出し、Rustの最大の用途は将来的に、脆弱性を抱えがちなWindowsの既存C/C++コードを補強することになるだろうと分析した。ただし、これはメディアによる分析と推測であり、MicrosoftがWindowsの全コードベースをRustで書き換える計画を確約したわけではない。

Windowsのコードベースは数億行規模に達しており、その大半は極めて緻密に動作を最適化されたC言語およびC++で構成されている。これらすべてを安全な言語で一から再構築することは、工学的にも経済的にも非現実的だ。現実のエンジニアリングにおいて求められるのは、総入れ替えではなく、既存のC++資産の中にRustモジュールを段階的に組み込んでいく共存の戦略である。

AD

境界に残る「unsafe」と長期的移行の課題

RustをTier 1言語に格上げし、コンパイラ基盤を統合したとしても、安全性に関するすべての課題が自動的かつ一朝一夕に解決するわけではない。最大の難関は、既存のC++コードと新規のRustコードが接続される「境界領域」の制御にある。

RustConf 2026の講演や議論においても繰り返し指摘されたように、RustとC++を混在させたシステム開発には「unsafe」領域の取り扱いという構造的な問題がつきまとう。Rustコンパイラの強力な借用チェッカーは、Rustの型システムの内側に閉じたメモリ操作に対しては完全な安全性を保証する。しかし、C++側から渡されたポインタや、C++が管理するメモリ領域へのアクセスに対しては、その安全性を検証する手立てを持たない。

C++のメモリ空間にあるオブジェクトをRust側から参照する場合、開発者は必然的に「unsafe」ブロックを記述しなければならない。この境界を一歩踏み越えれば、Rustの利点であるコンパイル時の安全性保証は失われ、C++と同等の危険性がコードに侵入する。巨大なレガシー資産を抱えるMicrosoftのエンジニアにとって、この言語間の相互運用に伴う危険な境界の管理は、今後数年にわたって向き合わなければならない泥臭い課題である。

また、発表されたrustc_codegen_utcの能力と、外部の開発者が利用できる環境の間には大きな隔たりが存在する。クロス言語インライン展開やホットパッチの完全準拠といった機能は、MSVCのコンパイラチームと密接に連携する社内インフラだからこそ実現できたものであり、現時点で外部の開発者が標準的なrustcのLLVMバックエンドを通じて同様の統合環境を再現できるわけではない。社外の開発者がWindows上でRustを使用する場合、依然として標準のMSVCリンカーやLLVMツールチェーンに依存したビルド構成を取る必要がある。

Microsoftが踏み出したRustの社内Tier 1化は、同社のソフトウェア開発基盤における重要な転換点であることは確かだ。しかし、数億行に及ぶレガシーコードの安全性を底上げする試みは、まだ端緒についたばかりに過ぎない。独自バックエンドの社外公開の有無、安全な言語間インターフェースの標準化、そして実際にWindowsの脆弱性発生件数を抑え込めるかどうかの検証は、今後の運用実績を通じて判断されることになる。