こんにちは、なんでも屋の夫です。
今回は kominka.tech のラボとしての取り組み、Exokernel ベースの KagiroiOS について、2025年の主要進捗をまとめます。
- 2025年は何もないところから「動くプロトタイプ」から運用できるOSに向かう一年でした。
- LibOSとしてのStorage / Network / Display を常駐して稼働させるため、状態機械・回復・ステータスの観測を厚くしました。
- aarch64(HVF/TCG) を視野に入れ、virtio と DMA/キャッシュ整合を徹底的に詰めました。
1. 2025年のテーマ:足す前に、運用できる土台を固める
OS開発は、機能を増やすほど「壊れ方」も増えます。 2025年後半は、闇雲に機能追加するよりも、
✅ どこまでをカーネル空間に残すか
✅ サービスが落ちてもOSは落ちずに復旧させることができるか
✅ LibOSたちのステータスを確認・観測できるか
この3点を仕組みとして安定させる方向に努力しました。
その結果、2026年からの開発を加速させる基盤を確立できたと思います。
2. 8月 ー Exo-ABIおよびメモリ基盤の整理
8月は、ある程度カーネル側に持たせていた機能をまず薄くするフェーズでした。
✅ syscall テーブルを縮小し、不要なプロセス管理系 syscall を削除
✅ イベントや CR3 周りの設計を整理
✅ ユーザ PML4 生成→CR3切替→ELFマップという起動の型を確立
とにかく機能追加よりも前に壊れない骨格を構成していきました。
3. 9月 ー virtio 割り込みの切り分けと、観測性の追加
9月は、割り込み関係でかなりの壁にぶち当たり、デバッグの日々が続きました。
✅ virtio-blk で IRQ が発火しない問題を調査
✅ MSI/MSI-X を自動有効化しない方針へ。libOS側で割り込み方式を選べるように。
✅ IRQ trace / map trace を追加し、切り分け速度を上げる。
4. 10月 ー StorageOS 永続化と IPC の一本化
10月は、StorageOS を運用できるよう取り組みました。
✅ 永続化パスの確立(新規機能追加時の破壊的変更に陥らないためのテスト含む)
✅ IPC queue を shared-memory + doorbell に一本化
✅ StorageOSを再spawnしたとき、BootInfo 再マップ問題を解消
✅ DMA copy、swap DMA、queue の PTE といった、実運用の詰め
DMAやPTEなどは崩れると一気に動作不良に陥るので安定化が課題となりました。
5. 11月 ー OrchestratorOS の骨格化 + WASM デモ
11月は、OSを束ねる層として、新規LibOSのOrchestratorOSを立ててみました。
✅ Topology / Dependency / Gate / Recovery の骨組み
✅ Capability provide / require の整合性検証
✅ 起動準備ノードを決める SpawnPlanner と、監視する HeartbeatState
✅ DisplayOS から Orchestrator を起動オプションで接続できる形へ実装
加えて、WASM web demo を作り「外に見せる導線」も試作しました。
しかしながら、web QEMUでのKagiroiOSの実行は課題が山積しており一旦保留しています。
6. 12月 ー Network/Storage/Display/aarch64 を同時に前へ
12月は、正直かなり密度が高い月でした。
Windows PCからMacbook Airに乗り換えたため、より高速な動作検証のため、aarch64対応等、大きく分けて4つあります。
6-1. OrchestratorOS / StorageOS - 状態機械と回復の整備
✅ OrchCore を進捗フラグ駆動の状態機械へ
✅ StorageOS 側も状態機械化(待機・再開・タイムアウト方針など)
✅ lease-driven teardown と recovery の統合
6-2. NetworkOS - virtio-net と UDP socket API
✅ RX used ring の可視化、同期問題を解消
✅ UDP socket APIをv0 → v1 へ更新
✅ NetworkOS を Orchestrator 管理下の常駐サービスに近づけた
6-3. DisplayOS - GPU compositor と UI/Input の安定化
virtio-gpuでGPU対応することによって、DisplayOSの描画速度を向上させつつ、安定的に動作するよう取り組みました。
✅ virtio-gpu の安定動作 + SW フォールバック
✅ virtio-input の DMA 登録や BootInfo DMA pool の明示など、基盤も詰める
6-4. aarch64(HVF/TCG) - 実機寄りの bring-up
今年はM4 Macbook Airへ開発PCを変更したので、これが一番開発効率向上に寄与が大きかったです。
一方でRINGの共有の仕方や安定化には試行錯誤中で、現在もどうすべきか思案を続けています。
✅ aarch64 で map_caps/page_map + IRQ/event を引き上げ
✅ virtio-mmio(blk/net/input)経路の整備
✅ DMA/キャッシュ整合(UC マップの強制など)を徹底
✅ VRINGが別用途メモリと共有されたり上書きされたり、破損する経路を根本から潰す
7. 2025年開発まとめ
✅ 2025年後半は、KagiroiOSの開発を開始してから、実際に運用できるExokernelへと歩み出す期間でした。
✅ StorageOS/NetworkOS/DisplayOSをユーザー空間でLibOSとして成立させるため、状態機械・回復・観測を厚くしました。
✅ aarch64 を現実の実行環境として扱い、virtioとDMA/キャッシュ整合を重点的に詰めました。
2026年は、ここで作った土台をさらに強固のものとして、新機能を安定的にテスト・検証・改善を自動で回すための機能実装を目指しています。
特に、MCPを実装してAIエージェントがOSの内部状態を確認できるようにしながら開発を進められるようにすることを考えています。
2026年中には、ブラウザ上でKagiroiOSを体験してもらえるくらいまで開発を加速させていきたいと思います。