Singularity
Singularity,一种实验性操作系统,在2003年至2010年间由微软研究院设计、发展出来。该操作系统的内核、驱动程序以及应用进程都以「受控代码」写成。系统“Singularity”在设计上完全改头换面,不再以其性能为标准,而以系统稳定性作为首要标准。
![]() Singularity after boot-up. | |
开发者 | Microsoft |
---|---|
当前版本 |
|
许可协议 | Microsoft Research License |
网站 | Microsoft Research Singularity Project |
Singularity操作系统会在系统构建、编写程序等应用微软最先进的技术,例如Singularity的内核技术之一:软件独立进程(Software Isolated Processes,SIP)将采用类型安全的编程语言以及精简的指令完成,保证系统运作之间的高度独立性。SIP保证每个进程、驱动程序以及系统扩展组件都在独立的SIP内运行,并不允许互相共享内存或修改自身代码,能够使系统的稳定性增强。
微软将会在近期公布更多Singularity的详细技术资料。
Singularity的低级x86中断以汇编语言和C语言写成。一旦这些代码完成工作,它将调用内核,内核的运行时代码和垃圾收集器用C♯语言写成并在非安全模式下运行。Singularity的硬件抽象层用C++语言写成并运行在安全模式下。并且也有部分C代码负责调试工作。计算机的BIOS只在16比特实模式自举阶段被调用;一旦系统进入32比特模式,Singularity将永远不再调用BIOS,而改以调用以Sing♯写出的设备驱动代码。当安装时,通用中间语言形态的opcode将借由Bartok[1]编译为x86形态的opcode。Bartok是一种以C#写成的早期优化编译器。
源代码和/或磁盘镜像将在工程完成时可用。
设计
Singularity是一个微内核操作系统;无论如何,不似过去的微内核,Singularity的不同组件不在单独的地址空间(进程)内运行,而是每个软件独立进程(SIP)分配到一个独立的单一地址空间。这些SIP的行为类似普通进程,但SIP将不会在任务调度时请求开销惩罚(overhead penalty)。系统的保护由不变式(invariants)集提供,比如内存不变式将维护内存内两个SIP间没有交互参照(或循环的内存指针)。这项规则将在应用进程安装阶段进行检查,并且不得违反,否则Singularity将禁止安装(注意:Singularity系统中安装完全由操作系统管理)。
大部分不变式依赖于带有安全机制语言的使用,如Java语言或C#,这些语言拥有垃圾收集机制,没有专断指针并且代码可以辑由某种计算机安全策略得以验证。
版本历史
- 2007年:Singularity 1.0
- 2007年3月:Singularity 1.1
- 2008年12月14日:Singularity 2.0
参见
- Sing♯
- Spec♯
外部链接
- 官方主页(页面存档备份,存于)
- Singularity Design Motivation (pdf)
- Detailed overview of the Singularity project (pdf)
- Channel9 thread, with interview of Jim Larus and Galen Hunt(页面存档备份,存于)
- The JX Operating System (pdf)(页面存档备份,存于),another operating system similar in concept