▲ | jacquesm 4 days ago | ||||||||||||||||||||||
Oh, this was very well timed, thank you. Not because I'm installing Windows 98 (over my dead body) but because I'm trying to get a little operating system I wrote in the early 90's to work in Qemu or VirtualBox. And the article contained a nice hint about the emulation hardware. It is interesting how what worked flawlessly on the hardware of the time is almost impossible to get to work on these emulators, the fidelity is quite low. But bit by bit I'm making progress in figuring out where the differences are and how to work around them. I've got a basic self-hosted development system working now with all of the data in a ram disk. The floppy, keyboard and VGA screen all work, now I need to figure out why the harddrive controller keeps disappearing. Oh well, the night is young ;) Thank you for posting this! It really moved the needle in what already was a super long debug session. | |||||||||||||||||||||||
▲ | rwmj 4 days ago | parent | next [-] | ||||||||||||||||||||||
It's true that qemu doesn't aim for fidelity. (Despite the name, qemu isn't exactly an emulator!) The development efforts upstream are almost all about getting modern OSes to work well, and quite often the OS is aware that it's running on qemu and adjusts itself - most notably with the installation of virtio drivers, but also in smaller ways. The Linux kernel has over 1000 references to QEMU in its source code. Also if you look at qemu's device emulation, that's usually "done" when it can run modern operating systems. Qemu doesn't try hard to emulate the entire IDE or SCSI command set in every detail, or every aspect of old hardware. Another thing is that qemu is not cycle-accurate at all. Instruction and device timings will be wildly different from real hardware, especially if using TCG. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | thesnide 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||
If you need to emulate (and not virtualize) have a try at pcem. It's a marvelous piece of engineering which is slower than others, but that's the price to pay for accuracy. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | AshamedCaptain 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||
The differences between the different "hardware of the time" are larger than between any of the emulators you mention. This is not consoles where the hardware is exactly the same over and over. PC hardware is mostly poor clones of poor clones of the original under-specified hardware and even software emulators of such clones whose only thought of compatibility amongst each other is "does Windows boot already?" (and most specially in the 98 era) . Go and ask Linux... In fact, (having worked for quite a while in supporting decades old enterprise software) my experience with most PC virtualizers and emulators is that they're ridiculously accepting of errors that will most definitely trigger random behavior in (at least some) real hardware. | |||||||||||||||||||||||
▲ | iberator 4 days ago | parent | prev [-] | ||||||||||||||||||||||
There is a superior emulator: x86box |