Singularity (operating system)

Source: Wikipedia, the free encyclopedia.
Singularity Project
Microsoft Corporation)
Written inAssembly language, C, C++, C#, Sing#
OS familyLanguage-based systems
Working stateDiscontinued
Source modelSource-available (through Shared Source Initiative)
Initial releaseMarch 4, 2008; 16 years ago (2008-03-04)[1]
Final release2.0 / November 14, 2008; 15 years ago (2008-11-14)
Available inEnglish
Platformsx86, x86-64[2]
Kernel typeMicrokernel language-based
Default
user interface
Command-line interface
LicenseMicrosoft Research License
Official websiteresearch.microsoft.com/en-us/projects/singularity

Singularity is an experimental operating system developed by Microsoft Research between July 9, 2003,[3] and February 7, 2015.[4] It was designed as a high dependability OS in which the kernel, device drivers, and application software were all written in managed code. Internal security uses type safety instead of hardware memory protection.

Operation

The lowest-level

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.[6]
: 11 

Security design

Singularity is a microkernel operating system. Unlike most historic 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.[5]: 4,11,35 

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.

Project status

The first Singularity Research Development Kit (RDK), RDK 1.1, was initially released on March 4, 2008,

shared source license allowing academic non-commercial use and available from CodePlex.[7] RDK 2.0 was later released on November 14, 2008.[2]

Similar projects

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 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

  1. ^ a b "Singularity RDK 1.1". CodePlex. Archived from the original on May 4, 2009. Retrieved January 16, 2022.
  2. ^ a b "Singularity RDK 2.0 Initial Release (17067)". CodePlex. November 14, 2008. Archived from the original on December 6, 2008. Retrieved January 16, 2022.
  3. ^ "Singularity". Microsoft. Retrieved January 16, 2022.
  4. ^ "Singularity RDK". CodePlex. Archived from the original on January 2, 2018. Retrieved January 16, 2022.
  5. ^ a b "An Overview of the Singularity Project" (PDF). Microsoft. Retrieved January 16, 2022.
  6. ^ a b Hunt, Galen; Larus, James. "Singularity: Rethinking the Software Stack" (PDF). Microsoft. Microsoft Research Redmond. Retrieved January 16, 2022.
  7. ^ Ricciuti, Mike (March 5, 2008). "Is Microsoft's 'Singularity' the OS of the future?". CNET. Retrieved January 16, 2022.

External links