- Linuxカーネル内のRust統合作業が実験段階を終え、正式な構成要素として認められた
- 年次のMaintainers Summitで開発者たちは、Rustサポートを恒久的な機能として採用することで合意した
- これに伴い、カーネル内のRust関連コードから**‘experimental’タグが削除**される予定
- LWNの編集者は「実験は終わり、成功だった」と述べ、Rust for Linuxチームの成果に言及した
- これはカーネル開発言語の拡張と安全性・モダナイゼーションの方向性における重要な転換点と評価されている
カーネルRust実験の終了と正式採用
- 年次のMaintainers Summitでカーネル内のRustサポートが議論され、参加した開発者たちはRustがもはや実験的機能ではないことで合意した
- Rustは今やカーネルの中核の一部として定着した
- これに伴い、関連コードから**‘experimental’表示が削除**される予定
- LWNの編集者は投稿で「実験は終わり、成功だった」と明記した
- Rust for Linuxチームの尽力に対して祝意のメッセージを伝えた
コミュニティの反応
- 投稿タイトルが一時的に誤解を招き、一部の読者はRustの削除と勘違いする反応を見せた
- 複数のコメントで「一瞬だまされた」「感情のジェットコースターだった」といった反応が続いた
- 一部のユーザーはPhoronixの見出しスタイルに触れつつ、ユーモラスに反応した
- Phoronixのベンチマーク活動とオープンソースエコシステムの更新が有用だという評価もあわせて示された
- 別のコメントでは、MicrosoftがWindowsカーネルにもRustを導入中であることに言及した
- 一部の構成要素はすでにRustで書かれており、出荷段階に含まれているとの意見が示された
Rust導入の意味
- カーネル内のRustサポートが公式かつ継続的な機能へ移行することで、
メモリ安全性の強化とモダンな言語の導入がカーネル開発の一部として定着した
- カーネルとWindowsの両方でRustが採用され、システムプログラミング言語の世代交代の流れが可視化されている
- コミュニティは今回の決定を成功した実験の完了として受け止めており、今後のRustベースのカーネルモジュール拡張に期待する雰囲気だ
3件のコメント
そうは言っても、メンテナーが何人も離脱したのではないですか?
ハングル関連の書籍がちょうど1冊出ているのですが、残念ながらLinuxカーネルでのRustの使い方が何度も破壊的変更を経験したせいで、最近のカーネルとは完全には互換性がないようです。GitHubなどを通じて補完されると本当に良いのですが。
Hacker Newsのコメント
Rustサポートはこの2年間で本当に大きく進歩した
今ではほとんどボイラープレートなしでカーネルモジュールを書けるほどになっている
“experimental” タグが外れたのは大きな節目だと思う
今後、各ディストリビューションがRustサポートをデフォルトで有効にしたカーネルを出してくる日が本当の転換点になりそうだ
例えばNixOSとArchはRustで書かれたQRコード付きカーネルパニック画面を有効にしている
Fedoraもたぶん対応しているはずだ
CONFIG_RUST=yでコンパイルされていると認識しているカーネルがRustのユーザー空間をサポートするという話ではなく、単に一部のカーネルコードが
rustcでコンパイルされるという意味だと理解している長い抵抗の末にLinuxカーネルでRustが公式に採用されたのは感慨深い
Rust for Linuxチームに拍手を送りたい
あの件がプロジェクト最初のドミノだったのだろうか
Rust for Linuxの共同メンテナーだったAlex Gaynorが正式に退任したとのことだ
いまはMiguel Ojedaが唯一の公式メンテナーとして残っており、複数のコードレビュアーがいる
“experimental” タグが外れたということは、すべてのメンテナーにRustコードを壊さないことが義務化されるという意味なのだろうか
開発者がRustベースのドライバーに投資してよいという安心感の表れだ
ルール自体は依然として同じで、Rustビルドを壊すコードをLinusに送ることはできない
つまり、メンテナーが内部Rustコードを壊してもルール違反ではない
Rustがサポートしていないアーキテクチャはこれで見捨てられるのかが気になる
カーネルの中核部分は依然としてCで書かれている必要がある
記事タイトルが “The (successful) end of the kernel Rust experiment” に修正されたとのことだ
元のタイトルが大げさだというコミュニティのフィードバックを受けたためだ
Hacker Newsガイドラインによれば
「元のタイトルが誤解を招く場合にのみ修正せよ」とされている
失敗した実験は終わらないからだ
「これは大きな出来事なのか?」という質問に対して
LinuxカーネルドライバーがRustへ向かう流れなら、FreeBSDのようなBSD系も同じ酸化(oxidation) を経験するのか気になる
それとも抵抗や分化が起きるのか注目している
新しい試みを歓迎する立場だ
Rustはメモリ安全性と表現力のおかげで、その難しさを引き受ける価値があると思う
現在カーネルのどの部分がRustで書かれているのか気になる
Phoronixの記事を参照
カーネルのRustコードに unsafe がどれくらい含まれているのか気になる
以前はunsafeがあまりに扱いづらいという不満が多かった
ドライバー開発者はほとんどunsafeを書く必要がない
大半のコードは安全なRustで書かれている
例えば pwm_th1520.rs は
SendとSyncをサポートするための1行のunsafeしか含んでいない