Rust-for-プロジェクトの著者、ミゲル・オヘダLinuxカーネル開発者による検討のために提案された Linux Rustデバイスドライバ開発コンポーネントのバージョン10がリリースされました。これは、バージョン番号なしで公開された最初のバージョンを含めると、11番目のパッチリリースとなります。Rustサポートの組み込みは、Linus Torvalds氏によってカーネルへの組み込みが承認されています。 Linux 6.1 ただし、予期せぬ問題が発生しない限り。この開発は、GoogleとISRG(インターネットセキュリティ研究グループ)によって資金提供されており、ISRGはHTTPSを推進し、インターネットセキュリティを向上させる技術の開発を行うLet's Encryptプロジェクトの創設者です。
前回のパッチと同様に、v10 リリースは、Rust で記述されたシンプルなカーネル モジュールを構築するのに十分な最小限のものまで削ぎ落とされています。前回のバージョンとの違いは、kallsyms.c で sizeof を ARRAY_SIZE に置き換え、v6.0-rc7 カーネルにパッチを適用したマイナーな編集です。コードのサイズが 40 行から 13 行に削減された最小限のパッチにより、メイン カーネルへの Rust サポートの採用が簡素化されることが期待されます。最小限のサポートが確保された後、既存の機能を段階的に拡張し、Rust-for- ブランチから他の変更を移行する予定です。Linux.
提案されている変更により、Rust をドライバーとカーネル モジュールの開発用の第 XNUMX 言語として使用できるようになります。 Rust サポートは、デフォルトでは有効になっていないオプションとして提供されており、カーネルに必要なビルド依存関係に Rust が含まれることはありません。 Rust を使用してドライバを開発すると、解放後のメモリ領域へのアクセス、null ポインタの逆参照、バッファ オーバーランなどの問題がなく、最小限の労力でより安全で優れたドライバを作成できます。
Rustのメモリ安全性は、参照チェック、オブジェクトの所有権とオブジェクトの有効期間(スコープ)の追跡、およびコード実行中のメモリアクセスの正確性の評価を通じて、コンパイル時に提供されます。 Rust は整数オーバーフローに対する保護も提供し、使用前に変数値の初期化を必須にし、標準ライブラリでエラーをより適切に処理し、デフォルトで不変参照と変数の概念を適用し、論理エラーを最小限に抑えるための強力な静的型付けを提供します。
出所: オープンネット.ru
