3 月 4 日, Singularity 研发工具包(RDK)在CodePlex 网站上发布为开源项目。该RDK 基于微软研究院的Singularity 项目,Singularity 项目由Galen Hunt、Jim Larus 及其他人员研发。项目网站表示,Singularity 主要“通过系统、语言、工具领域的创新来构建可靠的系统。”
Singularity RDK 包括“源代码、构建工具、测试套件、设计笔记、以及其它背景资料”,这些资料可用来研究、运行 Singularity。资料中包括一个名叫 “构建并运行 Singularity”的 17 页文档,该文档串讲了配置 Singularity 和 RDK 的步骤。已经有五十多个可构建、部署的独立应用和项目进行了下载,下载中包括一整套的测试套件和一套标准检查程序。
RDK 还提供了数十个 Singularity 设计笔记(SDN),描述了 Singularity 的某些特性或其中一项工程是如何进行设计和预期工作的。举例来说,“SDN 0:Singularity 的设计动机”包括关于所谓重中之重的讨论:
四个设计要点结合起来以产生一个操作系统,这个操作系统在未来的研究和系统可靠性的创新方面是敏捷的。这些设计要点是:一套类型安全的抽象指令集做为系统的二进制接口,适合应用程序和操作系统的一个统一扩展机制,一个强大的进程隔离架构,以及一个用于描述代码和数据的无所不在的元数据基础架构。
微软研究院站点和 RDK 站点对 Singularity 项目的概述如下:
语言、编译器、工具上的进展可以有效地推动软件改进的可能性。比如说,Singularity 使用类型安全的语言和抽象指令集使我们能够访问软件独立进程(SIPs)。无需硬件强制保护域的辅助作用,SIPs 就能提供与操作系统进程之间有力的隔离保证(独立对象空间、独立垃圾回收机制、独立运行时)。目前,Singularity 原型的 SIPs 非常容易获取;它们都运行在内核地址空间的 Ring 0。 Singularity 利用这些进展来构建更加可靠的系统和应用程序。例如,由于创建、执行 SIPs 都非常容易,所以 Singularity 能在自己的 SIP 中运行每个程序、设备驱动程序、或系统扩展。SIPs 不允许共享内存、修改自己的代码。因此,我们可以获得有力的可靠性保证,保证代码运行在一个 SIP 中。我们可以在编译或安装阶段验证 SIP 属性,这要比对运行在传统操作系统进程中的代码的验证更为广泛。对预知系统行为和给用户提供有力的可靠性保证来说,关键问题就是更加广泛地应用状态验证。
Singularity 项目站点有一些与 Singularity 和 RDK 相关的文章、访谈、MSDN 链接。最有用的一些入门资料包括Galen Hunt 和James Larus 写的“Singularity:对软件栈的反思” [pdf],以及一个 PDF 版本的 Singularity RDK 指南[pdf]。
RDK 站点有一个非常活跃的讨论组,多数社区成员都可以在那里发布关于使用Singularity 和RDK 的问题、解决方案、观点。
Singularity RDK 目前只用于非商业性的学术用途。
评论