Ulrich Weigand wrote:

> Well, a simple TODO list could be useful, of course.  Off the top of my
> head there's a few tasks that come immediately to mind:
> 
> - Start implementing proper exception handlers in the monitor; exceptions
>   must either be forwarded to the guest, handled by the monitor, or else
>   abort the VM.  Most interesting are of course the page fault and GPF
>   handlers ;-)
> 
> - Add a instruction analyzer/decoder to be used e.g. inside the GPF
>   handler to find out which instruction caused the fault.  (I have an
>   decoder already written for another project, this might be useful ...)
> 
> - Start virtualizing certain system instructions.  We'll probably start
>   with those that are used by the nullkernel; most important seem to be
>   LDT/GDT/IDT accesses.  This will require to set up a framework to
>   move the real monitor tables to the linear address expected by the
>   guest, protected by page access privileges, and maintain the 'shadow'
>   tables at some other location ...
> 
> - One prerequisite to the above will probably be to add some memory
>   management faciliy for use inside the monitor; this should probably
>   hand out memory one page at a time from a pool, and if this pool
>   runs empty, drop to the host and request another batch of pages.
> 
> - Start thinking about the framework for hardware emulation; this
>   could be done in parallel by running a purely ring-3 guest which
>   doesn't need much virtualization support, but could be used to
>   test hardware accesses ...


Yes, this is a great initial TODO list.  These things do have
a lot of intersect though.  Over time, items on the list will
be more modular, and easier to be done separately.

That's an interesting point about running a pure ring3 guest.
That wouldn't require the virtualization of protection level
transitions etc.  Could start by virtualizing one thing
at a time.  True, we could virtualize IO in ring3 code as
well.  It would be a bogus OS anyways, so might as well.
Good stuff.

More later, gotta run...

-Kevin

Reply via email to