Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!paperboy!osf.org!karger From: karger@osf.org (Paul A. Karger) Newsgroups: comp.os.mach Subject: Re: Mach as a Virtual Machine Keywords: Mach, Virtual Machine OS Message-ID: <21336@paperboy.OSF.ORG> Date: 23 Apr 91 19:26:49 GMT References: <1991Apr19.180259.18834@cs.cmu.edu> Sender: news@OSF.ORG Organization: Open Software Foundation Lines: 29 While several postings have described Mach as not being a virtual machine monitor in sense of VM/370, it most certainly does provide the basic tools for implementing a "hybrid virtual machine system" as defined in Popek and Goldberg's paper, "Formal Requirements for Virtualizable Third Generation Architectures" in the July 1974 issue of CACM. A hybrid virtual machine system allows more instructions to be emulated, rather than directly executed. If you combine that with many modern architectures that, unlike the 360/370, do not specify an I/O architecture, you find that Mach could easily support a VMM and do it more efficiently than a traditional VMM. In particular, if the CPU architecture allows CPU-model dependent I/O interfaces, as the VAX does, then you can define a VMM with an I/O interface that is a set of kernel calls, rather than actual I/O commands on a bus. For an example of such a VMM, see "A VMM Security Kernel for the VAX Architecture" in the Proceedings of the 1990 IEEE Symposium on Research in Security and Privacy. The VMM described there was not based on Mach, but could have been. (I was one of the co-authors of the paper, so I'm quite sure that Mach could easily have supported the system.) The Mach 3.0 microkernel is not a VMM by itself. However with a set of judiciously written servers, it can certainly support a hybrid VMM. Paul