Singularityマイクロソフトリサーチ が2003年から実験的に開発しているオペレーティングシステム (OS)。高度なディペンダブルOSとすることを目標とし、カーネルデバイスドライバ、アプリケーションも全てマネージコードで書かれている。

Singularity Project
開発者 マイクロソフト
OSの系統 言語ベース
開発状況 Microsoft Research により開発中
ソースモデル シェアードソース
最新安定版 2.0 / 2008年11月14日
アップデート方式 N/A
パッケージ管理 N/A
プラットフォーム x86
カーネル種別 マイクロカーネル、言語ベース
既定のUI コマンド行インタフェース
ライセンス Microsoft Research License
ウェブサイト Microsoft Research Singularity Project
テンプレートを表示

仕組み

編集

x86割り込みディスパッチ部分のコードはアセンブリ言語C言語で書かれている。カーネル本体とガベージコレクタSing#で書かれている。Sing#は、Spec#を拡張した言語で、Spec#自体はC#を拡張した言語である。HALC++で書かれている。他にもデバッグ関連でC言語を使っている。ブート時の16ビットリアルモードではBIOSを呼び出すが、32ビットモードになるとBIOSは使わず、Sing#で書かれたデバイスドライバを使う。インストール時にBartokコンパイラを使って共通中間言語 (CIL) をx86の機械語にコンパイルする。

セキュリティ

編集

Singularity はマイクロカーネル型のOSである。それまでのマイクロカーネルとは異なり、各コンポーネントは同じアドレス空間プロセス)内で、"software-isolated process" (SIP) として動作する。SIPにはそれぞれ自前のデータとコードがあり、他のSIPとは独立している。SIPはプロセスのように振舞うが、仮想記憶の切り替えが不要でコンテキストスイッチのコストが低い。

システムの保護は、不変条件と呼ばれる一連の規則が提供し、それらは静的コード解析で検証される。例えば、メモリ不変条件は2つのSIP間で相互参照(ポインタの受け渡し)はしない、としている。SIP間の通信は高度に抽象化された通信路経由で行われ、OSの管理下にある。不変条件はアプリケーションのインストール時にもチェックされる。Singularityでは、インストールはOSが管理している。

不変条件の多くは、より安全にメモリを管理する言語に依存している。例えば、Sing#にはガベージコレクション機能があり、ポインタを自由に使えない。また、コードが特定のコンピュータセキュリティポリシーに適合するか検証できる。

プロジェクトの状況

編集

Singularity 1.0は2007年に完成した。Singularity Research Development Kit (RDK) は、学術的な非商用目的に限ってシェアードソースライセンスでリリースされており、CodePlexで公開している。バージョン1.1は2007年3月、バージョン2.0は2008年11月14日にリリースされ、開発は現在も進行中である[1]

関連項目

編集

脚注・出典

編集

外部リンク

編集