Slashdot Mirror


Pointers for Developing x86 Virtualization?

josh asks: "For my next project, I've decided I want to do something related to x86 virtualization (the way VMware does it or Plex86 not Xen/Bochs/etc.) but I really don't know where to start. Googling hasn't been helpful (just look at the results if you don't believe me). Are there any resources for learning about this kind of x86 virtualization? I know virtual 8086 mode wouldn't work, but without that what advantage does something like VMware have over something like Bochs? Are there any F/OSS projects aimed at something along the lines of my thinking? Please enlighten me with any references and resources you might have. Thanks!"

2 of 41 comments (clear)

  1. Why do you care? by hak1du · · Score: 3, Insightful

    Virtualizing the Pentium is a lot of tedious work because the Pentium just wasn't designed for it. You won't be learning much about virtualization in general, just a lot of Pentium-specific tricks. Why bother with that?

    Sooner or later, Intel is going to make the Pentium virtualizable in a more straightforward way. Until then, I'd just stick with one of the available solutions (including Plex86).

  2. Re:Read More Slowly [OP] by Anonymous Coward · · Score: 1, Insightful
    plex86 only runs Linux under its VM. I assumed that the implementation for something like this is different from the implementation of a full x86 VM monitor. Is the code similar enough to warrant perusal, or will it just hopelessly confuse me even more? Thanks for your help! -- Josh

    Plex86 is essentially a full x86 virtualization, with the exception of a few difficult corner cases that were easier to avoid (by patching the guest Linux kernel) than emulate. The same modifications could be made for any Free Software operating system, so the only reason for full virtualization would be to run proprietary OSes. The architecture of Plex86 is similar to that of proprietary x86 virtualizers: a kernel module and a user-mode program working together.