10 ポイント 投稿者 xguru 2021-04-16 | 3件のコメント | WhatsAppで共有
  • カーネルの第2言語としてRustを使うべき理由を整理

  • コアや主要なカーネルサブシステムを書き直すのではなく、ドライバおよびそれに類する「Leaf」モジュールをRustで書けるようにするため

LinuxカーネルでRustを使うと

  • 言語的特性により、メモリセーフティバグ、データ競合、論理バグのリスクが減る

  • メンテナーがRustの安全性により、モジュールのリファクタリングやパッチ適用をより自信を持って行える

  • 最新の言語機能と詳細なドキュメント化のおかげで、新しいドライバやモジュールを簡単に書ける

  • より多くの人が最新言語を使ってカーネル開発に広く参加できる

"Why Rust?"

  • Linuxカーネルの文脈では、Cと比べていくつかの主要な利点を提供

→ (言語的な利点は省略..)

"Why not?"

  • Linuxカーネルの文脈では、Cと比べてこのような欠点がある

→ コンパイラプラグイン、Sanitizerなどを含むCベースのツール群に注力してきた。これは時間が経ちRustの利用が増えれば改善される見込み

→ LLVMベースの単一実装。GCCフロントエンド、Craneliftベースの 'ructc' バックエンド、ブートストラップチェーンを減らすための 'mrustc' といった取り組みが進行中

→ まだ標準化されていない。標準化がカーネルに役立つかは定かではないが..

→ 現在のコンパイラの複雑な機能と制限により、コンパイル速度が遅い

→ 現時点ではNightlyビルドの機能が必要で、安定版は使えない。1年以内にこの制約をなくすことを目標としている

→ 'core' および 'alloc' Rust標準ライブラリの機能はすべて使われておらず、現状必要な部分より大きい

  • これらの欠点の大半は、Rustがまだ若く、あまり使われていない言語であることに起因する

  • 過去数十年にわたってCがそうであったように、Rustはシステムプログラミングの重要な一部になると信じている

3件のコメント

 
octopuset 2021-04-17

https://lkml.org/lkml/2021/4/14/1099

"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."

とともに、HOWEVER の後に続く文章を見ると、

実際に追加されるまでにはかなり時間がかかるかもしれませんね。

 
xguru 2021-04-16

このRFCについて、Linus Torvalds氏が返信しています https://lkml.org/lkml/2021/4/14/1099

"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."

全体としては嫌っていないとのことなので、うまく進んでいくのではないかと期待しています。

検索してみると、GeekNewsにはRust関連のニュースが本当にたくさん上がっていましたね。今や本当に時代の本流だと思います。

 
ffdd270 2021-04-18

徐々にCと共存しながら、いつかは置き換えられているのではないか……と考えてしまいます。むしろMozillaから独立したことのほうが、より良い選択だったような気もします。