この30年間、Linuxの開発にはずっとC言語が使われてきたが、その状況が変わる可能性があるだろうか。
プログラミング言語の「Rust」をLinuxカーネル開発の第2言語にしようとする取り組みが一部で見られるようになっている。Googleは、開発者のMiguel Ojeda氏が中心となって進めている、Linuxカーネルのさまざまな要素の開発にRustを使用することを目指すプロジェクトを支援している。
Googleは、Rustを使えばセキュリティ上の脆弱性を引き起こすメモリーエラーを減らせるはずだと主張している(多くのIT企業やオープンソースプロジェクトがアップデートで修正しているセキュリティホールの多くは、メモリーエラーが原因になっている)。このプロジェクトの目標は、3000万行のCのコードをすべてRustで書き直すことではなく、新しいコードをRustで書くことだ。
しかし、潜在的なメリットはあるにも関わらず、Rustをカーネル開発の第2言語にしようという試みが成功するかどうかはまだ分からない。少なくとも、この「Rust for Linux」プロジェクトは長期的なプロジェクトだと見るべきであり、2021年第3四半期頃に安定版としてリリース予定とみられるバージョン5.14のメインラインには、おそらく取り込まれないだろう。
Ojeda氏は、米ZDNetの取材に対して、「このプロジェクトはまだ終わっていないが、上位のメンテナーが現在の変更内容を受け入れ、私たちにカーネルの中身について作業させてくれるなら、私たちにはメインラインの作業に参加する準備ができている」と述べている。「ほとんどの仕事はまだこれからだ」と同氏は言う。
Mozillaが支援し、開発されたRustは、「Firefox」のレンダリングエンジンである「Servo」の開発に使われた。また、今ではAmazon Web Services(AWS)、Microsoft、Google、Facebookなどの企業でシステムプログラミングによく使われるようになっており、多くの場合、膨大なCやC++のコードベースを利用した開発に使用されている。
この人気の高まりを受けて、Rustをカーネルの開発に使おうという考え方が一部の大手IT企業に支持されている。
しかし、潜在的なメリットがあるというだけで、RustがLinuxカーネル開発の第2言語になれるわけではない。それにはLinus Torvalds氏や、カーネル開発を主導している上位のメンテナーからの承認が必要となる。
そしてTorvalds氏は、Rust for Linuxプロジェクトが作成した最新のパッチをLinuxカーネルにマージすることを求めるプルリクエストを承認すべきかどうかについて、意見を表明していない。
Ojeda氏は、2021年4月にLinuxカーネルメーリングリストに対して最初のRFC(Request for Comment)を投稿した後、7月上旬に一連のパッチを新たに送った。同氏やその仲間は、パッチがLinuxカーネルに取り入れられることを望んでいる。