4 ms·
Missed an opportunity to render it like this: prEvious On a more serious note, what's the difference between a project like this and virtualization? Is there o
by ftio 8y ago
Missed an opportunity to render it like this: prEvious
On a more serious note, what's the difference between a project like this and virtualization? Is there one? Once this is completed, could it be run in virtualization software, or is it not that kind of thing?
- snazz 8y agoEmulation replicates the hardware of the machine being emulated in as many details as are necessary to run the program, while with virtualization, the guest OS runs directly on the host hardware, with hardware and software barricades that allow it to run simultaneously with the host OS (VT-d and VT-x are the host CPU features required). Virtualization doesn’t work when the guest OS was built to be run on a different architecture, which is often the case for retro computing projects. See https://stackoverflow.com/questions/6044978/full-emulation-vs-full-virtualization https://stackoverflow.com/questions/6044978/full-emulation-v...
- ftio 8y agoExcellent, thank you! This really clears it up. One of the comments on the top answer added an example that unlocked it for me intuitively: “in VMWare you can have a virtualized CD drive which is connected to the real physical CD drive, or you can have an emulated CD drive that is backed by an ISO image on the host.” Virtualization = sharing real hardware. Emulation = software pretending to be real hardware.
- eschaton 8y agoVirtualization doesn’t require VT-x or VT-d, those are just performance enhancement mechanisms for virtualization on 80386-derived CPUs. Most other 32-bit and 64-bit CPU architectures have supported virtualization reasonably well from the start. The biggest popularizer of the technique was the IBM System/360. For a microprocessor example, the Motorola 68000 almost supported virtualization, and the 68010 corrected the one flaw—insufficient exception context to restart an instruction—that prevented it. That’s why even though the personal computer market didn’t touch it, workstations migrated to 68010 as soon as it was available. Of course there are a variety of ways to make virtualization easier on the implementer and more efficient to use. Intel’s enhancements really shine there. But they’re not required, just useful.
- m_mueller 8y agowould you agree that emulation can be put as a subset of virtualization, as the terms are used today?
- jki275 8y agoEmulation and virtualization are two very different concepts. Every OS you virtualize must be supported by the base processor in the hardware. That is not so in an emulation, where another architecture can be supported. See the differences between qemu and virtualbox.
- m_mueller 8y agoThis is in contradiction to eschaton, and I agree with GP in this regard: pass-thru of CPU instructions to host hardware is just an optimization, not a defining feature of virtualization. There were VM hosts before processors supported this, and back then I think that virtualization == emulation.