Friday, October 03, 2008

Reflections|Projections 2008

I'm going to be at Reflections|Projections 2008 this weekend. I'll be talking about the role virtual machine monitors can play in systems research, using VProbes as both an example and exploratory tool. It's an honor to have my name on the same web page as some of my fellow speakers. Curious parties should swing on by UIUC's1404 Siebel at 4pm Saturday.


Blogger Olga Ritchie said...

good luck to you =)

3:50 AM  
Blogger Rick Hodgin said...

I'm trying to find a tool that I can't find. I am looking for a way the host OS can query a virtual machine running and copy portions of memory, even update the guest OS's memory, most likely doing so through the VMware API.

The purpose I have is simple: I want to write a Hercules Graphics Adapter that monitors the guest OS's virtual memory between 0xb0000 and 0xb7ffff, its associated read/write ports, and then draw the screen on an external window in the host OS's desktop, either in text mode or graphics mode.

Possible? Please help.

I'm rick at tgdaily dot com. I've posted comments entitled "Hercules Monochrome Graphics in VMware Server" in three developer communities. I'll be happy to go wherever and do whatever, I just need to be pointed in the right direction. Thanks.

5:30 AM  
Blogger Keith Adams said...

Hi, Rick. There exists a debug stub for VMware that allows you to read and modify memory, but it will prevent you from trying to run your old game (:)) in a number of ways:

1. You want "guest physical" addresses for the range you're looking at, not "guest virtual." The gdb stub speaks the latter, though many sane OS'es always map the addresses identically.

2. You won't be able to catch a write or read at the very instruction boundary at which they happen, which looks like what you want. I am unfamiliar with the hercules card, but I know VGA, for instance, has side effects on reads and doesn't behave in a memory-like way.

3. Most damningly, VMware probably already has something interesting mapped there (VGA memory), and its BIOS told the OS about it. So, unless you wanted to write your own machine language program to write to your own hercules adapter stub, the software stack on top of your "card" would probably not work as you'd like.

While people have kicked around the idea of a device emulation SDK at times, at present there's no substitute for writing a big pile of C code. Have you considered investigating one of the open source alternatives, like VirtualBox? Some of those projects have such an active base of retro-computing enthusiasts that I wouldn't be surprised if they already had a hercules emulation option...

6:02 AM  

Post a Comment

<< Home