Question

I am student working on an academic project - 'Porting KVM to MAC OS X'. I gathered a lot of literature regarding KVM, MAC OS X etc., But, I am still unclear as how to proceed. I checked Apple's Developer website which lists a hundred things to do for the porting process.I dont understand why Mac, having UNIX at its heart, needs a lot of changes to the source code, just to make it run. Also, I heard that Fink (and also macports) is a tool, using which I can port any Unix application to Mac OS X. Is that true? I checked Fink's website, where in I don't find any details which suggests that I can use Fink as a tool for porting. All I see is Fink (and also macports) is a package management system which has several linux applications and will run only those applications on Mac. KVM is not there on the list. So, again I am confused. Please suggest me, how to go about it? Just one step. Is the way Apple community suggesting, the only way? Please help.

Was it helpful?

Solution

I believe that you are looking at the wrong direction.

KVM is not an application. QEMU, the standard user interface for KVM, is mostly a front-end. The main part of KVM lies within the Linux kernel. You would have to provide an equivalent of that kernel code for OS X.

This is a completely different beast than application porting. There is no standard like POSIX within the kernel of an operating system - there is not even the guarantee of internal interface compatibility between different versions of the same kernel. The Linux and OS X kernels are completely different even in their basic design, since OS X uses a Mach-based kernel.

You will have to understand how both kernels work and find out what changes you need to make. Depending on how different the two kernels are, your task might even amount to a full re-implementation of KVM. You will also need a concrete understanding of how virtualization is implemented on modern CPUs and quite probably a more than passing knowledge of assembly and various low-level computer specifics.

OTHER TIPS

if you find something with the functionality you are looking for, it wont be a port of KVM.

the level that you would be abstracting doesn't even exist on the mac, the bottom layers are all different...

(Approximation)

lintel ->
BIOS : BOOTLOADER : LINUX_KERNEL : INIT

Macintel->
UEFI : MACH_MICROKERNEL : BSD_STUFF : LAUNCHD

both being POSIX you might expect more underpinnings to be the same, but really they are all different...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top