I support some software that has to run (and therefore, has to be checked) on several different versions of
Windows. And in the past this was a very serious problem because I had to have several bootable configurations lying around just for testing. (And you think that "dual booting" is hard in Linux...)
Anyhow...
qemu, which I run with the
qvm86 kernel-module (some of the time), handles this requirement very well. The various test-environment "hard drives" are simply Linux files.
Speed, in an emulation environment (with kernel-module assist), is certainly slower than native -- and the lag is most noticeable when updating the screen. But it's very acceptable, especially if your machine is fast and can therefore absorb the delays. I'm doing lots of compiles and regression-tests, all of user-mode Windows programs. A single computer can now "change its spots" several times during the course of an overnight test... something I could never do before.
Incidentally, one reason why I like
qvm86, versus the (closed-source!
)
kqemu module, is that I really don't want to try running
privileged instructions in emulation-mode at all. I don't like running closed-source software that dives into the internals of my system, and I've already made use of the ability to test-and-debug the qvm86 layer.