From 24C3 Public Wiki
|Name||Emulating an x86 Mac OS X|
A lot of projects try to get Mac OS X running on non-Apple hardware by modifying the kernel and/or adding kernel extensions to emulate the Binary Protection supplier. While this is nice for home use and arbitrary hacking, Apple explicitly forbids the use of Mac OS X on non-Apple hardware.
While the EULA clearly states, that running Mac OS X only once and only on Apple hardware is allowed, this does not exclude running it legally in a virtual machine on Apple hardware. This is basically the same approach that Mac-on-Linux took, just this time with the Intel based version of Mac OS X. Of course, as all the hardware Mac OS X runs on is virtual, the very same approach enables potential users to run it on non-Apple hardware as well.
All of the current Open Source Virtualization Projects I know of use Qemu as a basis of hardware emulation. This means, if Mac OS X runs on Qemu, it's no big deal getting it to run in KVM, VirtualBox or XEN.
So I took the modified Darwin bootloader created by David Elliot (thank you!) and implemented a simple multiboot loader in Qemu. Now the real fun part came in emulating current hardware, as Mac OS X expects an ICH-7 chipset (Qemu emulates a PIIX3), at least a Core Duo CPU (Qemu emulates an ancient Opteron) and the Binary Protection chip.
I will get into detail on the implementations on request. Please feel free to contact me if you want me to write about this.
I modified Qemu well enough to boot and run Mac OS X with disabled AppleIntelCPUPowerManagement.kext for at least a limited time. It is not 100% stable and eats up 100% CPU all the time. In its basic aspects it works though and everything from here is polishing.
As I had some free time, I ported this to KVM. It runs a lot better than in Qemu, does have less bugs and is faster.