2003年Singularityプロジェクトは、オペレーティングシステムの動作方法を再設計する目的で始まった。すべてが分離と検証可能性の概念に基づく。
処理は、お互い分離されている。タイプが異なっても支障のないチャネルを通じて、通信は厳密に実行され、あらゆる形態の共有メモリが許可される。処理は 「シール」される。つまり動的にコードをロードしたり、生成することができない。これには、動的リンクライブラリやメタデータプログラミング技法が使用できないという犠牲を負うことになるが、ウィルスの注入を実質的に不可能にするという利点がある。
少しのカーネル以外に、大量のSingularityがタイプが異なっても支障のない言語であるSing#で記述される。プラットフォームに固有のアセンブリ言語の代わりに、Singularityは最大公約数として.NETのILを使用する。Singularityは、管理されていないアプリケーションをロードしようとさえしない。
最初の2.0のリリース(リンク)には、完全なソースコードツリーおよびブート可能なCDイメージが含まれる。仮想PCファイルも、このリリースで利用可能である。
Microsoftがこれまでにない動きをした中、Singularityはパッチを要求し、CodePlexにおけるデベロッパの完全な権利を提供している。
また、RDK 2へコミュニティが積極的に参加することを期待している。RDKを使用しているならば、Discussionsタブで知らせて欲しい。またSource Codeタブでパッチを提供して欲しい。他のRDKユーザが作業を利用できるように、パッチはコードベースに統合される。寄与をスリム化するために、また ユーザがRDKの将来を推進するために、デベロッパの許可を寄稿者に提供する。