From: Praveen Rao (psrao_at_windows.microsoft.com)
Date: Mon Mar 01 2004 - 00:19:16 PST
Disco is a VM monitor which acts as a layer between OS and the hardware.
This allows the commodity OSes to run on new hardware architectures.
This requires very little modification to the OS and no changes to the
applications written to the OS. This way a complete backward
compatibility can be maintained while running a commodity OS on
interesting new hardwares. For example a commodity OS can be made to run
on NUMA hardware without modification. This is a very promising model.
A VM monitor does have its challenges; these are overheads due to
virutalization, resource mgmt problems and communication problems. A VM
monitor needs to provide efficient sharing and multiplexing mechanisms
for the VMs. Fortunately, modern commodity OSes have support for
distributed computing. This can be leveraged for communication between
VMs, for example VMs can be coupled using TCP/IP and NFS.
Disco's interface is as follows:
Processor: virtual processor which emulates MIPS
Physical memory: Disco provides virtual physical memory to the VMs.
Physical to machine address translation is facilitated by software
loaded TLBs of MIPs. Disco also provides dynamic page migration and
replication, which provides efficiency gains and can hide NUMA-ness of a
NUMA architecture.
I/O devices: are virtualized, special abstractions are used for SCSI
disks and network devices because of their importance to perf. Disco
adds special device drivers into the OS. Disks and network interfaces
include a DMA map. Disco must intercept DMA requests to translate the
physical address into machine address. Copy-on-write mechanism is used
for disks to allow efficient read sharing.
Overall Disco seems to be a promising model for running commodity OSes
(and their large software base) over a variety of hardware
architectures, facilitating adoption of new hardware architectures.
This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 00:19:37 PST