Singularity (operating system)
From Wikipedia, the free encyclopedia
Singularity after boot-up. |
|
Company / developer | Microsoft Corporation |
---|---|
Programmed in | Assembly language, C, C++, C#, Sing# |
OS family | Language-based operating systems |
Working state | Currently under development by Microsoft Research |
Source model | Shared source |
Latest stable release | 2.0 / November 14, 2008 |
Marketing target | N/A |
Available programming languages(s) | ProtoLisp, C#, Sing# |
Update method | N/A |
Package manager | N/A |
Supported platforms | x86 |
Kernel type | Microkernel Language based |
Default user interface | Command line interface |
License | Microsoft Research License |
Website | Microsoft Research Singularity Project |
Singularity is an experimental operating system being built by Microsoft Research since 2003. It is intended as a highly-dependable OS in which the kernel, device drivers, and applications are all written in managed code.
Contents |
[edit] Workings
The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, whose runtime and garbage collector are written in Sing# (an extended version of Spec#, itself an extension of C#) and runs 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 invoked during the 16-bit real mode bootstrap stage; once in 32-bit mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#. During installation, Common Intermediate Language (CIL) opcodes are compiled into x86 opcodes using the Bartok compiler.
[edit] Security design
Singularity is a microkernel operating system. Unlike most historical microkernels, its components execute in the same address space (process), which contains "software-isolated processes" (SIPs). Each SIP has its own data and code layout, and is independent from other SIPs. These SIPs behave like normal processes, but avoid the cost of task-switches.
Protection in this system is provided by a set of rules called invariants that are verified by static analysis. For example, in the memory-invariant states there must be no cross-references (or memory pointers) between two SIPs; communication between SIPs occurs via higher-order communication channels managed by the operating system. Invariants are checked during installation of the application. (In Singularity, installation is managed by the operating system).
Most of the invariants rely on the use of safer memory-managed languages, such as Sing#, which have a garbage collector, allow no arbitrary pointers, and allow code to be verified to meet a certain policy.
[edit] Project status
Singularity 1.0 was completed in 2007. A Singularity Research Development Kit (RDK) has been released under a Shared Source license that permits academic non-commercial use and is available from CodePlex. Version 1.1 was released in March 2007 and version 2.0 was released in November 14, 2008; the system is currently undergoing ongoing incremental development.[1]
[edit] See also
- Inferno, first created in 1995, based on Plan 9 from Bell Labs, apps are run in a virtual machine and are written in Limbo instead of CIL/C#.
- JavaOS, a legacy OS based on the same concept as Singularity.
- JNode, an OS similar in concept to Singularity, but with Java instead of CIL/C#.
- JX, a Java OS that, like Singularity, uses type-safety instead of hardware memory protection.
- Language-based system, General kernel design using language-based protection instead of hardware protection.
- Midori, a Microsoft-developed microkernel-based operating system mooted as a possible successor to Microsoft Windows by some members of the IT press. Based on/related to Singularity.
- SharpOS, an open source effort to write an operating system using C#.
- Sing#, programming language derived from Spec# by adding channels and low-level constructs; used for building Singularity.
- Spec#, programming language derived from C# by adding Eiffel-like design by contracts.
[edit] References
Cosmos is an operating system project implemented completely in CIL compliant languages - http://www.gocosmos.org/index.en.aspx
[edit] External links
- Official home page
- Rethinking the Software StackPDF
- Singularity Design MotivationPDF and an overview of the Singularity ProjectPDF
- Singularity source code
- Singularity: A research OS written in C# an interview of the Channel 9 team to Jim Larus and Galen Hunt (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 Singularity actually running (video & thread).
- Singularity Revisited, an interview of the Channel 9 team to 4 researchers of the Singularity Project Team (video & thread)
|
|