Single address space operating system

{{Short description|Operating system classification}}

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.{{cite journal|journal=ACM SIGPLAN Notices|volume=27|issue=9|pages=175–186|date=September 1992|author1=Eric J. Koldinger|author2=Jeffrey S. Chase|author3=Susan J. Eggers|title=Architecture support for single address space operating systems|doi=10.1145/143371.143508}}

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.{{cite web |author1=Tim Wilkinson|author2=Kevin Murray|author3=Stephen Russell|author4=Gernot Heiser|author5=Jochen Liedt|title=Single Address Space Operating Systems |website=University of New South Wales |date=13 November 1995|url=https://cgi.cse.unsw.edu.au/~reports/papers/9504.pdf|citeseerx=10.1.1.13.7042|at=Section 2: "Memory Protection"}}{{cite journal|author1=Jeffrey S. Chase|author2=Henry M. Levy|author2-link=Hank Levy (computer scientist)|author3=Michael J. Feeley|author4=Edward D. Lazowska|author4-link=Edward D. Lazowska|url=https://homes.cs.washington.edu/~levy/opal/opal-tocs.pdf|title=Sharing and protection in a single-address-space operating system|journal=ACM Transactions on Computer Systems|volume=12|issue=4|pages=271–307|date=November 1994|doi=10.1145/195792.195795|citeseerx=10.1.1.127.7313}}

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.{{cite web|url=http://www.csl.sri.com/users/neumann/2012resolve-cheri.pdf|title=CHERI: a research platform deconflating hardware virtualization and protection|last1=Watson|first1=Robert N. M.|author-link=Robert Watson (computer scientist)|last2=Neumann|first2=Peter G.|author2-link=Peter G. Neumann|date=3 March 2012|work=Unpublished workshop paper for RESoLVE’12, March 3, 2012, London, UK|publisher=SRI International Computer Science Laboratory|last3=Woodruff|first3=Jonathan|last4=Anderson|first4=Jonathan|last5=Anderson|first5=Ross|author-link5=Ross J. Anderson|last6=Dave|first6=Nirav|last7=Laurie|first7=Ben|author-link7=Ben Laurie|last8=Moore|first8=Simon W.|last9=Murdoch|first9=Steven J.|author-link9=Steven Murdoch|first10=Philip|last10=Paeps|first11=Michael|last11=Roe|first12=Hassen|last12=Saidi}}

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:

  • [https://www.doc.ic.ac.uk/~phjk/Publications/murray93design.pdf Angel]
  • IBM i (formerly called OS/400)
  • [http://www.ertos.nicta.com.au/iguana/ Iguana] at NICTA, Australia
  • [http://www.ertos.nicta.com.au/research/mungi/ Mungi] at NICTA, Australia
  • [http://www.cl.cam.ac.uk/Research/SRG/netos/old-projects/nemesis/ Nemesis]
  • [http://www.cs.washington.edu/homes/levy/opal/opal.html Opal]
  • Scout
  • [http://www.eas.asu.edu/~sasos/ Sombrero]

Related are OSes that provide protection through language-level type safety

  • [http://brix-os.sourceforge.net/?p0=info&p1=design&p2=arch-sassl Br1X]
  • Genera
  • JX a research Java OS{{cite web|url=http://www4.cs.fau.de/Projects/JX/publications/jx-usenix.pdf|title=The JX Operating System|author1=Michael Golm|author2=Meik Felser|author3=Christian Wawersich|author4=Jürgen Kleinöder}}
  • Phantom OS
  • Singularity
  • [https://github.com/theseus-os/Theseus Theseus OS]

Kevin Boos, Namitha Liyanage, Ramla Ijaz, and Lin Zhong.

[https://www.usenix.org/conference/osdi20/presentation/boos "Theseus: an Experiment in Operating System Structure and State Management"].

2020.

  • [http://www.torsion.org/ Torsion]

[http://www.nongnu.org/torsion/ "Torsion Operating System"].

quote: "Torsion ... a single address space multitasking operating system with transparent data persistence."

See also

References

{{Reflist}}

Bibliography

  • {{cite journal|author=Jeffrey S. Chase|author2=Henry M. Levy|author2-link=Hank_Levy_(computer_scientist)|author3=Michael J. Feeley|author4=Edward D. Lazowska|author4-link=Edward D. Lazowska|title=Sharing and protection in a single-address-space operating system|journal=ACM Transactions on Computer Systems|volume=12|issue=4|pages=271–307|date=November 1994|doi=10.1145/195792.195795|citeseerx=10.1.1.127.7313}}.
  • {{cite journal

| last1 = Heiser

| first1 = Gernot

| author-link1 = Gernot Heiser

| last2 = Elphinstone

| first2 = Kevin

| last3 = Vochteloo

| first3 = Jerry

| last4 = Russell

| first4 = Stephen

| author-link5 = Jochen Liedtke

| last5 = Liedtke

| first5 = Jochen

| year = 1998

| title = The Mungi Single-Address-Space Operating System

| journal = Software: Practice and Experience

| volume = 28

| issue = 9

| pages = 901–928

| doi = 10.1002/(SICI)1097-024X(19980725)28:9<901::AID-SPE181>3.0.CO;2-7

|citeseerx = 10.1.1.146.4216| s2cid = 62189930

|url = http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.146.4216&rep=rep1&type=pdf

|url-status = live

|archive-date = June 27, 2022

|archive-url = https://archive.today/20220627010816/http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.146.4216&rep=rep1&type=pdf

}}

  • {{cite journal|title=Improving the reliability of commodity operating systems|author=Michael M. Swift|author2=Brian N. Bershad|author3=Henry M. Levy|journal=ACM SIGOPS Operating Systems Review|doi=10.1145/1165389.945466|date=December 2003|volume=37|issue=5|page=207|citeseerx = 10.1.1.5.3338}}
  • {{cite journal|title=Architecture support for single address space operating systems|author=Eric J. Koldinger|author2=Jeffrey S. Chase|author3=Susan J. Eggers|journal=ACM SIGPLAN Notices|doi=10.1145/143371.143508|volume=27|issue=9|pages=175–186|date=September 1992}}

Category:Operating systems

{{comp-eng-stub}}