VM for OS development

Started by
11 comments, last by TimChan 18 years, 1 month ago
I wonder which VM is the best for OS development? it seems that it should be one of the three most popular VMs: VMware WS, Virtual PC and Bochs.
Advertisement
All of those should work equally well. Here's one more.
Probably Bochs is better/best, as it has a debugger, etc.
As far as I'm aware, of the three you listed only bochs is an emulator. I can't say for certain about VMWare, but I do know that Virtual PC does NOT emulate the full machine and it cannot run custom drivers. This leads me to believe that it cannot run kernel-mode code at all, and thus doesn't actually do much emulation at all.
You should definitely talk to the support of all the commercial products you consider so you can avoid buying something that would be useless to you.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Quote:Original post by Extrarius
As far as I'm aware, of the three you listed only bochs is an emulator. I can't say for certain about VMWare, but I do know that Virtual PC does NOT emulate the full machine and it cannot run custom drivers. This leads me to believe that it cannot run kernel-mode code at all, and thus doesn't actually do much emulation at all.
You should definitely talk to the support of all the commercial products you consider so you can avoid buying something that would be useless to you.

Virtual PC emulates a complete system, and can run many different PC operating systems.

Qemu and Bochs provide most of the functionality of the others, with Qemu having an advantage performance-wise.
Free Mac Mini (I know, I'm a tool)
I used Bochs, though I had some okay experience with Virtual PC.
Quote:Original post by igni ferroque
[...]Virtual PC emulates a complete system, and can run many different PC operating systems.[...]
But it can't run arbitrary drivers for arbitrary devices:
Quote:From Virtual PC 2004 Technical Overview
[...]Virtual PC does not support USB devices that require their own drivers. Virtual machines also don’t see the physical computer’s hardware video card as a native device, so you can't install your own video card drivers. In addition, SCSI devices are not supported in a virtual machine.[...]
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
That's because it is an emulator of (some of) the hardware, and therefore needs to provide a virtual layer for each type of device. Instead of passing-through the USB stack (which would piss off the host OS) it emulates it.
It can't be that difficult to make drivers that pass data through to the virtual machine considering how similar to that task some of the DDK examples are.

Anyways, makes it kinda useless if you want to write drivers (which is what I wanted it for)
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Quote:Original post by Extrarius
I can't say for certain about VMWare, but I do know that Virtual PC does NOT emulate the full machine and it cannot run custom drivers.


VMWare emulates the hardware. When I once wrote an UDMA driver for my own OS I noticed that VMWare emulated a PCI bus (Bochs did not provide emulation for PCI at this time) and the whole register set you would expect from UDMA drives.

This topic is closed to new replies.

Advertisement