Intel に勤務し、Crates.io の開発を監督する委員会の一員である Josh Triplett 氏がオープンソース テクノロジー サミットで講演
現在設立中のワーキンググループでは、Rust開発者はインテルのエンジニアと協力して、システムプログラミングのためにRustに実装する必要がある機能を定義する仕様を準備します。 システム プログラミングでは、特権プロセッサ命令の実行やプロセッサの状態に関する詳細情報の取得など、低レベルの操作が必要になることがよくあります。 Rust 向けにすでに開発されている同様の機能のうち、名前のない構造体、共用体、アセンブリ言語の挿入 (「asm!」マクロ)、および BFLOAT16 浮動小数点数形式のサポートが注目されています。
Josh は、システム プログラミングの未来は Rust に属し、現代の現実では、過去数年間 Assembly が占めていた場所を C 言語が占めていると信じています。 さび
これは、メモリを使用した低レベルの作業によって発生する C 言語固有の問題から開発者を解放するだけでなく、最新のプログラミング パラダイムの開発に C 言語を使用する機会も提供します。
進行中
Josh は、Rust 言語の Linux カーネルにドライバーを開発する機能を追加するというアイデアを思いつきました。これにより、解放後のメモリ アクセスなどの問題がなく、最小限の労力でより安全で優れたドライバーを作成できるようになります。ポインタの逆参照とバッファ オーバーラン。
Linux カーネルの安定版ブランチの保守を担当する Greg Kroah-Hartman 氏は、Rust 言語でドライバを開発するためのフレームワークが C よりも実際に優れている場合、たとえば安全な機能が提供されるのであれば、カーネルに追加する用意があると表明しました。カーネル API を介したバインディング。 さらに、Greg は、Rust をカーネルのビルド依存関係として含めないように、このフレームワークをオプションとしてのみ考慮し、デフォルトではアクティブではありません。
いくつかのチームがすでにこの方向に取り組んでいることが判明しました。 たとえば、「Fish in a Barrel」社の開発者
平行
意図した機能のすべてがまだ実装されているわけではありませんが、フレームワークはすでに作業に非常に適しており、Raspberry Pi 9512 ボードで提供される LAN3 USB イーサネット コントローラー用の動作するドライバーを作成するために使用されました。 C言語。 Rust でドライバーを開発する際のモジュール サイズとランタイム コンポーネントからのオーバーヘッドはわずかであるため、リソースが限られたデバイスでもフレームワークを使用できることに注意してください。
出所: オープンネット.ru