グーグル、Linuxカーネル開発における「Rust」採用の動きをサポートする考え

Liam Tung (Special to ZDNET.com) 翻訳校正: 編集部

2021-04-16 12:34

 Googleは、「Androidオープンソースプロジェクト」でシステムプログラミング言語「Rust」によるOS構成要素の開発をサポートしていることを明らかにしたが、セキュリティ脆弱性を減らす目的で、Linuxカーネル開発での採用も支持している。

 同社は4月に入り、Rustは、これまでCやC++で記述されてきた「Android」OSに、メモリー安全性の保証をもたらすと説明した。同社は、既存の何百万行ものコードをRustで記述し直すのではなく、Androidの新規コードの開発でRustを採用しようと考えている。

 そして今度は、Androidの基盤となるLinuxカーネルに目を向けている。米ZDNetが3月に報じたように、Linuxカーネルの開発者らは主に、3000万行以上の大部分がC言語で書かれているカーネル全体を書き直すのではなく、新たなコードをRustで記述することを模索中だ。

 AndroidチームのWedson Almeida Filho氏は、「カーネルを実装するための実用的な言語として、RustがC言語に加わる準備ができたと考えている。特権コードに潜む潜在的バグやセキュリティ脆弱性の数を減らす上で役立つほか、コアカーネルともうまく連携して、そのパフォーマンスの特性を維持できるだろう」と説明した。

 Filho氏は、質の高いコードやコードレビューの標準があることで、Linuxカーネルにおけるメモリー安全性のバグの密度は低いと考えている。しかし、それでもメモリー安全性のバグはたびたび発生している。Androidセキュリティチームは通常、カーネルの脆弱性は深刻度が高いとみなしているという。

 Googleは、RustがLinuxカーネル開発者にもたらすメリットを示すために、「semaphore」という実例用のドライバーを開発した。

 「当社が強調したいのは、Rustが開発者にとってどのように役立つかだ。例えばコンパイル時には、新しいバグを導入する可能性を防いだり、大幅に減らしたりできるほか、柔軟性を維持して、オーバーヘッドを最小限に抑えることができる」(同氏)

 Linuxカーネルの開発者であるMiguel Ojeda氏は米国時間4月14日に、LinuxのメーリングリストにRFCを公開し、カーネルの第2言語に関する提案と、Rustで記述されたLinuxカーネルのパッチなどについて書いている。

 Ojeda氏が立ち上げた「Rust for Linux」グループには、GoogleのAndroidチームも参加している。

 Ojeda氏は、「カーネルに新たな主要言語を取り入れるには、莫大なコストとリスクが伴うことは承知している。取り組みの労力が分散され、カーネルの一部に貢献する上で必要な知識が増える可能性がある」としている。

 「最も重要なのは、新しい言語を導入すると、後になってサポートが打ち切られた場合、その言語で書かれたモジュールを置き換えるのが非常に困難になることだ。しかし、そういった事情を考慮しても、現時点でRustを使用するメリットは、コストを上回ると考えている」(同氏)

 Linux関連のウェブサイトPhoronixによると、Linuxカーネルの生みの親であるLinus Torvalds氏は、Rustに対する懸念を表明しているが、「全体としては(そのアイデアが)嫌いではない」と述べた上で、「ランタイムエラーでパニックが発生するのは根本的に問題がある」としている。

 Filho氏は、Rustはカーネルにとって新しいものだが、プロセスやドキュメンテーションを改善する機会があるとしている。

 2015年にバージョン1.0に達したばかりのRustは、開発者の間で人気が上昇中だ。2月に発足したRust Foundationは、Amazon Web Services(AWS)、Google、Microsoft、Mozillaの支援を受けている。同財団の初代会長には、AWSのシニアエンジニアリングマネージャーShane Miller氏が選出された。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]