Self-contained development environments
- 6 April 2020
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 53 (8), 76-87
- https://doi.org/10.1145/3393673.3276948
Abstract
Operating systems are traditionally implemented in low- level, performance-oriented programming languages. These languages typically rely on minimal runtime support and provide unfettered access to the underlying hardware. Tra- dition has benefits: developers control the resources that the operating system manages and few performance bottle- necks cannot be overcome with clever feats of programming. On the other hand, this makes operating systems harder to understand and maintain. Furthermore, those languages have few built-in barriers against bugs. This paper is an ex- periment in side-stepping operating systems, and pushing functionality into the runtime of high-level programming languages. The question we try to answer is how much sup- port is needed to run an application written in, say, Smalltalk or Python on bare metal, that is, with no underlying oper- ating system. We present a framework named NopSys that allows this, and we validate it with the implementation of CogNos a Smalltalk virtual machine running on bare x86 hardware. Experimental results suggest that this approach is promising.Keywords
This publication has 12 references indexed in Scilit:
- Cross-language compiler benchmarking: are we fast yet?Published by Association for Computing Machinery (ACM) ,2016
- The operating systemPublished by Association for Computing Machinery (ACM) ,2013
- UnikernelsPublished by Association for Computing Machinery (ACM) ,2013
- High-level programming of embedded hard real-time devicesPublished by Association for Computing Machinery (ACM) ,2010
- Demystifying magicPublished by Association for Computing Machinery (ACM) ,2009
- SingularityACM SIGOPS Operating Systems Review, 2007
- A principled approach to operating system construction in HaskellPublished by Association for Computing Machinery (ACM) ,2005
- IncommunicadoPublished by Association for Computing Machinery (ACM) ,2002
- Application isolation in the Java Virtual MachinePublished by Association for Computing Machinery (ACM) ,2000
- ExokernelPublished by Association for Computing Machinery (ACM) ,1995