Exterminate all operating system abstractions

The defining tragedy of the operating systems community has been the definition of an operating system as software that both multiplexes and abstracts physical resources. The view that the OS should abstract the hardware is based on the assumption that it is possible bath to define abstractions that are appropriate for all areas and to implement them to perform efficiently in all situations. We believe that the fallacy of this quixotic goal is self-evident, and that the operating system problems of the last two decades (poor performance, poor reliability, poor adaptability, and inflexibility) can be traced back to it. The solution we propose is simple: complete elimination of operating system abstractions by lowering the operating system interface to the hardware level.

[1]  Dawson R Engler,et al.  The design and implementation of a prototype exokernel operating system , 1995 .

[2]  Dawson R. Engler,et al.  The Operating System Kernel as a Secure Programmable Machine , 1994, ACM SIGOPS European Workshop.

[3]  Brian N. Bershad,et al.  Fast mutual exclusion for uniprocessors , 1992, ASPLOS V.

[4]  David R. Cheriton,et al.  A caching model of operating system kernel functionality , 1995, OPSR.

[5]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[6]  Henry Massalin,et al.  Synthesis: an efficient implementation of fundamental operating system services , 1992 .

[7]  Andrew W. Appel,et al.  Virtual memory primitives for user programs , 1991, ASPLOS IV.

[8]  David R. Cheriton,et al.  Application-controlled physical memory using external page-cache management , 1992, ASPLOS V.

[9]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[10]  John H. Hartman,et al.  Scout: A Communications-Oriented Operating System (Abstract) , 1994, OSDI.

[11]  Emin Gün Sirer,et al.  SPIN—an extensible microkernel for application-specific operating system services , 1995, OPSR.

[12]  Jerry Huck,et al.  Architectural support for translation table management in large address space machines , 1993, ISCA '93.

[13]  Michael Stonebraker,et al.  Operating system support for database management , 1981, CACM.

[14]  Henry M. Levy,et al.  Hardware and software support for efficient exception handling , 1994, ASPLOS VI.

[15]  M. Frans Kaashoek,et al.  Software prefetching and caching for translation lookaside buffers , 1994, OSDI '94.

[16]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[17]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[18]  Jerome H. Saltzer,et al.  End-to-end arguments in system design , 1984, TOCS.

[19]  Butler W. Lampson,et al.  An open operating system for a single-user machine , 1979, SOSP '79.

[20]  Robert J. Creasy,et al.  The Origin of the VM/370 Time-Sharing System , 1981, IBM J. Res. Dev..

[21]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[22]  Brian N. Bershad,et al.  Avoiding conflict misses dynamically in large direct-mapped caches , 1994, ASPLOS VI.

[23]  T. Anderson,et al.  Eecient Software-based Fault Isolation , 1993 .