>>142
つづき

グーグルは数千万行にも及ぶ既存のC/C++のコードを書き換えるのは不可能としており、新規のコードの開発にのみRustを適用する方針だ。それでもOS開発の常識が数十年ぶりに変わるのだけは間違いない。

Rustはウェブブラウザー「Firefox(ファイアフォックス)」を開発する米モジラ財団が開発を主導するプログラミング言語だ。開発が始まったのは06年で、安定版であるバージョン1がリリースされたのが15年のことだ。まだ新しい言語をグーグルやマイクロソフトがOS開発に採用する理由は、OSのセキュリティー強化にある。

Rustは、プログラムに必要なメモリーの確保や解放に関連するバグが生じない「メモリー安全」が保証されたプログラミング言語である。それに対してこれまでのOS開発に使われてきたC/C++は「大規模な開発においてメモリー安全なコードを記述することがほぼ不可能」(マイクロソフトのブログより)なのだという。

脆弱性の70%がメモリー管理バグに起因
グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。マイクロソフトも脆弱性の70%がメモリー安全に関するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。

今日のアプリケーション開発における主流の言語であるJavaやC#もメモリー安全が保証されている。しかしJavaやC#はメモリー安全を実現するために、プログラムが稼働するランタイムがメモリーの割り当てや解放を管理するガベージコレクション(GC)を採用している。

つづく