Rust言語をサポートするLinuxカーネル用のパッチのXNUMX番目のバージョン

Rust-for-Linux プロジェクトの作者である Miguel Ojeda は、Linux カーネル開発者が考慮すべき Rust デバイス ドライバー開発用コンポーネントの v10 リリースを提案しました。 バージョン番号なしで公開された最初のバージョンを考慮すると、これはパッチの 6.1 版目です。 Rust サポートの組み込みは、予期せぬ問題が発生しない限り、Linux XNUMX カーネルに含めることが Linusum Torvalds によって承認されています。 この開発には、Google と、Let's Encrypt プロジェクトの創設者であり、HTTPS とインターネットのセキュリティを強化する技術の開発を推進する ISRG (Internet Security Research Group) が資金提供しています。

以前のバージョンのパッチと同様に、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

コメントを追加します