Single address space operating system

Summary

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

See also

edit

References

edit
  1. ^ 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.
  2. ^ 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.
  3. ^ 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.
  4. ^ 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.
  5. ^ Michael Golm; Meik Felser; Christian Wawersich; Jürgen Kleinöder. "The JX Operating System" (PDF).
  6. ^ Kevin Boos, Namitha Liyanage, Ramla Ijaz, and Lin Zhong. "Theseus: an Experiment in Operating System Structure and State Management". 2020.
  7. ^ "Torsion Operating System". quote: "Torsion ... a single address space multitasking operating system with transparent data persistence."

Bibliography

edit
  • 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 June 27, 2022.
  • 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.