ftp://ftp.freemware.org/pub/freemware/fmw-19991212c.tar.gz


Ulrich, here's my latest doings.  It's the mods I made to
make the monitor/guest use it's own linear space, detached
completely from the host.  Plus, I reintegrated the newer
mods since I last got a snapshot from CVS.  Not sure
if it matters, but any file in any of the CVS dirs is
not up to date.

I did disable a few things with respect to the new
emulation stuff, but the new code is all there.

Some notes and areas that need some work.  Anyone willing,
go for it.

  - Feel free to go through host-linux.c and
    actually support multiple VMs.  I just hardcoded vm[0]
    for testing.

  - All the pages that the host allocates for the VM are now
    in vm[i].pages.  We should go through host-linux.c and
    see if they are always unallocated/cleared properly under
    conditions where you run the user code multiple times
    without rmmod/insmod'ing the kernel driver.

  - We've got to handle return error codes from the kernel
    better in user.c.  I have some small mods to disable
    some code in user.c.  Look for "+++".  Once we clean
    up the return code handling, can re-enable code or
    modify it.

  - I added a new file kernel/nexus.S.  I hand coded some
    relocatable assembly code/data structures which effect
    the transition from host<-->monitor/guest.  You have
    to be really be aware of what's going on in there to
    make changes to it, lest you'll find yourself punching
    the reset button.

    If anyone is interested, I'll make some graphs to show
    how the transitions between linear address spaces work.
    Could throw some GIFs in a docs directory as well.
    Or if anyone else wants to, go nuts. :^)

  - I need to go through monitor.c and clean it up.  I use
    a bunch of pointers in there to get to structures in
    the file nexus.S.  I really should have one pointer to
    a structure which maps into the assembly data structures.
    That will be a lot cleaner.  I'll do this one.  monitor.c
    is currently kinda messy.

  - As I mentioned before, it would be helpful to have some
    benchmarks to see what kind of performance hit we take
    switching back/forth between host/monitor+guest.
    It's not real friendly to the paging TLB cache. :^)

-Kevin

Reply via email to