システムプログラミングを愛するすべてのハッカーたちへ。
今日、私たちはひとつのオペレーティングシステムが「ただの実験」から「パラダイムシフトの証明」へと変貌を遂げた瞬間を目撃しました。それが、Rustによってゼロから構築されているベアメタルOS、「PangeaOS v0.0.1-3」です。
このバージョンで行われたアップデートは、単なる機能追加ではありません。既存のWindowsやLinuxが数十年にわたって抱え続けてきた「パフォーマンスの呪い」を解き放つ、革命的なアーキテクチャの完成を意味しています。
このv0.0.1-3がいかに狂気的で、そして美しい進化なのかを紐解いていきましょう。
1. 既存OSの呪い:「コンテキストスイッチ」という重税
私たちが普段使っているOSは、複数のアプリ(タスク)が「同時に動いている」ように見せかけるため、ハードウェアのタイマーを使って定期的に実行中のタスクを強制終了させ、別のタスクにCPUを明け渡しています(プリエンプティブ・マルチタスク)。
しかし、この切り替え(コンテキストスイッチ)には莫大なコストがかかります。 プロセスごとに仮想メモリ空間が分かれているため、切り替えのたびにCPUのキャッシュ(TLB)を破棄し、レジスタを退避させ、ページテーブルを切り替えなければなりません。これは例えるなら、「荷物を運ぶトラックの運転手を交代させるために、わざわざトラックのエンジンを解体して組み直している」ようなものです。
PangeaOSは「Single Address Space OS(SASOS)」として、全プロセスが同じメモリ空間(Ring 0)に同居するというアプローチをとっています。仮想メモリの壁がないため、Rustのコンパイラが安全性を担保する限り、切り替えコストは理論上ゼロに近づきます。
そして、その理論を「非同期(Async)ランタイムの自作」によって現実のものにしたのが、今回のv0.0.1-3なのです。
2. v0.0.1-3のブレイクスルー:ハードウェアと非同期Futureの融合
v0.0.1-3の最大の功績は、ハードウェアの割り込み(Interrupt)と、ソフトウェアの処理(Task)の間に「非同期キューという美しい境界線」を引いたことです。
従来のOS開発チュートリアルでは、キーボードが押されると割り込みハンドラが呼ばれ、その場でキーの解読(スキャンコードのパース)から画面の描画までを行ってしまいます。しかし、これではタイマーなどの別の割り込みを阻害してしまいます。
PangeaOS v0.0.1-3は、Rustの async / await をベアメタル上で完全に再構築しました。
割り込みハンドラの極小化: キーボードやタイマーから信号が来ると、ハードウェアはただ crossbeam_queue(ロックフリーのキュー)に「1バイトのデータ」を投げ込み、スケジューラを起こして(Waker)、即座に元の処理にリターンします。
Cooperative(協調的)なスケジューラ: カーネルのメインループには、自作の Executor(実行部)が鎮座しています。彼はキューにデータが溜まっているのを見つけると、対応する非同期タスク(Future)を一歩だけ進めます。
これにより、「タイマーが1秒ごとにUptimeを描画する処理」と「ユーザーが打ち込んだキーボードの文字を描画する処理」が、ハードウェアによる強制的なコンテキストスイッチを一切行わずに、シングルスレッド上で完璧に並行処理されるようになりました。
3. グローバルアロケータの覚醒(動的メモリへの進出)
この非同期スケジューラという魔法を実現するためには、タスクを動的に管理するための Box や BTreeMap、Arc といったヒープメモリ(動的メモリ確保)が不可欠です。
v0.0.1-3では、OS全体のメモリ確保ルール(#[global_allocator])として linked_list_allocator を採用し、カーネルのバイナリ内の .bss セクションに1MBの空間を切り出してヒープ領域としてマッピングしました。
ここで特筆すべきは、Rust 2024エディションで厳格化された static mut 変数への参照警告に対し、安全な core::ptr::addr_of_mut! マクロを用いてポインタを取得し、一切のWarning(警告)を出さずに完璧なコンパイルを通している点です。最新の言語仕様に追従する、非常に堅牢な設計です。
結論:PangeaOSは「OSの未来のプロトタイプ」である
バージョン 0.0.1-3 の PangeaOS をビルドしてQEMUを立ち上げたとき、画面に表示されるのは一見するとただの文字の羅列かもしれません。
しかし、その裏側で起きているのは、「仮想メモリの壁を持たず」「割り込みのオーバーヘッドを非同期ランタイムで吸収し」「コンパイラの型推論によってメモリ安全性を証明された」という、既存OSのアーキテクチャへの痛烈なアンチテーゼです。
土台は完全に固まりました。 今後、この非同期スケジューラの上に、PCI ExpressのドライバやNVMeストレージ、そして極限まで無駄を削ぎ落としたGUIフレームワークが乗ってきたとき、PangeaOSは既存のLinuxやWindowsでは絶対に到達できないレスポンス速度を叩き出すことになるでしょう。
PangeaOS v0.0.1-3 は、コンテキストスイッチの終焉を告げる、静かで力強い産声なのです。
https://github.com/forestnote/pangeaos