Rustは、Linuxの第二の公式言語として大きな前進を遂げました。
Linux は日々、より多くの Rust を取り入れています。
LinuxカーネルでC以外の別の言語が使われるというアイデアが笑われていたのは、そんなに前のことではありません。状況は変わりました。今日、Rustという高級システム言語は、Linuxにますます近づいており、次の「パッチシリーズでは、RustをLinuxカーネルの第二言語としてサポートするためのものです。」
これらの新しいパッケージの最大の変更は、カーネルに提案されたRustコードがベータコンパイラではなく、安定したRustコンパイラに依存していることです。今後、Linux上のRustは新しい安定したRustコンパイラがリリースされるたびに移行されます。現在、Rust 1.57.0を使用しています。
これにより、LinuxカーネルとLinux上の主要なRustを担当する開発者ミゲル・オヘダは、「コンパイラをアップグレードすることで、私たちが使っていたいくつかの不安定な機能をリストから外すことができました」と述べています。これにより、Linux上のRustはより安定するということになります。
Ojedaは先を見据えて、「不安定な機能に依存しなくなるまで、私たちはアップグレードを続けます。その時点で、GCCやClangのように、サポートされる最小Rustバージョンを宣言し始めることを検討するかもしれません。」と書いていました。
シニアLinuxカーネル開発者のグレッグ・クローハートマンは、RustがLinuxに登場する最初の場所は「ドライバーだと思う」と私に語った。彼は「ドライバーはカーネルソースの依存関係の木の『終端の葉』だからだ。彼らはコアカーネル機能に依存しているが、彼らに依存しているものは何もない。」と言った。
これは数年前から進行中です。2020年の仮想Linuxプランバーズカンファレンスでは、主要なLinuxカーネル開発者たちがLinuxの未来について議論し、カーネルの第2言語としてRustを導入するアイデアが提案されました。
リナス・トーバルズは確信していますが、LinuxがRustで書かれることはないでしょう。しかし、それが目的ではありません。誰もカーネルの2500万行のCコードをRustに書き換えることはないでしょう。
Rust言語の責任者であるジョシュ・トリプレットと、Googleのエンジニアであるニック・デソルニエが主導して、カーネル内でシステムレベルのRust言語を使用する提案をしました。なぜなら、特にメモリエラーの処理において、Cよりもはるかに安全だからです。
マイクロソフトのプリンシパルクラウドデベロッパーアドボケイトであるライアン・レビックは、「Rustは完全にメモリ安全です。」と説明しました。セキュリティの問題の約3分の2がメモリの扱いの悪さに起因するため、これは大きな改善です。また、レビックは「Rustは通常、実行時オーバーヘッドを追加することなくこれらの問題を防ぎます。」とも述べました。
トーバルズはその利点を見ています。彼は、RustをLinuxに導入するには遅くても着実なアプローチを促している一方で、ドライバーやその他の非コアカーネルプログラムのためにRustインターフェースを使用することが理にかなっているとも述べています。「私はそれが実現することを確信しています。それがRustであるかどうかはわかりませんが、こういったものを書くための異なるモデルが登場することは確実で、Cだけが唯一の選択肢ではなくなるでしょう。」
それで、オへダがこの夏にZDNetに語ったように、「プロジェクトはまだ完成していませんが、高レベルのメンテナが現在の変更を受け入れ、私たちがカーネル内で作業することを好むなら、私たちは準備ができています。まだ私たちの前には多くの作業があります。」
それでも、作業は現在進行中です。2022年のどこかでLinuxカーネルに最初のRustコードを見ることができると期待しています。