次世代コンピューティングの礎
単一アドレス空間OS
64ビットアーキテクチャの登場により、仮想アドレスは「希少資源」から「無限の空間」へと変貌しました。すべてのプロセスが同じ空間を共有するSASOSの設計思想は、現代のパフォーマンスボトルネックを打破する可能性を秘めています。
アーキテクチャの根本的変革
翻訳(Translation)と保護(Protection)の分離
01 従来型: マルチアドレス空間
(App 1)
(App 2)
(Kernel)
アドレス 0x1000 は各空間で異なるデータを指す
- • プロセスごとに仮想空間が隔離されている
- • データの共有にはシリアライズ/コピーが必要
- • 切り替え時にTLBのフラッシュが発生し低速
02 SASOS: 単一アドレス空間
システム全体で 0x1000 は常に一意のデータを指す
- • 全プロセスが広大な単一仮想空間を共有
- • ポインタの直接受け渡し(ゼロコピー共有)が可能
- • コンテキストスイッチが関数呼び出し並みに高速
圧倒的なパフォーマンス実証
Singularity (SASOS) vs 汎用OS 実行サイクル比較
※ AMD Athlon 64 3000+ (1.8GHz) 環境での測定データに基づく
SASOSの系譜:主要プロジェクト
理論を具現化したシステムたち
IBM i (OS/400)
商用での最大成功例
単一レベルストア(SLS)を採用し、オブジェクトベースの管理を実現。驚異的な後方互換性を誇る。
Mungi
分散SASOSの頂点
パスワード・ケーパビリティにより、明示的なI/Oなしでネットワーク全体のデータにアクセス可能。
Nemesis
QoS特化型
マルチメディア処理に特化。コンテキストスイッチのペナルティを排除し、低遅延を実現。
Singularity
Microsoftの挑戦
型安全な言語(C#)によるソフトウェア分離プロセス(SIP)を導入。ハードウェア保護すら不要にした。
利点と致命的な欠点
決定的な利点
ゼロコピーデータ共有
ポインタがシステム全体で共通の意味を持つため、巨大なグラフ構造などを一瞬で共有可能。
超高速なIPC
通常の関数呼び出しと同等のコストでプロセス間通信が可能。マイクロサービスに最適。
普及を阻んだ壁
fork() の不整合
POSIXの「空間コピー」という概念と、SASOSの「単一空間」という前提が根本から矛盾する。
静的データの管理
グローバル変数が全プロセスで衝突するため、複雑なオフセットテーブルが必要になる。
現代におけるルネサンス(再評価)
FaaS、エッジ、そしてハードウェア保護の進化
WebAssembly
モジュール間の線形メモリによるソフトウェア分離。現代版Singularityとしての可能性。
CHERI
ハードウェアレベルのタグ付きポインタにより、単一空間内での厳格かつ高速なメモリ保護を実現。
μFork
CHERIを利用したポインタの動的再配置により、SASOS上でのPOSIX互換性を解決する新技術。