1

Not your typical virtual machine!

I’m looking for a way to emulate a computer as close as possible.

Virtualization software like QEMU, VirtualBox and VMware or even EXSi give me the ability to emulate an operating system but not its hardware.

I’m looking for something more specific. I would like to emulate the operating system as well as a the computer and its hardware too.

I would like to have its graphic card, wireless card, USB drivers, sound card and whatever else is possible emulate it.

Does such technology exist?

EDIT: I don’t only want to emulate a sound card. But a specific sound card on a specific machine. Such as a “Dell Latitude” emulator.

9
  • Virtualization software does exactly this. It's emulating hardware, not an OS. Granted they don't give you a variety of hardware to choose from. – heavyd Mar 28 '15 at 2:00
  • @heavyd: Virtualization software doesn't really emulate the hardware, at least not the way that term is usually used. If it did, the OS and apps running in the virtual machine would run markedly slower than they would on the host hardware, since it's going to take at least several instructions in the emulator to read, decode, and perform the function of one instruction in the guest system. Virtualization by contrast is really a lot like task switching, but at a higher level. The code in the guest system executes on the real silicon. – Jamie Hanrahan Mar 28 '15 at 2:07
  • @jamie, that's true for the processor and in some cases a few other select pieces of hardware like disk drives, but most other hardware like sound cards,usb controllers and NICs are all emulated. – heavyd Mar 28 '15 at 2:31
  • Only to a point. The VM host can't "emulate" an Ethernet port or a sound card's line out or mic in jack the way it can a CPU. The virtual machine host presents a register-level interface that looks like that of, for example, some well-supported NIC. In the guest OS, the usual drivers detect and hook up to this "card". The VM host interprets what the drivers in the guest system do to the registers and turns around and tells the real NIC to send or receive packets, calls the guest driver's ISR when necessary, etc. Same for the sound card. USB is even easier because it's all message-based. – Jamie Hanrahan Mar 28 '15 at 3:22
  • Check out MAME, which uses a library of component emulators to virtually build a vintage arcade machine. – JDługosz Mar 28 '15 at 3:51
1

Yes. In general, this technology exists. Software emulation is used all the time, both to run legacy operating systems and applications on current hardware, and to aid in writing OSs and support code for new hardware before the hardware is available. The Windows port to Itanium was up and running on an emulator long before the Microsoft team had an actual Itanium to test on.

There’s an open source project called SIMH. I’m running it right now, a VAX running VMS 6.1 inside my Windows machine. Of course it is much slower than native x86 code, but it is at least 20 times faster than the VAX it's emulating. I don’t see that they have an x86/x64 implementation, but there might be one elsewhere.

Beware, though: the emulator has to emulate not just the CPU but all of the host-controller interfaces for every I/O device. That’s a lot to implement. I mightily doubt that you will find a package for SIMH that has not just the x86 but also the specific set of peripherals and BIOS of the Dell machine.

1

Only if you had someone bored enough to model all the hardware from scratch. There's a reason the modern virtual machine is an abstraction of a real machine in many ways, with a common emulated chipset (typically a 440 bx iirc), video card (typically a cirrus logic video card - consider when you last saw one), and specific NICs. They're typically old, simple and well understood.

If you had the them to reverse engineer every single component on a dell latitude laptop, sure. People have done it with game consoles, and nothing, even say an early NES is emulated perfectly. Its a work in progress, and its a specialised assemblage of hardware that does one thing. The benefit of completely emulating a specific system for general use just isn't there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.