RustでOSを書くプロジェクトもろもろ

2020/05/06更新:
新しい記事を書きました。こちらのほうがより新しい情報が乗っていると思います。

巷でよく聞くRustでOSないしベアメタルプログラミングの試みの備忘録。
Rustにはとても興味があってかつ大学での研究分野が低レイヤー系だったので面白そう思ったのだが、
いざやろうとしてみるといろいろなハードルがあるようで、ベストプラクティスも確立していないっぽい。
ので、とりあえず適当に漁った資料をまとめてみる

C以外でのベアメタルプログラミング

oruminさんのKernel/VM勉強会での発表のSpeaker Deck。自前のbinutilsとxargoを使ってベアメタルプログラミングしている

RustでOSを書いてみる(環境構築編) - Qiita
Introduction Rust for Creating Your Operating System - Qiita

実際にOSを書いた(書いている)人の環境設定について。両方共OS自作本をベースとしているっぽい。

GitHub - redox-os/redox: Redox: A Rust Operating System

Rustによる本格的なOS。GUIが動作している。POSIX準拠とかではなく全く新しいOSをつくろうとしているらしい。
独自のツールチェーンを用意する関係、ビルドはDockerによる方法が一番安定すると思う(ビルド周りのドキュメントはいい加減だったりする)。

rumprun-packages/rust at master · rumpkernel/rumprun-packages · GitHub

Rump Kernelを使ってRustでhello worldしている。しばらくメンテナンスされていないが、一応動くっぽい

Writing an OS in Rust

RustでOSを書いたというブログ(英語)

The Case for Writing a Kernel in Rust

今年のAPSysでの論文。RustでOSを書くときの所有権周りのデザインについて論じている。この論文ではOSそのもののパフォーマンスとかの評価はない。

Multiprogramming a 64 kB Computer Safely and Efficiently

上の論文の著者がSOSPに出した論文。この論文ではRustがどうのとかよりも単純にOSとしてのデザインについて論じているっぽい(まだちゃんと読んでない)

Tock Embedded Operating System

上2つのの論文の実際のプロダクト。OSSになっている。