Combuster wrote:
In addition QEMU doesn't actually emulate an i386. It emulates a copy of your computer's CPU.
That's definitely not true. You can get something quite similar to your host CPU if you use KVM and specify an explicit
-cpu host.
By default, however, you don't use KVM and unless you specify something else you the the
qemu32 or
qemu64 CPU type, depending on whether you're running qemu-system-i386 or qemu-system-x86_64. In any case, what you get by this emulation is something that is close enough to some generic x86 CPU that guests work with it, but it's by far not 100% accurate with respect to enabling the right features for the selected CPU model: Even if you specify
-cpu 486, your guest will probably support more instructions than any 486 ever did. The CPU setting mostly affects the CPUID result, and for some of the flags it's actually their presence that enables the corresponding functionality, but there are also cases where CPUID wouldn't advertise the feature any more, but it would still be working.
Anyway, it's rather rare that code relies on CPUs
not supporting a given feature, so this shouldn't be a serious problem.