In computer science, a single address space operating system (or SASOS) is an operating system that provides only one globally shared address space for all processes. In a single address space operating system, numerically identical (virtual memory) logical addresses in different processes all refer to exactly the same byte of data.[1]
In a traditional OS with private per-process address space, memory protection is based on address space boundaries ("address space isolation"). Single address-space operating systems make translation and protection orthogonal, which in no way weakens protection.[2][3]
The core advantage is that pointers (i.e. memory references) have global validity, meaning their meaning is independent of the process using it. This allows sharing pointer-connected data structures across processes, and making them persistent, i.e. storing them on backup store.
Some processor architectures have direct support for protection independent of translation. On such architectures, a SASOS may be able to perform context switches faster than a traditional OS. Such architectures include Itanium, and Version 5 of the Arm architecture, as well as capability architectures such as CHERI.
A SASOS should not be confused with a flat memory model, which provides no address translation and generally no memory protection. In contrast, a SASOS makes protection orthogonal to translation: it may be possible to name a data item (i.e. know its virtual address) while not being able to access it.
SASOS projects using hardware-based protection include the following:
Angel
IBM i (formerly called OS/400)
Iguana at NICTA, Australia
Mungi at NICTA, Australia
Nemesis
Opal
Scout
Sombrero
Related are OSes that provide protection through language-level type safety
Br1X
Genera
JX a research Java OS[4]
Phantom OS
Singularity
Theseus OS[5]
Torsion[6]
^Eric J. Koldinger; Jeffrey S. Chase; Susan J. Eggers (September 1992). "Architecture support for single address space operating systems". ACM SIGPLAN Notices. 27 (9): 175–186. doi:10.1145/143371.143508.
^Tim Wilkinson; Kevin Murray; Stephen Russell; Gernot Heiser; Jochen Liedt (13 November 1995). "Single Address Space Operating Systems" (PDF). University of New South Wales. Section 2: "Memory Protection". CiteSeerX 10.1.1.13.7042.
^Jeffrey S. Chase; Henry M. Levy; Michael J. Feeley; Edward D. Lazowska (November 1994). "Sharing and protection in a single-address-space operating system" (PDF). ACM Transactions on Computer Systems. 12 (4): 271–307. CiteSeerX 10.1.1.127.7313. doi:10.1145/195792.195795.
^Michael Golm; Meik Felser; Christian Wawersich; Jürgen Kleinöder. "The JX Operating System" (PDF).
^
Kevin Boos, Namitha Liyanage, Ramla Ijaz, and Lin Zhong.
"Theseus: an Experiment in Operating System Structure and State Management".
2020.
^
"Torsion Operating System".
quote: "Torsion ... a single address space multitasking operating system with transparent data persistence."
and 24 Related for: Single address space operating system information
computer science, a singleaddressspaceoperatingsystem (or SASOS) is an operatingsystem that provides only one globally shared addressspace for all processes...
In computing, a virtual addressspace (VAS) or addressspace is the set of ranges of virtual addresses that an operatingsystem makes available to a process...
A modern computer operatingsystem usually uses virtual memory to provide separate addressspaces called user space and kernel space. Primarily, this separation...
a singleaddressspaceoperatingsystem can be faster than switching between two processes in an operatingsystem with private per-process address spaces...
an addressspace in a system with virtual memory corresponds to a highest level translation table, e.g., a segment table in IBM System/370. Address spaces...
strategies avoid flushing the TLB on a context switch: (a) A singleaddressspaceoperatingsystem uses the same virtual-to-physical mapping for all processes...
some older operatingsystems (such as OS/VS1 and OS/VS2 SVS) and even modern ones (such as IBM i) are singleaddressspaceoperatingsystems that run all...
BareMetal is an exokernel-based singleaddressspaceoperatingsystem (OS) created by Return Infinity. It is written in assembly to achieve high-performance...
Watch watchOS Apple TV tvOS Embedded operatingsystems bridgeOS Apple Vision Pro visionOS Embedded operatingsystems A/ROSE iPod software (unnamed embedded...
memory. On some systems a page table entry can also designate a page as read-only. Some operatingsystems set up a different addressspace for each process...
memory addressing paradigm in which "memory appears to the program as a single contiguous addressspace." The CPU can directly (and linearly) address all...
A public addresssystem (or PA system) is an electronic system comprising microphones, amplifiers, loudspeakers, and related equipment. It increases the...
directly access a physical addressspace larger than 4 gigabytes (232 bytes). The page table structure used by x86-64 CPUs when operating in long mode further...
configuration space, and operatingsystems typically use APIs to allow access to device configuration space. When the operatingsystem does not have access...
32-bit value, IPv6 addresses have a size of 128 bits. Therefore, in comparison, IPv6 has a vastly enlarged addressspace. IPv6 addresses are classified by...
system software, i.e. the BIOS, operatingsystems, and some specialized utility programs (e.g., memory testers), address physical memory using machine code...
A distributed operatingsystem is system software over a collection of independent software, networked, communicating, and physically separate computational...
memory and the backing store. In operatingsystems that are not singleaddressspaceoperatingsystems, addressspace or process ID information is necessary...
large addressspace, there is no need to have complex address conservation methods as used in CIDR. All modern desktop and enterprise server operating systems...
mapped into the addressspace of a process, but the operatingsystem might allow regions of the file can be mapped into the addressspace, and unmapped...