LinuxでのRustドライバーサポート用のパッチのXNUMX番目のバージョンはすでに出荷されています

今年のXNUMX月にlinux-nextブランチで 当時、Linuxカーネル5.13で動作していましたが、 でデバイスドライバを開発するためのコンポーネントの初期セットが含まれていました 言語 さびと今、第XNUMX版を含めるように要求されました LinuxカーネルにRustサポートを追加するパッチの数。

Linux開発者にリクエストを送ったのは、Rust-for-Linuxプロジェクトの作者であり、基本的に「Prossimo」プロジェクトを担当するために雇われたので、数日前にも話したMiguelOjedaです。重要なソフトウェアインフラストラクチャを安全なコードに移動して、RustでLinuxカーネルメモリを保護するための取り組みを調整することに重点を置いています(プロジェクトについて詳しく知りたい場合は、 以下のリンクに投稿してください。)

Linux の Rust ドライバー
関連記事
Prossimo、RustでLinuxカーネルメモリを保護するISRGプロジェクト

Miguel Ojedaから送信されたリクエストは、XNUMX番目に更新されたバージョンです。 Rust言語でデバイスドライバーを開発するためのコンポーネントの一部であり、パッチの最初のバージョンのディスカッション中に行われたコメントが削除され、Linus Torvaldsがすでにディスカッションに参加し、一部のビット演算を処理するようにロジックを変更することを提案しました。

メリットの内部 言及されているのは Rustでは安全なメモリ管理が保証されています コンパイル時に、参照をチェックし、オブジェクトの所有権とオブジェクトの寿命を追跡し、実行時のメモリアクセスの正確さを評価します。

Rustはまた提供します 整数オーバーフロー保護、使用前に変数値の必須の初期化を必要とし、標準ライブラリのエラーをより適切に処理し、デフォルトで参照と不変変数の概念を採用し、論理エラーを最小限に抑えるための強力な静的書き込みを提供します。

目立つ変化のうち 言及されているパッチのこの新しいバージョンの:

  • メモリ割り当てコードは、メモリ不足などのエラーが発生したときにパニック状態を生成する可能性を防ぎます。
  • 含まれています ロックを処理するためにコードが作り直されたRustallocライブラリのバリアント、ただし、最終的な目標は、カーネルに必要なすべての機能をallocのメインエディションに導入することです(変更はすでに準備されており、標準のRustライブラリに転送されています)。
  • ナイトリービルドの代わりに、ベータ版と安定版を使用できるようになりました Rust対応カーネルをコンパイルするためのrustcコンパイラ。 現在、rustc 1.54-beta1がリファレンスコンパイラとして使用されていますが、月末の1.54リリース以降、リファレンスコンパイラとしてサポートされる予定です。
  • 標準のRust属性「#[test]」を使用してテストを作成するためのサポートと、ドキュメントのサンプルコードをテストとして使用するためにdoctestを使用する機能が追加されました。
  • 以前にサポートされていたx32_86およびARM64に加えて、ARM64およびRISCVアーキテクチャのサポートが追加されました。
    改善されたGCC実装Rust(RustのGCCフロントエンド)とrustc_codegen_gcc(GCCのrustcバックエンド)。これはすべてのベンチマークに合格します。
  • A 新しいレベルの抽象化 Rustプログラムが、ツリー、参照カウントオブジェクト、ファイル記述子、タスク、ファイル、I / OベクトルなどのCで記述されたカーネルメカニズムを使用する場合。
  • ドライバー開発コンポーネントは、「file_operations」モジュール、「module!」マクロ、マクロロギング、および基本的なドライバー(プローブと削除)のサポートを改善しました。
  • バインダーは、ファイル記述子とLSMリンクの受け渡しをサポートしています。
  • Rustドライバーのより機能的な例であるbcm2835-rngが、RaspberryPiボードのハードウェア乱数ジェネレーターとして提案されています。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。