Singularity (operating system)
From Wikipedia, the free encyclopedia
| This article or section contains information about computer software currently in development. The content may change as the software development progresses. |
| Singularity | |
| Website | Microsoft Research Singularity Project |
|---|---|
| Company/ developer |
Microsoft Corporation |
| OS family | N/A |
| Source model | Closed source |
| Latest stable release | 1.0 / ? |
| Marketing target | N/A |
| Available language(s) | C# |
| Update method | ? |
| Package manager | ? |
| Supported platforms | x86 |
| Kernel type | Microkernel |
| Default user interface | Command line interface |
| License | N/A (This software has not been released to the public) |
| Working state | Currently under development by Microsoft Research |
Singularity is a Microsoft Research project started in 2003 to build a highly-dependable operating system in which the kernel, device drivers, and applications are all written in managed code.
The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it calls the kernel, whose runtime and garbage collector are written in C# and run in unsafe mode. The hardware abstraction layer is written in C++ and runs in safe mode. There is also some C code to handle debugging. The computer's BIOS is only called during the 16-bit real-mode bootstrap stage; once in 32-bit mode, Singularity never calls the BIOS again, but rather calls device drivers written in C#. During installation, CIL opcodes of the C# kernel are compiled into x86 opcodes using the Bartok compiler.
By 2007 Singularity V1.0 is considered to be complete. A Singularity V1.0 Research Development Kit (RDK) has been shipped to a small number of universities for their research efforts. There has been no mention of releasing the source code or binaries to the public. Currently research is moving to the development of Singularity V2.0.[1]
Contents |
Singularity is a microkernel operating system; however, unlike most historical microkernels, the different components do not run in separate address spaces (processes). Instead, there is only a single address space in which "Software-Isolated Processes" (SIP) reside. Each SIP has its own data and code layout, and is independent from other SIPs. These SIPs behave like normal processes, but do not require the overhead penalty of task-switches. Protection in this system is provided by a set of invariants, such as the memory-invariant which states there will be no cross-references (or memory pointers) between two SIPs. Communication between SIPs occur via higher order communication channels managed by the operating system. These rules are checked during the installation phase of the application, and must be fulfilled in order for Singularity to allow the installation (note: in Singularity, installation is managed by the operating system).
Most of the invariants rely on the use of safer memory-managed languages, such as C#, where a garbage collector is employed, there are no arbitrary pointers, and code can be verified to meet a certain policy.
- Spec#, programming language, Eiffel-like design by contracts added to C#.
- Sing#, programming language, channels and low level constructs added to Spec#, used for building singularity.
- Inferno, an operating system from Bell Labs, some concepts of which Singularity uses.
- Official home page
- Singularity Design Motivation (pdf)
- An Overview of the Singularity Project (pdf)
- Singularity: A research OS written in C# an interview of the Channel 9 team to Jim Larus and Galen Hunt (video & thread)
- Singularity Revisited, an interview of the Channel 9 team to 4 researchers of the Singularity Project Team (video & thread)
- Singularity III: Revenge of the SIP, an interview of the Channel 9 team to 3 researchers of the Singularity Project Team (video & thread).
- Singularity IV: Return of the UI, a demo of Sigularity actually running (video & thread).
- Channel9 debate started by the Niner Eagle
|
|
|
|---|---|
| Languages and Compilers | Polyphonic C# · Cω · Spec# · Sing# · Bartok · Phoenix |
| Distributed/Grid computing | Bigtop · Gridline · BitVault |
| Internet and Networking | Avalanche · Wallop · Conference XP · HoneyMonkey · AjaxView |
| Others | MyLifeBits · LiveStation · Terminator |
| Operating system | Singularity |
| APIs | Joins · Accelerator · Dryad · SXM |
| Launched as products | C# · F# · Sideshow · Surface (TouchLight) · SenseCam · ClearType · Group Shot · Allegiance |