LinuxにRustを導入するかどうかという議論は終わりを迎えた。Rustの実装は既に始まっている。Linuxの父であるLinus Torvalds氏は電子メールによる筆者との対話の中で「何かおかしなことが発生しない限り、それ(Rust)は6.1で導入される」と述べた。
提供:Linus Torvalds/TED/YouTube
Linuxカーネルの記述言語としてプログラミング言語Rustを導入するという議論は、かなり前から存在していた。Linuxカーネルの開発者らは、年次カンファレンス「Linux Plumbers Conference(LPC)2020」の場で、Linuxの新たなインラインコードでのRustの使用について検討を開始していた。また、「Android」(それ自体がLinuxのディストリビューションだ)の開発言語としてRustを支持しているGoogleは、2021年4月にLinuxカーネルへのRust導入の動きを後押しし始めていた。
GoogleのAndroidチームに所属するWedson Almeida Filho氏は当時、「カーネルを実装するための実用的な言語として、RustはC言語とともに利用される準備が整ったと考えている。特権コード内に潜む潜在的バグやセキュリティ脆弱性の数を減らす上で役立つほか、コアカーネルともうまく連携しながら、そのパフォーマンス上の特性を維持できるだろう」と説明していた。
Linuxカーネルのトップ開発者らは、そのことを納得するまでにしばらく時間を要した。LinuxでRustを機能させるためには、非標準のRust拡張機能が必要になるという懸念があったためだ。例を挙げると、新たなRust Linux NVMeドライバーでは、Rustを機能させる上で70を超える拡張機能が必要だった。しかしTorvalds氏は先週のインタビューで筆者に対して、「われわれは数十年にわたって標準Cの例外を使用してきている」と述べていた。
このことは、招待制で開催された「The Linux Kernel Maintainer Summit」でも依然として懸念として挙げられていた。しかし最終的には、C言語ファミリー用のコンパイラーのフロントエンドであるClangで十分なサポートが提供されているため、導入を進めていくと決定された。さらに、Torvalds氏は先のインタビューで、「Clangはきちんと機能しているため、Rustの導入はおそらく力になりこそすれ、カーネルに悪影響を与えることはないだろう」と述べていた。
このミーティングにおいてTorvalds氏は「Maintainer Summitでの議論はあったが、その大半はコンパイラーのバージョンに関するものだった。これはRustで登場した新たな話ではない(われわれは既に、多くの異なるコンパイラーバージョンや、gccとclangの問題などを抱えている)」と述べていた。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。