LinuxカーネルがRustを使用しないのはなぜですか?

LinuxカーネルがRustを使用しないのはなぜですか?

LinuxカーネルはRustを使うと聞いた。私はこのプログラミング言語を知りません。ただし、Cより速く実行される可能性があるという点を除いてください。

ウェブサイトによると、Rustはコンパイル中にエラーを検出し、いくつかの制限を課すので、Cよりも安全です。ただし、コンパイルされたコードがこれらの指示に従わない場合。 Cに似ていますが、Cではなく安全でないモードでRustをコンパイルできます。

ところで、LinuxがRustを使用しているかどうかを調べると、ウェブサイトではCがRustを使用していることがわかりました。 GitHubでLinux Kernelを確認しましたが、リポジトリやプロジェクトで使用されているコードの割合を指定するリポジトリやプロジェクトに場所がありますが、Rustへの言及はないので嘘をついています。

RustとCについて私が受け取った情報によると、RustはCよりも安全で速いので、Rustははるかに優れているようです。それでは、RustはなぜLinuxカーネルを使用しないのですか?

RustとCについて間違っている場合は訂正してください。私はコーディングをしたことがありませんが、どの言語が最高であるかを比較するのが好きです。また、LinuxカーネルがRustを使用していない唯一の理由は、すべてのLinux開発者が新しい言語を学んだり解雇したりする必要があるためです。

答え1

数週間待ってください。数回の遅延の後、バージョン6.1カーネルにはRustコードを含める必要があります。。君は既に見ることができる存在するlinux-next(5.19 準備後から使用可能)

カーネルが通常Rustを使用しない理由はいくつかあります。最初は慣性です。カーネルには現在2,200万行を超える実際のCコード(コメントを除く)が含まれており、その大部分を他の言語に変更すると必ず時間がかかります。 Rustがカーネルに合っていないか、実際に変更を行うために多くのコードをRustに書き直す必要がある領域もたくさんあります。 Rustの主な強みの1つは脱出分析です。その性能。言語の境界を超えるコードでは正しく機能しません。

しばらく追求されてきたアプローチの1つは、デバイスドライバにRustを使用することです。バラよりRustを使用したカーネルの開発紹介をして、国境のさびた動物カーネルのRust状態に関する最新情報を入手してください。

また、見つけることができますPaul E. McKenneyのシリーズ「Linuxカーネルを破損させますか?」興味深い。

関連情報