Vitualization support in hardware
Posted Dec 9, 2005 18:13 UTC (Fri) by giraffedata
In reply to: Windows support
Parent article: Xen 3.0 released
IBM System/360 was 40 years ago, and the first virtual machine implementation on top of it came a few years later. The very first S/360 couldn't do virtual machines because it lacked virtual memory.
I should clarify that when I say "virtual machine" here, I mean the kind where the virtual machine has the same architecture as the underlying real one, so you can run unmodified software meant for the real machine on the virtual one.
But S/360 wasn't designed with virtual machines in mind. What made S/360 amenable to virtualization where IA32 is not is simply the fact that it cleanly isolated user mode, which it did for other philosophical reasons. For example, on IA32 if a program in user mode tries to update a control register, it traps. But if it tries to read a control register, the CPU doesn't recognize a significant security exposure, so it succeeds. On S/360, the read of the control register traps too.
Traps for stuff that is shared by multiple processes are essential if you want the processes to see separate machines, because they give the hypervisor a chance to show a different version to each process.
It worked great, but wasn't as efficient as it could be. After the market for IBM's virtual machine operating system took off (and not because people liked virtual machines; just because it was IBM's best option for an interactive computer system), lots of stuff was architected into future CPUs of the S/360 line specifically to help with virtualization.
to post comments)