I'm sure you're right about the trapping of interrupts, I/O calls and
other privileged instructions but I'm not so sure about emulation for
16 bit. The processor would need to switch modes and looking at the
exports from ntvdm.exe, with function like GetAX, SetAX and similar
routines for all other registers and flags, makes me think there is
emulation.
Ant, you can fool a lot of people talking like that, but you can't
fool me. You sound pretty foolish in fact. "makes me think" LOL
that's a good B.S. catchall phrase, as you can always back out and say
"it looked that way". As for virtual machine, why don't you use
Google?
http://en.wikipedia.org/wiki/Virtual_machine and see below.
In short, here is the killer sentence that refutes your position: "The
standard x86 processor architecture as used in modern PCs does not
actually meet the Popek and Goldberg virtualization requirements.
Notably, there is no execution mode where all sensitive machine
instructions always trap, which would allow per-instruction
virtualization."
Just like Loren Pechtel said.
RL
http://en.wikipedia.org/wiki/Virtua...nderlying_raw_hardware_.28native_execution.29
Emulation of the underlying raw hardware (native execution)
This approach is described as full virtualization of the hardware, and
can be implemented using a Type 1 or Type 2 hypervisor. (A Type 1
hypervisor runs directly on the hardware; a Type 2 hypervisor runs on
another operating system, such as Linux). Each virtual machine can run
any operating system supported by the underlying hardware. Users can
thus run two or more different "guest" operating systems
simultaneously, in separate "private" virtual computers.
The standard x86 processor architecture as used in modern PCs does not
actually meet the Popek and Goldberg virtualization requirements.
Notably, there is no execution mode where all sensitive machine
instructions always trap, which would allow per-instruction
virtualization.
Despite these limitations, several software packages have managed to
provide virtualization on the x86 architecture, even though dynamic
recompilation of privileged code, as first implemented by VMware,
incurs some performance overhead as compared to a VM running on a
natively virtualizable architecture such as the IBM System/370 or
Motorola MC68020. By now, several other software packages such as
Virtual PC, VirtualBox, Parallels Workstation and Virtual Iron manage
to implement virtualization on x86 hardware.
Intel and AMD have introduced features to their x86 processors to
enable virtualization in hardware.