HOME

TheInfoList



OR:

Singularity is an experimental
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
developed by
Microsoft Research Microsoft Research (MSR) is the research subsidiary of Microsoft. It was created in 1991 by Richard Rashid, Bill Gates and Nathan Myhrvold with the intent to advance state-of-the-art computing and solve difficult world problems through technologi ...
between July 9, 2003, and February 7, 2015. It was designed as a high dependability OS in which the kernel,
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s, and
application software Application software is any computer program that is intended for end-user use not operating, administering or programming the computer. An application (app, application program, software application) is any program that can be categorized as ...
were all written in managed code. Internal security uses
type safety In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that ...
instead of hardware memory protection.


Operation

The lowest-level
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
dispatch code is written in
assembly language In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
and C. Once this code has done its job, it invokes the kernel, which
runtime system In computer programming, a runtime system or runtime environment is a sub-system that exists in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile time ...
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 basic input/output system (
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is a type of firmware used to provide runtime services for operating systems and programs and to perform hardware initialization d ...
) is invoked during the 16-bit real mode bootstrap stage; once in
32-bit In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#. During installation, Common Intermediate Language (CIL)
opcode In computing, an opcode (abbreviated from operation code) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
s are compiled into x86 opcodes using the Bartok compiler.


Security design

Singularity is a
microkernel In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
operating system. Unlike most historic microkernels, its components execute in the same
address space In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity. For software programs to save and retrieve ...
(
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management * Business process, activities that produce a specific s ...
), 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 program analysis In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs duri ...
. 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 given computer security policy.


Project status

The first Singularity Research Development Kit (RDK), RDK 1.1, was initially released on March 4, 2008, being released under a shared source license allowing academic non-commercial use and available from CodePlex. RDK 2.0 was later released on November 14, 2008.


Similar projects

* Inferno, first created in 1995, based on
Plan 9 from Bell Labs Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has ...
; programs are run in a virtual machine and written in
Limbo The unofficial term Limbo (, or , referring to the edge of Hell) is the afterlife condition in medieval Catholic theology, of those who die in original sin without being assigned to the Hell of the Damned. However, it has become the gene ...
instead of C# with CIL;
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
* JavaOS, a legacy OS based on the same concept as Singularity * JNode, an OS similar in concept to Singularity, but with
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
instead of C# with CIL * JX, a Java OS that, like Singularity, uses
type safety In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that ...
instead of
computer hardware Computer hardware includes the physical parts of a computer, such as the central processing unit (CPU), random-access memory (RAM), motherboard, computer data storage, graphics card, sound card, and computer case. It includes external devices ...
memory protection *
Phantom OS Phantom OS is an Persistence_(computer_science)#Orthogonal_or_transparent_persistence, orthogonally persistent managed code general-purpose operating system. It is based on a concept of persistent virtual memory, and executes bytecode in a virt ...
, a managed OS * SharpOS, a former effort to write an operating system using C#;
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
* MOSA, a .NET Framework compiler and operating system using C# *
Cosmos The cosmos (, ; ) is an alternative name for the universe or its nature or order. Usage of the word ''cosmos'' implies viewing the universe as a complex and orderly system or entity. The cosmos is studied in cosmologya broad discipline covering ...
, a ''building blocks'' toolkit for developing an OS using C#;
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
* TempleOS, a ring-0 operating system with JIT compiler;
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...


See also

* Language-based system, general kernel design using language-based protection instead of hardware protection. * Midori, a Microsoft-developed microkernel-based operating system based on and related to Singularity.


References


External links

*
Singularity Design Motivation
and a
overview of the Singularity Project

Singularity source code
on CodePlex
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) {{DEFAULTSORT:Singularity (Operating System) Microsoft operating systems Microsoft Research Microkernel-based operating systems Microkernels .NET Operating system distributions bootable from read-only media X86 operating systems X86-64 operating systems