Linux 6.1 では、ユーザーはおそらく Rust 実装の外観を最初に確保する可能性があります。 Rust for Linux のアプリケーション エンジニア兼メンテナーである Miguel Ojeda 氏に、プロジェクトの最新の指示と図について話を聞きました:
,”mpos”: [“understitial”,”top”],”themenhub”:”はい”}” type=”gpt” unit=”/6514/www.heise.de/ix/ix-inhalt” width=”300″>
Linux の Rust-Toughen は今のところ実験的なものですが、次はどの側面を追加することをお勧めしますか?
私たちの最も重要な目標は、カーネルに最も重要な Rust ドライバーを配置する一方で、オープンで十分な抽象化をアップストリームすることです. これらの抽象化は、カーネル サブシステムをフェッチ API にラップします.
アップストリームに公開される主要なドライバー (およびそれらをサポートする抽象化) は、Asahi Linux の GPU ドライバーになる傾向があります。 Android の Binder と NVMe ドライバー. これらはすべて自明ではなく、将来の Rust カーネルの抽象化とドライバーのインスタンスをおそらく静かに設計する可能性があります.
これを行う一方で、さらに確認する必要があります関連するカーネルメンテナーが実行可能な限り重要なことに生きていること(たとえば、次のレビューとコメント
同時に、改善されたクマに相当するいくつかのインフラストラクチャの改善が作業中にあります。カーネル内のRustコード用のシステムと、カーネルの試みとドキュメントプログラムとのさらなる統合。 さらに、Arm は AArch64 アーキテクチャ向けの Rust 拡張のアップストリームを開始しました。主に、主に Linux 用の Rust で行ったプロトタイプの拡張に基づいています。 klint と同等: Rust コンパイラをライブラリとして活用して、Rust カーネル コードにさらに静的予測パス (「lint」) を導入できるようにします。 取り組んでいる多くの最も重要な lint の 1 つは、アセンブル時にプリエンプション カウントを監視することにより、Rust コードがカーネル ロックの原則に従っていることを検証します。
ツールチェーンの側面では、改善が行われています。 on、Rust コンパイラ内のカーネル CFI 強化、セキュリティにリンクされたコンパイラ フラグ、pahole での Rust の疑いなくより高度な強化、およびその他のマスに相当します。
最後に、そしておそらく最も刺激的なRust 言語をカーネル以外で使用するために、プロジェクトに由来する言語、ライブラリ、およびツールに対するいくつかの改善が提案されています。 最も具体的には、特定の種類のラッパーのフィールドへの人間工学的およびフェッチ方法でのアクセスを容易にするためのディシプリン プロジェクション RFC です。 このプロジェクトで直面している最近の課題は何ですか?
のクエリがどのユーザーを参照しているかはもはや明らかではありませんが、私たちの何人かはそれが別の方法で球形であると主張しています! たとえば、Rust が言語/ツールチェーンとして証明されていない、または未熟であると感じているため、私たちがフリートしすぎている可能性があります。 私たちにとって、カーネル内に導入するコードについては、静かに用心することもできると思います。 明示的に言えば、経験のための十分な時間が与えられれば、それは静かであり、カーネルのメンテナーはおそらくそれを受け入れることで静かになるでしょう。 もはや究極の話ではなく、まだ議論され、決定されるべき多くの厄介なプリントがあり、今こそカーネルの過程でそれをオープンにする時です.
それに対してプロジェクトには時間がかかりますが、すでにカーネル内にあることで、かなり多くの利点も得られます。 たとえば、現在、企業、かなり多くのプロジェクト、実行可能なユーザーとビルダー、およびその他の大衆です。 カーネル内での Rust の使用を見てみましょう。これにより、受け取ることができる機能が向上します。 実は、もうこの結果を見つめ始めたのです! 重要なのは、最近のカーネル パフォーマンスをラップするフェッチ抽象化を考え出すことが実際に実行可能であることを示しています (つまり、Rust で全体のロットを書き直す必要がなく、パフォーマンスなどに妥協する必要がありません)。 私の考えでは、すべてのロットを調整することは声でしたが、実際には、プロジェクトの過程で働く私たちとそれに貢献する企業の愛された負荷を占めています.
Linux の Rust-Toughen の準備が整ったらすぐに: 最近の Linux ユーザーと同じくらい賢く、カーネル開発者にはどのような利点がありますか?
滞在ユーザーと企業にとって、1 つのヒントは明らかです。それは、さまざまな脆弱性を減らすことです。 主要な企業やアプリケーション プロジェクトからの多数の報告により、脆弱性の約 70% が C/C++ コード ベースの記憶セキュリティ障害に起因することが確認されました。 この事実に基づいて、それらのほとんどを廃止する準備ができている場合、および/または脆弱性の深刻度を実際に下げる準備ができている場合、それは自信を持ってユーザーのセキュリティを強化し、適用する必要があると思われる緊急のカーネル更新の数を減らすことができます。
Rust は、カーネル ビルダーにとって、言語、ライブラリ、およびツールとしての瞬間的な改善と同じくらい多くのことをもたらします。 C とは対照的です。最新の調査の進歩と同じくらいスマートに、古い言語の完全な後知恵で設計されていることを考えると、ここではもはや恐ろしいことではありません。 私たちの考えでは、これは、カーネル内のロジック バグの合計がはるかに少なくなり、デバッグ時間が大幅に短縮され、エルゴノミクスが向上し、その他が大量になることを意味する場合があると考えられます。 そして、これらすべては、エンジニアを利用してカーネルに取り組む企業の生産性が向上することを示唆しています。 その停止に対する最も重要な証言は、すでに暫定的な Rust ドライバーのビルダーからのもののようです
カーネルのメンテナーにとって、彼らは理想的には、パッチを受け入れてコードをリファクタリングすることで、より確実になるでしょう。同様の理由でサブシステム。 たとえば、パッチが fetch Rust ドライバーを変更する場合、その方法でカーネル内に記憶セキュリティの声を導入することはもはや実行できなくなります。 Rust がソース コードに提供するセキュリティのさらなる「レイヤー」は、非常に正当なものであると私たちは考えています。最近使用されている言語とテクノロジーのカーネル開発。 理想的には、これらすべてが、Linux が今後数十年間、地球上で最も頻繁に展開されるカーネルであり続けるのに役立つかもしれません.
Miguel、インタビューをありがとう! Rust for Linux についてもっと知りたい読者は、でさらに詳しい情報を得ることができます。プロジェクトの Web セット 。 インタビューのドイツ語モデル は、ここにあります .