It's honestly the only good resource i've found on what really makes this work.Ī quick bird's eye view summary to get your bearings: ![]() So if(exitreason = CPUID_EXIT) cpuid_handler() įor a good book you can look up "Hardware and software support for virtualization". And then you have a handler in your vmexit table, which is exactly like a syscall table. Each chip has it's differences, but it's effectively just like a syscall. But that's really painful and tedious, so you rely on the CPU to support it. You could virtualize it by just running it like a program. The hypervisor does this for you by managing which resources go to where. When you're virtualizing, you pretty much just need to manage hardware. It gets a bit more complicated with architecture differences like memory configurations. ![]() ![]() ![]() So there may be an instruction in my custom chipset called "Add4", which adds 4 inputs. Emulations is pretty much literally just mapping instructions between processors.
0 Comments
Leave a Reply. |