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.23 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.4
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 OS5
- Phantom OS
- Singularity
- Theseus OS6
- Torsion7
See also
See also
References
References
- 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.
- Watson, Robert N. M.; Neumann, Peter G.; Woodruff, Jonathan; Anderson, Jonathan; Anderson, Ross; Dave, Nirav; Laurie, Ben; Moore, Simon W.; Murdoch, Steven J.; Paeps, Philip; Roe, Michael; Saidi, Hassen (3 March 2012). "CHERI: a research platform deconflating hardware virtualization and protection" (PDF). Unpublished workshop paper for RESoLVE’12, March 3, 2012, London, UK. SRI International Computer Science Laboratory.
- 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."
Bibliography
Bibliography
- Jeffrey S. Chase; Henry M. Levy; Michael J. Feeley; Edward D. Lazowska (November 1994). "Sharing and protection in a single-address-space operating system". ACM Transactions on Computer Systems. 12 (4): 271–307. CiteSeerX 10.1.1.127.7313. doi:10.1145/195792.195795..
- Heiser, Gernot; Elphinstone, Kevin; Vochteloo, Jerry; Russell, Stephen; Liedtke, Jochen (1998). "The Mungi Single-Address-Space Operating System". Software: Practice and Experience. 28 (9): 901–928. CiteSeerX 10.1.1.146.4216. doi:10.1002/(SICI)1097-024X(19980725)28:9<901::AID-SPE181>3.0.CO;2-7. S2CID 62189930. Archived from the original on 2022-06-27.
- Michael M. Swift; Brian N. Bershad; Henry M. Levy (December 2003). "Improving the reliability of commodity operating systems". ACM SIGOPS Operating Systems Review. 37 (5): 207. CiteSeerX 10.1.1.5.3338. doi:10.1145/1165389.945466.
- 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.