MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Microkernels meet recursive virtual machines (1996) [106 citations — 25 self]

Download:
Download as a PDF | Download as a PS
by Bryan Ford, Mike Hibler, Jay Lepreau, Patrick Tullmann, Godmar Back, Stephen Clawson
In Proceedings of the Second Symposium on Operating Systems Design and Implementation
http://fmg-www.cs.ucla.edu/classes/239_1.fall99/papers/OSDI96/micro.vm.ps
Add To MetaCart

Abstract:

This paper describes a novel approach to providingmodular and extensible operating system functionality and encapsulated environments based on a synthesis of microkernel and virtual machine concepts. We have developed a software-based virtualizable architecture called Fluke that allows recursive virtual machines (virtual machines running on other virtual machines) to be implemented efficiently by a microkernel running on generic hardware. A complete virtual machine interface is provided at each level; efficiency derives from needing to implement only new functionality at each level. This infrastructure allows common OS functionality, such as process management, demand paging, fault tolerance, and debugging support, to be provided by cleanly modularized, independent, stackable virtual machine monitors, implemented as user processes. It can also provide uncommon or unique OS features, including the above features specialized for particular applications ' needs, virtual machines transparently distributed cross-node, or security monitors that allow arbitrary untrusted binaries to be executed safely. Our prototype implementation of this model indicates that it is practical to modularize operating systems this way. Some types of virtual machine layers impose almost no overhead at all, while others impose some overhead (typically 0--35%), but only on certain classes of applications. 1

Citations

530 Implementation and performance of Munin – Carter, Bennett, et al. - 1991
519 Exokernel: An operating system architecture for application-level resource management – Engler, Kaashoek, et al. - 1995
477 TreadMarks: Distributed shared memory on standard workstations and operating systems – Keleher, Dwarkadas, et al. - 1994
390 Extensibility, safety and performance in the SPIN operating system – Bershad, Savage, et al. - 1995
276 LMbench: Portable tools for performance analysis – McVoy, Staelin - 1996
273 A secure environment for untrusted helper applications – Goldberg, Wagner, et al. - 1996
252 A New Kernel Foundation For UNIX Development – Mach - 1986
233 On µ-kernel construction – Liedtke - 1995
209 Libckpt: Transparent checkpointing under Unix – Plank, Beck, et al. - 1995
170 The performance of consistent checkpointing – Elnozahy, Johnson, et al. - 1992
151 Unix as an Application Program – Golub, Dean, et al. - 1990
144 Interposition agents: Transparently interposing user code at the system interface – Jones - 1993
131 Improving IPC by Kernel Design – Liedtke - 1993
126 Application-Controlled Physical Memory using External Page-Cache Management – Harty, Cheriton - 1991
124 Lottery and stride scheduling: Flexible proportionalshare resource management – Waldspurger - 1995
123 Hypervisor-based Fault-tolerance – Bressoud, Schneider - 1995
123 Implementation and Performance of Application-Controlled File Caching – Cao, Felten, et al. - 1994
110 Subcontract: A flexible base for distributed programming – Hamilton, Powell, et al. - 1993
100 A caching model of operating system kernel functionality. Opearting Systems Review – Cheriton, Duda - 1995
55 Extensible file systems in Spring – Khalidi, Nelson - 1993
51 The Cambridge CAP Computer and its Operating System – Wilkes, Needham - 1979
44 HiPEC: High Performance External Virtual Memory Caching – Lee, Chen, et al. - 1994
42 KeyKOS architecture – Hardy - 1985
42 Tools for the developement of application-specific virtual memory management – Krueger, Loftesness, et al. - 1993
40 A revised ipc interface – Draves - 1990
38 Distributed shared memory: Where we are and where we should be headed – Carter, Khandekar, et al. - 1995
37 The KeyKOS nanokernel architecture – Bomberger, Frantz, et al. - 1992
36 The checkpoint mechanism in KeyKOS – Landau - 1992
32 A persistent system in real use: experiences of the first 13 years – Liedtke - 1993
27 Clans & chiefs – LIEDTKE - 1992
25 Capability Based Computer Systems – Levy - 1984
22 Architecture of virtual machines – Goldberg - 1973
14 Survey of checkpointing and rollback techniques – Deconinck, Vounckx, et al. - 1993
12 Verifiable secure operating system software – Popek, Kline - 1974
8 Towards a new strategy of OS design – Bushnell - 1994
5 Experience with SVR4 over Chorus – Batlivala, Gleeson, et al. - 1992
5 A recursive virtual machine architecture – Lauer, Wyeth - 1973
4 Fluke: Flexible ��-kernel environment --- application programming interface reference (draft – Ford, Hibler - 1996
4 An Overview of the VSTa Microkernel. http://www.igcom.net/˜jeske/VSTa/vsta intro.html – Valencia
3 Survey of virtual machine reseach – Goldberg - 1974
2 Flexible multi-policy scheduling based on cpu inheritance – Ford, Susarla - 1996
1 Supportingcheckpointing and process migration outside the unix kernel – Litzkow, Solomon - 1992
1 The design and implementation of a virtual machine operating system using a virtual access method – March - 1973