3月11日、海外のテクノロジーメディア「The Register」が「Rust drivers expected to become more common in Linux kernel(RustドライバはLinuxカーネルでより一般的になる見込み)」と題した記事を公開した。
この記事では、LinuxカーネルにおいてRustドライバがより一般的になると想定される件について詳しく紹介されている。
以下に、その内容を紹介する。
記事によると、 LinuxカーネルへのRustの導入は着実に進んでおり、近い将来、その効果が目に見えて現れる可能性が高い という。C言語ベースのコードと併存することについては難しさも指摘されているが、Rustの利点が広く認識されつつある点が注目すべきところである。
Internet Security Research GroupのJosh Aas氏は、カーネルのメモリ安全性向上の取り組みとしてのRust採用を評価している。Aas氏によれば、すでに複数の企業がLinuxカーネルにRustを取り入れるためにフルタイムのエンジニアを配置しているという。
Rustをめぐっては、Microsoftのエンジニアが「非技術的な問題」によりRust for Linuxプロジェクトを去ったり、一部のメンテナがRustとCを混在させることを「がん」に喩えるなど、開発コミュニティ内での対立もあった。そうした状況下でも、Rust for Linuxプロジェクトを率いるOjeda氏は「Rustカーネルポリシー」を公開し、Rustコードの貢献者に対して継続を呼びかけるとともに、LinuxのリーダーたちがRustの導入を依然として支持していることを示した。
Aas氏が示すところによれば、すでにRustコードはPHYドライバ、nullブロックドライバ、DRMパニックスクリーンQRコード生成機能、Android Binderドライバ、Apple AGX GPUドライバ、NVMeドライバ、Nova GPUドライバなど、さまざまなLinuxサブシステムにおいて増加している。これらのうちいずれかが今後12~18か月以内にメインラインカーネルへ統合される可能性が高い としている。
Rustによるメモリ安全性は、Linuxカーネルにおいて非常に重要とされている。C/C++のように手動でメモリ管理を行う言語は、高速性や柔軟性を担保する一方でメモリ安全性の問題が生じやすい。PythonやJava、JavaScript、Swift、C#などもメモリ安全性を確保する手段を持つが、RustはC/C++並みの低レベルな制御と高パフォーマンスを狙えることから、特に注目されている。
C/C++をめぐっては、それらを使い続けたいと考えるベテラン開発者たちが依然として多く、すぐにRustに置き換わるとは考えにくい。しかし、セキュリティ優先の姿勢が広がる中で、C/C++の活躍の場が徐々に縮小していくのではないか、という見方が強まりつつある。
Aas氏も 「最も重要なソフトウェアの脆弱性の多くはC/C++のメモリ安全性の欠如に起因する。根本的な解決策は、そもそもメモリ安全性が保証された言語でコードを書くことだ」 と述べている。結局のところ、LinuxとRustの開発コミュニティはいくつもの軋轢を抱えながらも、より安全なカーネルを目指す過程で、この問題を乗り越えていく必要があるといえよう。
詳細はRust drivers expected to become more common in Linux kernelを参照していただきたい。