のようだ カーネル内での Rust の採用において問題が生じ始めている そして、Linux に Rust を導入すれば得られる利点やあらゆる驚異について人々が話していた当時、多くの開発者が興奮し、多くの人がこのプログラミング言語に承認さえ与えました。
その後 承認を与えたライナス・トーバルズ氏 そして私は、Linus への Rust の統合を受け入れます。 カーネルバージョン6.1 (もちろん、準備とレビューという正当なプロセスが必要です) そしてその瞬間以来、さまざまな変更とコンポーネントがこの言語に統合されました。
Linux 上の Rust ではすべてが順調に見えましたが、状況は変わり始めています。 Linux開発者は若干の抵抗を示し始めている このことは、Linux 上での Rust の実装速度の低下においても認識され始めています。
同じでした リーナス·トーバルズ quien 急行 オープンソースサミット中国カンファレンスでのスピーチ中、統合プロセスを加速したいという彼らの願望 Linux 上の Rust で書かれたコンポーネントの一部。同氏は、この採用に対する主な障害の 1 つは、より多くのベテラン開発者が C 言語に慣れており、そのような別の言語を学ぶ必要性を感じていないことであると述べました。このような態度により、カーネル開発コミュニティ内で Rust の使用に対する抵抗が生じます。
トーバルズが考えたもう一つの要因は、 言及された つまり Rust インフラストラクチャはまだ完全に安定していませんが、 そのため、Linux カーネルへの統合の進行が遅れています。これらの課題にもかかわらず、カーネル開発の重要な側面であるセキュリティとメモリ管理の点での利点により、Rust への関心は高まり続けています。
また、 激しい打撃も受けた Rustの採用により、 ウェソン・アルメイダ氏が退任を発表 Rust-for-Linux プロジェクトのメンテナーとして、プロジェクトの主な作成者である Miguel Ojeda と Python Software Foundation の元ディレクターである Alex Gaynor が、Rust をカーネルに統合するこの取り組みを進める責任者として残されました。 。
アルメイダは言及した 自分の意見を表明した後、プロジェクトを去った人 技術以外の議論による燃え尽き症候群に対する不満。 同氏はカーネル開発においてRustのようなメモリセーフな言語を使用することの重要性を依然として強く信じているが、もしLinuxがこの考え方を採用しなければ、最終的にはその考え方に取って代わられる可能性があるとも警告した。
そして、Linus Torvalds が冒頭で述べたように、Linux 上で Rust を実装する際の重要なポイントの 1 つは、新しい言語を学ぶ必要性を認識していないベテラン開発者の抵抗です。
テッド・ツォ ext2/ext3/ext4 ファイル システムの主要な開発者、 Rust-for-Linux イニシアチブを公然と批判し、 不必要な複雑さを引き起こす可能性があることを示唆しています。特に、C のインターフェイスを変更すると、必然的に Rust のバインディングに影響を与えるため、Rust コードで使用するために C インターフェイスをコンテナ化すると問題が発生する可能性があると氏は指摘しました。
ジェームス・ボトムリー SCSI メンテナーは、そのリンクを強調しました。 カーネル内の錆び これからも挑戦は続きますが、 すべての開発者が Rust を学ぼうとするわけではないため、コラボレーションやコードのメンテナンスが複雑になります。
その間, Google はその経験を共有していますで書き換える さび ファームウェア部品 pvmfw で使われる Android仮想マシン、システムのセキュリティを向上させることを目的としています。 Google の戦略には、C または C++ で書かれた重要なファームウェア コンポーネントを Rust の同等のコンポーネントに徐々に置き換えることが含まれており、元の機能を維持しながら、特に信頼できない外部データを処理する領域のセキュリティを強化します。
この移行の主な目的は、Rust を使用して 新しいコード そしてそれらのために コードの基本的な部分 セキュリティ。これには、Rust のメモリ安全性の利点が最も重要となる、外部ソースからのデータと対話する機能が含まれます。
Rust とレガシー C コードの共存を容易にするために、Google は次の使用を提案しています。 翻訳レイヤー o シム。これらの層 C と Rust API 間の呼び出しを許可する 互換性があります。このアプローチを使用すると、C API を Rust コードで使用するためにエクスポートしたり、その逆を実行したりできるため、簡単に移行できます。 緩やかな システム全体を最初から書き直す必要がなく、セキュリティクリティカルなコンポーネントを Rust に移行できます。