Single address space operating system
In computer science, a single address space operating system is an operating system that provides only one globally shared address space for all processes. In a single address space operating system, numerically identical logical addresses in different processes all refer to exactly the same byte of data.
In a traditional OS with private per-process address space, memory protection is based on address space boundaries. Single address-space operating systems make translation and protection orthogonal, which in no way weakens protection.
The core advantage is that pointers 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 while not being able to access it.
SASOS projects using hardware-based protection include the following:
Related are OSes that provide protection through language-level type safety:
- Genera
- JX a research Java OS
- Phantom OS
- Singularity