language-based system

{{Short description|Type of operating system that uses language features to provide security}}

A language-based system is a type of operating system that uses language features to provide security, instead of or in addition to hardware mechanisms. In such systems, code referred to as the trusted base is responsible for approving programs for execution, assuring they cannot perform operations detrimental to the system's stability without first being detected and dealt with.[https://www.cs.cmu.edu/~rwh/papers/langsec/dagstuhl.pdf A Language-Based Approach to Security], Schneider F., Morrissett G. (Cornell University) and Harper R. (Carnegie Mellon University). Informatics: 10 Years Back, 10 Years Ahead. (2000) A very common strategy of guaranteeing that such operations are impossible is to base the system around a high-level language, such as Java, whose design precludes dangerous constructs; many are entirely written in such a language, with only the minimum amount of low-level code being used.{{cite web|

title=JX - A flexible Java Operating System (poster)|

url=http://www4.informatik.uni-erlangen.de/Projects/JX/poster/jx-poster.jpg|author1=Michael Golm |author2=Meik Felser |author3=Christian Wawerish |author4=Jürgen Kleinöder |

publisher=University of Erlangen|accessdate=2007-04-21}} Since language-based systems can assure ahead of time that they cannot do things that can damage the system (such as corrupting memory by dereferencing dangling pointers), it is possible for them to avoid expensive address space switches needed by traditional OSes; because of this, microkernels are more popular than traditional systems.{{Citation needed|date=April 2011}} A more extreme form of this is a high-level language computer architecture, where the trusted base is pushed into hardware, and the entire system is written in a high-level language.

Examples

  • {{annotated link|Burroughs MCP}}
  • {{annotated link|Cosmos (operating system)|Cosmos}}
  • {{annotated link|Emerald (programming language)|Emerald}}
  • {{annotated link|Inferno (operating system)|Inferno}}
  • {{annotated link|JX (operating system)|JX}}
  • {{annotated link|Lisp machine}}
  • {{annotated link|Midori (operating system)|Midori}}
  • {{annotated link|Oberon (operating system)|Oberon}}
  • {{annotated link|Singularity (operating system)|Singularity}}
  • {{annotated link|Smalltalk}}
  • [https://github.com/theseus-os/Theseus Theseus OS]
  • {{annotated link|UCSD P-system}}
  • {{annotated link|Verve (operating system)|Verve}}

See also

References

{{Reflist}}

{{refbegin}}

  • A Sabelfeld, AC Myers [https://ieeexplore.ieee.org/document/1159651/;jsessionid=A692CC7FF77CD2C81E9E3E42B7099A2A?arnumber=1159651&isnumber=25986 Language-based information-flow security] IEEE Journal on Selected Areas in Communications, 2003 Volume 21, Issue 1 pp. 5–19
  • V Haldar, D Chandra, M Franz [http://www.vivekhaldar.com/pubs/trustedvm-tr.pdf Semantic remote attestation—a virtual machine directed approach to trusted computing] USENIX Virtual Machine Research and Technology Symposium, 2004
  • Giacobazzi, Mastroeni [http://doi.acm.org/10.1145/964001.964017 Abstract non-interference: parameterizing non-interference by abstract interpretation] Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages pp 186–97 (2004)
  • Algis Rudys, Dan S. Wallach [http://doi.acm.org/10.1145/505586.505589 Termination in language-based systems] ACM Transactions on Information and System Security (TISSEC) Volume 5, Issue 2 (May 2002) pp. 138–68

{{refend}}

Category:Operating system kernels

{{operating-system-stub}}