Rust で書かれ、現在開発中の Redox OS は、開発者の Jeremy Soller 氏によると、セルフホスティングまで「あと数か月」で、Rustc コンパイラが Redox 自体で実行されることになるという。
米国デンバーに拠点を置くLinuxハードウェア企業System76の主席エンジニアでもあるソラー氏は、現在、同社のラップトップの1台でRedox OSを常時実行しており、「キーボード、タッチパッド、ストレージ、イーサネットをフルサポート」しているという。
Soller 氏によると、長年の課題は「Redox OS 上で Rust バイナリのコンパイルを可能にすること」だったという。
これは、2017 年に Google Summer of Code (Google が主催するオープンソース プロジェクト向けのプログラム) に参加することでほぼ達成されましたが、バグ修正と Rustc コンパイラーの動的リンクの複雑さにより、「セルフホスティングの夢」は遅れていました。ただし、ソラー氏は、これが今では実現に近づいていると考えています。
しかし、Redox は動作し、ソラー氏は NVMe (Non-Volatile Memory Express) ドライブで 3 秒で起動することを実証したが、同氏によれば、この時間は「十分に速くない」という。
Redoxの目的は何でしょうか? オンラインブックでその方法と理由が説明されています。「Redoxは、純粋なRustで書かれた汎用オペレーティングシステムとそのエコシステムです。私たちの目標は、安全かつ無料で、完全に機能するUnixライクなマイクロカーネルを提供することです。」
本書は、現在のUnix系OSについて独自の見解を述べています。Linuxには、レガシードライバ、肥大化したコードベース、メモリ安全性の欠如といった問題があり、GPL2ライセンスはRedoxが採用しているMITライセンスよりも制限が厳しいとされています。BSDが推奨されていますが、「たった1つのバグのあるドライバでもシステムがクラッシュする可能性がある」とのことです。
Redoxは、Rust言語が安全性を重視し、パフォーマンスの低下を回避しようと設計されているという利点を活用しています。また、Unixの「すべてがファイルである」という考え方を「すべてがURLである」という考え方へと転換するという革新的な哲学も持っています。本書では次のように説明されています。
Redox はまずデスクトップ オペレーティング システムになりますが、最終的には組み込みとサーバーの両方での使用が想定されています。
Redoxには、Rustで書かれたPOSIX準拠のCライブラリ「relibc」があります。これは、同じアーキテクチャであれば、システムコールAPIレベルとシステムコールABI(アプリケーションバイナリインターフェース)レベルの両方でLinuxと互換性があります。RedoxアプリケーションはLinuxでも実行できます。ionと呼ばれるシェルがあります。Orbitalと呼ばれるデスクトップ環境があり、アプリケーションには電卓、ファイルブラウザ、画像ビューア、ターミナルエミュレータ、3Dレンダラー、そしてSodiumと呼ばれるvi風エディタが既に含まれています。
Redox の Orbital デスクトップ (Redox サイトからの画像)
Armのテクニカルディレクターであるロビン・ランダワ氏は、2019年2月に開催されたFOSDEMで、Redox OSのArm v8.0への移植について講演しました。ランダワ氏は、Rustはマイクロカーネルの実装に非常に役立つと述べました。ランダワ氏の提案が成功すれば、RedoxはRaspberry Piのようなハードウェア上で動作するでしょう。
現実的に考えてみると、Redox の最新リリースはバージョン 0.5 で、2019 年 3 月にリリースされました。
Redoxは実験的なものであり、当面は既存のOSを置き換える予定はありません。しかし、Rustの人気が高まり続ければ、その安全性とスムーズなパフォーマンスという特性は新しいOSの構築に理想的であるように思われ、Redoxの存在感が増すかもしれません。®