[comp.os.mach] Virtual Machines in Mach for OS course project

houpt@svax.cs.cornell.edu (Charles E. Houpt) (07/02/90)

I'm learning about Mach, and was wondering if anyone knows whether
the following problem can be solved with Mach.

Here at Cornell the project for the OS course is to write an
OS kernel. The kernel consists of a virtual memory manager, IO
manager, and process manager. The target machine for the kernel
is a software simulated PDP-11 (with VM) running on a VAX. Because
the PDP-11 is simulated, the kernel runs very s..l..o..w...

My question is: can the special features of Mach be used to provide
students with a native code Virtual Machine (VMac) to run their kernels in?

As I see it, the real trick in a Mach VMac is simulating virtual
memory (virtual-VM). The VMac should be able to detect virtual
page faults and call the student's pager to handle them. If the
students kernel modifies the page table, then the VMac will adjust
to the new virtual memory map. In sum, the VMac must be able to
simulate all the VM hardware.

I know Mach allows user-defined pagers, but is this facility flexible
enough to implement a VMac with its own virtual-VM? (and virtual-IO?)

The great advantage of this VMac would be that everything would run
in native machine code. It would be fast.

-Thanks, Chuck Houpt
         houpt@svax.cs.cornell.edu