HOME

TheInfoList



OR:

Singularity is an experimental operating system developed by Microsoft Research between July 9, 2003, and February 7, 2015. It was designed as a high dependability OS in which the
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learni ...
, device drivers, and
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
were all written in
managed code Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runt ...
. Internal security uses type safety instead of hardware memory protection.


Operation

The lowest-level x86 interrupt dispatch code is written in
assembly language In computer programming, assembly language (or 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 b ...
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 both 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 ...
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 Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
is written in
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "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 firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the b ...
) is invoked during the 16-bit
real mode Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20- bit se ...
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 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculati ...
mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#. During installation,
Common Intermediate Language Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification. ...
(CIL) opcodes 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 s ...
( 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 program 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 given
computer security policy A computer security policy defines the goals and elements of an organization's computer systems. The definition can be highly formal or informal. Security policies are enforced by organizational policies or security mechanisms. A technical impleme ...
.


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 The Shared Source Initiative (SSI) is a source-available software licensing scheme launched by Microsoft in May 2001. The program includes a spectrum of technologies and licenses, and most of its source code offerings are available for download ...
license allowing academic non-commercial use and available from
CodePlex CodePlex was a forge website by Microsoft. While it was active, it allowed shared development of open-source software. Its features included wiki pages, source control based on Mercurial, TFVC, Subversion or Git, discussion forums, issue tra ...
. RDK 2.0 was later released on November 14, 2008.


Similar projects

*
Inferno Inferno may refer to: * Hell, an afterlife place of suffering * Conflagration, a large uncontrolled fire Film * ''L'Inferno'', a 1911 Italian film * ''Inferno'' (1953 film), a film noir by Roy Ward Baker * ''Inferno'' (1973 film), a German t ...
, first created in 1995, based on Plan 9 from Bell Labs; programs are run in a virtual machine and written in Limbo instead of C# with CIL; open-source software *
JavaOS JavaOS is an operating system based on a Java virtual machine and predominantly used on SIM cards to run applications on behalf of operators and security services. It was originally developed by Sun Microsystems. Unlike Windows, macOS, Unix, or U ...
, a legacy OS based on the same concept as Singularity * JNode, an OS similar in concept to Singularity, but with Java instead of C# with CIL * JX, a Java OS that, like Singularity, uses type safety instead of
computer hardware Computer hardware includes the physical parts of a computer, such as the case, central processing unit (CPU), random access memory (RAM), monitor, mouse, keyboard, computer data storage, graphics card, sound card, speakers and motherboard. ...
memory protection *
Phantom OS Phantom OS is an operating system (OS) made by mostly Russian programmers (with help of some Uzbeks). It is based on a concept of persistent virtual memory, and uses a virtual machine, managed code, and bytecodes. It is one of a few OSes not bas ...
, a managed OS * SharpOS, a former effort to write an operating system using C#; open-source software * MOSA, a
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
compiler and operating system using C# *
Cosmos The cosmos (, ) is another name for the Universe. Using the word ''cosmos'' implies viewing the universe as a complex and orderly system or entity. The cosmos, and understandings of the reasons for its existence and significance, are studied i ...
, a ''building blocks'' toolkit for developing an OS using C#; open-source software * TempleOS, a ring-0 operating system with JIT compiler; open-source software


See also

*
Language-based system A language-based system is a type of operating system that uses language features to provide security, instead of or in addition to hardware mechanisms. In such systems, code referred to as the ''trusted base'' is responsible for approving program ...
, general kernel design using language-based protection instead of hardware protection. * Spec#, programming language derived from C# by adding Eiffel-like design by contract. * Sing#, programming language derived from Spec# by adding channels and low-level constructs; used to build Singularity. * Midori, a Microsoft-developed microkernel-based operating system. Based on and related to Singularity.


References


External links

*
Singularity Design Motivation
and an tp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf overview of the Singularity Project
Singularity source code
on
CodePlex CodePlex was a forge website by Microsoft. While it was active, it allowed shared development of open-source software. Its features included wiki pages, source control based on Mercurial, TFVC, Subversion or Git, discussion forums, issue tra ...

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