Linuxの新しいパッチはRustのサポートを強化するものだ。Rustはカーネル開発の第2言語だ。新しいパッチでは、インフラストラクチャが更新され、カーネル機能に関する新しい抽象化が提供されると共に、より頻繁なサブミッションに対するベースを定めている。このように書くのはRust for LinuxプロジェクトリーダーのMiguel Ojeda氏だ。
この新しいパッチは、ドライバーとモジュールにRustを使用し、その優れたメモリ安全モデルを利用するための準備を整えた最初のコントリビューションから数か月後に提供されるものである。
新しいサブミッションにより、Rust for Linuxは、Rustコンパイラの最新の安定版リリースであるバージョン1.57.0の使用に移行した。ここでの目的は、最終的に不安定な言語機能に依存せず、カーネル開発に必要な最小のRustバージョンを宣言できるようにすることである。新しいインフラストラクチャには、より厳密なチェックを確実にするために、いくつかの新しい診断とクリッピーリントも含まれている。
うるさすぎたり、混乱を招く場合は、将来的にそれらの一部を無効にする必要があるかもしれません。今が試すのに最適な時期だと思います。たとえば、そのうちの1つは、到達不能なパブリックアイテムが存在しないことを確認するものです。
新しいパッチはさらに、シーケンスロック、電源管理コールバック、I/Oメモリ(readX
/writeX
)、他の低レベル機能のためのいくつかの新しい抽象化を提供する。
Ojeda氏によると、プロジェクトはまだ実験段階である。開発者はすでにカーネルサブシステムに関する新しい抽象化に取り組み始めることができる。また、ドライバーやモジュールを作成することができる。実際、パッチにはPL061 GPIOデバイス用の新しいドライバーが含まれている。
Rust for Linuxプロジェクトの開発のもう1つの最新は、GCCでのRustサポートの強化である。現在、Rustコンパイラ用のrustc_codgen_gcc
ベースのGCCバックエンドはRustアップストリームにマージされている。つまり、近い将来、rustc_codgen_gcc
がrustc_codegen_llvm
に置き換わる可能性がある。GCCを使うことの重要性は、LLVMと比較してサポートされているアーキテクチャの範囲が広いことにある。
rustc_codegen_gcc
は、RustコンパイラフロントエンドがGCCジャストインタイムコンパイルを使って、GCCアーキテクチャと最適化の両方を活用する方法を提供する。一方で、これでRust-GCCの話は終わりではない。実際、RustをGCCに導入する作業は進行中だが、利用可能になるまでには1~2年かかる。