EmulatingOSX

From 24C3 Public Wiki

Jump to: navigation, search
Project
Name Emulating an x86 Mac OS X
Coordinator Alexander Graf
Location Aquaville
Contact

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.

Contents

Ambition

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.

Approach

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.

Status

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.

Get it

Are you eager enough to try out Alpha software? Good. Take a look at the Project Site. You will find the sources there and can learn how to build them on my Workshop.

Personal tools