Singularity (operating system)

Singularity (operating system)
Singularity Project
Singularity v1.png
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; 2 years ago (2008-11-14)
Available programming languages(s) ProtoLisp, C#, Sing#
Supported platforms x86
Kernel type Microkernel Language based
Default user interface Command line interface
License Microsoft Research License
Official website http://research.microsoft.com/en-us/projects/singularity/

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

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 unprotected mode. The hardware abstraction layer is written in C++ and runs in protected 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.

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.

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 on November 14, 2008; the system is currently undergoing incremental development.[1]

Similar projects

  • Inferno, first created in 1995, based on Plan 9 from Bell Labs, programs 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.
  • Phantom OS, a managed OS.
  • SharpOS, an open source effort to write an operating system using C#.
  • MOSA, result of merging Sharp OS and Ensemble OS
  • Cosmos (operating system), another open source C# operating system

See also

  • Language-based system, General kernel design using language-based protection instead of hardware protection.
  • Spec#, programming language derived from C# by adding Eiffel-like design by contracts.
  • Sing#, programming language derived from Spec# by adding channels and low-level constructs; used for building Singularity.
  • 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.

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Operating system — Operating systems …   Wikipedia

  • Midori (operating system) — Midori Company / developer Microsoft Corporation Working state Currently under development Supported platforms IA 32, x86 64, ARM Kernel type Microkernel (Language based) Midori is the …   Wikipedia

  • Inferno (operating system) — Infobox OS name = Inferno caption = Inferno 4th Edition developer = Bell Labs / Vita Nuova Holdings source model = Open source kernel type = Virtual machine supported platforms = x86, MIPS, XScale, ARM, PowerPC, SPARC ui = family = Unix successor …   Wikipedia

  • SharpOS (operating system) — Infobox OS name = SharpOS caption = SharpOS v0.0.0.75 developer = SharpOS Project family = .NET C# cite web |url=http://www.sharpos.org/redmine/wiki/3/About SharpOS |title=SharpOS Info About SharpOS |accessdate=2008 04 13 |format=HTML… …   Wikipedia

  • Single address space operating system — In computer science, a single address space operating system (or SASOS) is a type of operating system with simple memory management which uses only one globally shared virtual address space. List of SASOS Projects * Angel * BMX *… …   Wikipedia

  • Cosmos (operating system) — Cosmos Screenshot of a Cosmos test shell booted in QEMU Company / developer …   Wikipedia

  • Ensemble (operating system) — Infobox OS name = Ensemble caption = Ensemble developer = Ensemble Project family = .NET C# cite web |url=http://www.ensemble os.org/wiki/core/About Ensemble |title=About Ensemble |accessdate=2008 08 06 |format=HTML |work=Ensemble] supported… …   Wikipedia

  • Object-oriented operating system — An object oriented operating system is an operating system which internally uses object oriented methodologies. An object oriented operating system is in contrast to an object oriented user interface or programming framework, which can be placed… …   Wikipedia

  • Singularity — may refer to any of a variety of concepts.Mathematics:* Mathematical singularity, a point at which a given mathematical object is not definedIn complex analysis:* Essential singularity, a singularity near which a function exhibits extreme… …   Wikipedia

  • Extremely Reliable Operating System — (EROS)  операционная система на основе мандатов, призванная выполнять требования защиты и надёжности активных систем. Пользователи активных систем могут в любое время вводить и исполнять произвольный код, в том числе ошибочный или даже… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”