Linuxの開発者がプログラミング言語「Rust」のコードをLinuxカーネルに導入するための道筋をつけるための作業をすすめていることがわかりました(Phoronix)。
RustはMozillaが支援するオープンソースのシステムプログラミング言語で、速度、並行性、安全性を言語仕様として保証し、従来のC/C++言語に置き換わる言語として注目を集めています。
今年の7月、Linus Torvalds氏は、LinuxカーネルツリーにおけるRustについての考えを共有し、基本的にシステム上にRustコンパイラが存在する場合にのみ、Rustコードを有効にすることを推奨しています。
現段階のRustの導入計画はLinuxカーネル全体を書き換えるというものではなく、C言語がメインのままで、Rustはオプション的な位置づけです。メモリの安全性や同時実効性など、Rustに適正のある分野でどのように機能を活用するかという点が検討されている模様です。
カーネル内でRustをサポートする限界を把握し、Kbuild/Kconfigビルドへの統合や、RustのCargoを利用するかどうか(Rustコードを外部から取得するためにCargoを利用しない)といったガイドラインが定められつつあります。
RustのサポートはLLVMコンパイラをバックエンドとすることから限界があり、まだ決定事項はありませんが、仮想Linux Plumbers Conferenceやメーリングリスト等で議論が進められています。GitHub には Rust-For-Linux があり、プロトタイプのカーネルモジュールの実装が公開されています。また講演のPDFスライドも公開されています。