錦です。
The Registerの記事によりますと、MicrosoftでWindowsのOSセキュリティ担当ディレクターであるDavid Weston氏が先月、イスラエルで開催されたイベントにて、カーネルにRustが導入されたことが発表されました。
Rust
ソフトウェアにおいて、多くの脆弱性の原因となるのはメモリです。具体的には、CやC++と呼ばれる、昔からOSの開発に使われてきた言語というのは、メモリの確保とともに、メモリの開放も行う必要がありました。そうしないとプログラムが終了するまで永遠にメモリを維持し続けてしまい、メモリを無駄に消費する「メモリリーク」の原因になったりします。更に、解放済みメモリの再利用も大きなメモリ脆弱性の一つです。
Rustでは、所有権とライフタイムという概念のもと、こうしたプログラムミスをコンパイラレベルで探知することができ、エラーとすることができます。
Linuxは6.1からカーネルにRustの採用を始めており、またGoogleもAndroidへ採用を始めています。メモリ安全性の観点から、Rustで記述することによって将来的に脆弱性を抑えることを目的としています。
Windows
Windowsの開発言語は、CやC++、アセンブリ言語が用いられることが知られていますが、おそらくCやC++の部分がRustに置き換わっていくことになると思われます。
実際、Dwrite Coreと呼ばれるWindows SDKでは96,000行のC++とともに152,000行のRustで構成されているそうです。また、Win32 GDIもRustに移植され始めています。
現時点では、WindowsにおけるRustの採用は限定的で、すぐにはRustへの書き換えは起きないとしていますが、徐々に置き換わっていくことになるかもしれません。今後Windowsもメモリ関連の脆弱性が減っていくことにも期待したいですね。