4 ms·
The Hyper-V transition for Virtual PC is loosely covered in the next chapter: https://aarongiles.com/programming/war-microsoft/ https://aarongiles.com/programmi
by bangonkeyboard 8y ago
The Hyper-V transition for Virtual PC is loosely covered in the next chapter: https://aarongiles.com/programming/war-microsoft/ https://aarongiles.com/programming/war-microsoft/
How the standalone app originally worked: "In order to begin taking over the machine, we first had to gain access to kernel mode. To do this, we just identified an unused interrupt vector in the OS’s interupt vector table, and patched it to point to our own code—which lived in user mode. (Security experts are rightly freaking out at reading this.)"
- mikehollinger 8y agoThanks for the link. I worked on a processor simulator a while ago; it brought back memories of getting things running... You can do some really funky things when you implement enough of an MMU. When we showed a demo during one of our executive updates, we showed them that we could run one of our hypervisors inside the simulator and boot to an OS, which was impressive enough at the time. However - through the entire demo, what we didn't mention was that the simulator was actually _itself_ running inside an instance of the simulator, and that the entire demo was really: A Host laptop (Linux, little endian), running the simulator (of a different processor ISA, big endian), where we'd launched yet another Linux, running the simulator (of yet a different processor ISA), where we'd launched the hypervisor, which was hosting a Linux guest OS which we could SSH into. :-) At the end of the demo, we exited out of one of the shells, and then showed them that the entire demo was running inside the sim, and quietly proved how far we'd come. Yes, it was slow, but - it was mathematically correct, and simulating a processor for which the silicon hadn't yet been taped out. I'm really proud of that team. :-)