5.1 KiB
5.1 KiB
AIOS アーキテクチャ
概要
AIOSは、Rustで実装されたマイクロカーネルアーキテクチャを採用しています。最終的にClaude Codeを実行可能にするため、モジュラー設計を重視しています。
システム構成
┌─────────────────────────────────────────┐
│ ユーザーランド │
│ ┌─────────────┐ ┌─────────────────────┐│
│ │ Claude Code │ │ システムツール ││
│ │ │ │ (ls, cat, etc.) ││
│ └─────────────┘ └─────────────────────┘│
├─────────────────────────────────────────┤
│ システムコール │
├─────────────────────────────────────────┤
│ カーネル空間 │
│ ┌─────────┐ ┌─────────┐ ┌─────────────┐│
│ │ プロセス │ │ メモリ │ │ ファイル ││
│ │ 管理 │ │ 管理 │ │ システム ││
│ └─────────┘ └─────────┘ └─────────────┘│
│ ┌─────────────────────────────────────┐│
│ │ ハードウェア抽象化 ││
│ │ VGA・シリアル・キーボード・etc ││
│ └─────────────────────────────────────┘│
├─────────────────────────────────────────┤
│ ハードウェア │
│ CPU・メモリ・ストレージ │
└─────────────────────────────────────────┘
主要コンポーネント
1. カーネルコア (src/main.rs
)
- システムの起動とメインループ
- パニックハンドラー
- テストフレームワーク統合
2. VGAドライバー (src/vga_buffer.rs
)
- テキストモード画面制御
- 色指定とフォーマット
- スクロール機能
3. シリアル通信 (src/serial.rs
)
- UART 16550制御
- デバッグ出力
- QEMU連携
4. メモリ管理 (予定)
- 仮想メモリ管理
- ヒープアロケーター
- ページテーブル管理
5. ファイルシステム (予定)
- VFS (Virtual File System)
- 基本的なファイル操作
- ディレクトリ構造
6. プロセス管理 (予定)
- タスクスケジューリング
- プロセス作成・終了
- IPC (Inter-Process Communication)
メモリレイアウト
仮想アドレス空間:
0x0000_0000_0000_0000 - ユーザー空間開始
0x0000_7fff_ffff_ffff - ユーザー空間終了
0x8000_0000_0000_0000 - カーネル空間開始
0xffff_ffff_ffff_ffff - カーネル空間終了
物理メモリ:
0x0000_0000 - 0x0009_ffff : 実モード互換領域
0x0010_0000 - 0x7fff_ffff : 利用可能RAM
0x8000_0000 - 0xffff_ffff : デバイスメモリ
ブートプロセス
- BIOS/UEFI → ブートローダー読み込み
- ブートローダー → カーネルロード
- カーネル初期化 → ハードウェア検出
- ドライバー初期化 → VGA・シリアル・etc
- メモリ管理開始 → ヒープ・ページング
- ファイルシステム → ルートマウント
- プロセス管理 → initプロセス開始
- ユーザーランド → Claude Code実行
設計原則
1. 安全性
- Rustの所有権システム活用
- バッファオーバーフローの防止
- 型安全性の保証
2. パフォーマンス
- ゼロコスト抽象化
- コンパイル時最適化
- 最小限のランタイムオーバーヘッド
3. 拡張性
- モジュラー設計
- プラグアーキテクチャ
- 標準インターフェース
4. 移植性
- ハードウェア抽象化レイヤー
- 設定可能なターゲット
- 条件付きコンパイル
今後の拡張計画
フェーズ1: 基盤システム
- 動的メモリ管理
- 基本的なファイルシステム
- シンプルなプロセス管理
フェーズ2: 高度な機能
- ネットワークスタック
- デバイスドライバーフレームワーク
- システムコール拡張
フェーズ3: Claude Code統合
- Node.js/Rustランタイム
- パッケージマネージャー統合
- 開発ツール群
参考アーキテクチャ
- xv6: 教育用Unix系OS
- Redox: Rust製マイクロカーネルOS
- seL4: 形式検証されたマイクロカーネル
- Plan 9: 分散システム指向OS