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