The Singularity OS is first and foremost a research system. Singularity strives for minimalism and design clarity, and makes extensive use of modern languages and tools. Microsoft is making prototype Operating system available free to academic and research communities so that they can use it to develop new computer architectures. The design of Singularity makes it easy to test how operating system and other application interact with each other. Singularity will improve software reliability and boost research in programming language and tools. Singularity is based on advances in programming languages and programming tools to develop and build a new system architecture and operating system (named Singularity), with the aim of producing a more robust and dependable software platform. Although dependability is difficult to measure in a research prototype, Singularity shows the practicality of new technologies and architectural decisions, which should lead to more robust and dependable systems in the future.
The Singularity system consists of three key architectural features: software-isolated processes, contract-based channels, and manifest-based programs. A key aspect of Singularity is an extension model based on Software-Isolated Processes (SIPs), which encapsulate pieces of an application or a system and provide information hiding, failure isolation, and strong interfaces. SIPs are the OS processes on Singularity. All code outside the kernel executes in a SIP. SIPs differ from conventional operating system processes in a number of ways:
SIPs are closed object spaces, not address spaces. Two Singularity processes cannot simultaneously access an object. Communications between processes transfers exclusive ownership of data.
SIPs are closed code spaces. A process cannot dynamically load or generate code.
SIPs do not rely on memory management hardware for isolation. Multiple SIPs can reside in a physical or virtual address space.
Communications between SIPs is through bidirectional, strongly typed, higher-order channels. A channel specifies its communications protocol as well as the values transferred, and both aspects are verified.
SIPs are inexpensive to create and communication between SIPs incurs low overhead. Low cost makes it practical to use SIPs as a fine-grain isolation and extension mechanism.
SIPs are created and terminated by the operating system, so that on termination, a SIP's resources can be efficiently reclaimed.
SIPs executed independently, even to the extent of having different data layouts, run-time systems, and garbage collectors.
A key focus of Singularity research is improving system dependability. Singularity improves dependability by dramatically increasing the scope of sound verification techniques to detect sources of unexpected system behaviour. To broaden the scope of sound verification techniques, Singularity fixes the behaviour of system components as early as possible in lifetime of their code. To lengthen the scope of sound verification techniques, Singularity constrains system organization and preserves metadata so that verification results can be applied even to late-bound composites.Singularity incorporates three key design choices to improve system dependability. These design choices are: an abstract instruction set as part of the system's application binary interface (ABI), a