C#で書かれたOS

今日プログラム板で見かけたネタ。自分用メモ書き。

Singularity http://research.microsoft.com/os/singularity/

MS Research の研究用プロジェクト。システム、ツール、言語の開発等含めて、ディペンダブルな OS 開発が目的。
過去のしがらみ断ち切って、70年代から全然進んでない OS の設計を見直そうというのが目的。
大部分 Managed Code で書かれてるっぽい。Sing# っていう C# に「Contract-Based Channels」とか「compile-time reflection」とかのための構文を足したものを使って書いてるらしい。

  • プロセス間のデータのやり取りは共有メモリじゃなくてチャネルを通した通信で。
  • ↑ハードウェア的にメモリ空間が分かれてるわけじゃなく、ソフトウェア的にプロセスを隔離してるらしい。Software-Isolated Process (SIP)。
  • Garbage Collection を OS が提供。GCアルゴリズムは多々あってそれぞれ一長一短だから、5種類のアルゴリズムを提供。SIPごとに選択可能。
  • ヘテロジニアスマルチコアなプロセッサでのソフトウェア実行のこともなんか考慮してるっぽい。

CooS http://www.coos.jp/

やってることは Singularity と近いみたい。
こっちの目的は「Windows以外の.NET環境」を用意しておくこと。この目的だと、monoとかSSCLIでもいい気が。(.NET を実行できる環境って意味だと、.NET Micro FrameworkWindows CE すら載せたくないような低スペック環境で .NET Framework を使える(OS 機能は最小限だけ提供))もあるし。)