You have a good approach to solving problems. This is pretty much the path I took when I was thinking about how to virtualize a PC.
I sat down one night, and was thinking hey, I've been writing an x86 PC emulator for a few years now, I should be able to do this. It took me about 2 hours to figure out a fundamental scheme that should work. The rest is just hashing out the nuances and details.
After you figure out how to protect against an arbitrary instruction being executed, then you're on your way. This is the most important thing that the x86 chip doesn't do for you. Once you can protect against a set of instructions being run, you have chance to emulate them in the context of virtualization. And emulation of the CPU and IO devices has been done in bochs (http://www.bochs.com) for quite some time now.
There's ongoing discussion on
news://news.redhat.com/redhat.projects.freemware
You can also search comp.emulators.ms-windows.wine (using dejanews) for a discussion I had on how to do this awhile ago. I'll be rehashing some of this stuff and posting it to the newsgroup above, probably after I get back from Linux Expo.
You have a good approach to solving problems.
This is pretty much the path I took when I
was thinking about how to virtualize a PC.
I sat down one night, and was thinking hey,
I've been writing an x86 PC emulator for a few
years now, I should be able to do this. It
took me about 2 hours to figure out a
fundamental scheme that should work. The
rest is just hashing out the nuances and
details.
After you figure out how to protect against
an arbitrary instruction being executed, then
you're on your way. This is the most important
thing that the x86 chip doesn't do for you.
Once you can protect against a set of instructions
being run, you have chance to emulate them in
the context of virtualization. And emulation
of the CPU and IO devices has been done in
bochs (http://www.bochs.com) for quite some
time now.
There's ongoing discussion on
news://news.redhat.com/redhat.projects.freemware
You can also search comp.emulators.ms-windows.wine
(using dejanews) for a discussion I had on how
to do this awhile ago. I'll be rehashing some of
this stuff and posting it to the newsgroup above, probably after I get back from Linux Expo.
-Kevin Lawton
http://www.bochs.com
http://www.freemware.org
If you're interested in helping out with an
open source vmware clone project, check
out the freemware project at:
http://www.freemware.org
news://news.redhat.com/redhat.projects.freemware
Discussion on implementation is under way.
Thanks,
Kevin Lawton
http://www.bochs.com