さび、Linux開発者が同意しているようです

プログラミング言語 Rustは常にLinuxカーネル開発でCを置き換えることを目指してきました そして、Rustが成熟するにつれて、LinuxカーネルでのRustの使用に関心が高まっている開発者が何人かいます。

の仮想会議で Linux Plumbers 2020、マイクロ会議フロー LLVMによる 未解決の質問に関するセッションを開催しました と障壁 LinuxカーネルでのRustのアップストリーム受け入れ用。

このセッションは2020年のイベントで最も忙しかったため、このトピックへの関心は明らかです。

では、Linuxカーネル全体をRust言語で書き直す必要がありますか? この議論は今日から始まったものではなく、2015年にRustの最初の安定したバージョンが登場して以来強調されてきました。

それが提供する可能性を考慮して さび、それをすることを提案する人もいます。 今年、XNUMX月に開催されたLinuxPlumbersカンファレンスで スピーカーは再びそれについて議論する時間がありました。

そして驚くべきことはそれです 彼らは同意しているようです 全会一致で Rustの既存のコードを書き直すのではなく、カーネル開発でRustを引き続き使用します。 つまり、Rustで新しいコードを記述できる世界を想定しています。

このセッションは、昨年のLinuxセキュリティサミットでのAlexGaynorとGeoffreyThomasによる講演を含む、多くの開発者の以前の作業に基づいて構築されました。

会議では、彼らはRustカーネルモジュールのプロトタイピングに関する作業を発表し、カーネルでのRustの採用を提唱しました。

彼らは、AndroidとUbuntuでCVEに割り当てられたカーネルの脆弱性の約XNUMX分のXNUMXがメモリセキュリティの問題に関連していることを示す研究を引用しました。

彼らはそれを説明することになった より安全なAPIのおかげで、Rustはこの種のエラーを完全に回避できます システムタイプとローンベリファイアによって有効になります。

この研究は、すでにいくつかのメンテナを説得することに成功しました カーネルへのRustの導入をサポートしたLinusTorvalds。 トーマスとゲイナー、ジョシュトリプレット、Rust言語チームの共同議長、長年のLinuxカーネル開発者、およびその他の関心のある開発者がこのトピックに関するディスカッションに参加しました。

彼らはこれまでの彼の仕事と彼の最初の考えや質問のいくつかに簡単に触れてから、ほとんどの時間を議論のために開きました。

これらは、カーネルでの既存のAPIの使用、アーキテクチャのサポート、およびRustとCの間のABIの互換性に関する質問です。

実際、彼らは当初、 Rustをツリー構造に導入するには、既存のCAPIを尊重する必要があります。 

しかし、誰もが細部に悪魔がいると感じており、これまでに行われた作業とセッション中の会話の両方で、いくつかの未解決の課題が明らかになりました。

たとえば、Linuxはプリプロセッサマクロとインライン関数を多用しますが、これらはbindgenツールとRustの外部関数インターフェイスでは簡単にはサポートされません。

彼らによると、 現在、Rustの唯一の成熟した実装はコンパイラです lustc、LLVMを介してコードを発行します。

Linuxカーネルはさまざまなアーキテクチャをサポートしており、その多くにはLLVMバックエンドがありません。

Triplettは、Debianプロジェクトでの経験を引用して、Rustをカーネルに追加することで、Rustのアーキテクチャサポートを強化できると提案しました。 彼は、DebianにRustソフトウェアを導入することで、ニッチアーキテクチャの愛好家やユーザーがRustサポートを改善するように動機付けられ、カーネルサポートを追加して同様の効果をもたらすことを望んでいると述べました。

特に、LLVMバックエンドを備えたアーキテクチャはすべてRustとすぐに互換性があると彼は確信していました。 議論はまた、より広範なアーキテクチャサポートへの道としての代替のRust実装に焦点を合わせました。

セッションはそれ以上の具体的なマイルストーンなしで終了しましたが、Rust Modsをサポートすることへの全体的な熱意と、このサポートの一般的な要件に関する合意の高まりがあるようです。


コメントを残す

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

*

*

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

  1.   オートパイロット

    新しい時代の始まりのようで、動かせないCが登場します。

    こんにちはRust、Bye Linus Torvalds!