我是一名从事学术项目的学生-"将KVM移植到MAC OS X"。我收集了很多关于KVM、MACOSX等的文献,但我仍然不清楚如何进行。我查看了苹果的开发者网站,上面列出了移植过程中需要做的一百件事。我不明白为什么以UNIX为核心的Mac需要对源代码进行大量更改才能运行。此外,我听说Fink(以及macports)是一个工具,使用它我可以将任何Unix应用程序移植到Mac OS X。这是真的吗?我查看了Fink的网站,在那里我没有发现任何细节表明我可以使用Fink作为移植工具。我只看到Fink(以及macports)是一个包管理系统,它有几个linux应用程序,并且只在Mac上运行这些应用程序。KVM不在列表中。所以,我再一次感到困惑。请建议我,怎么做?只需一步。苹果社区建议的方式是唯一的方式吗?请帮忙。
我认为你看错了方向。
KVM不是应用程序。QEMU,KVM的标准用户界面,主要是前端。KVM的主要部分位于Linux内核中。您必须为OSX.提供与该内核代码等效的代码
这与应用程序移植完全不同。在操作系统的内核中没有像POSIX这样的标准——甚至不能保证同一内核的不同版本之间的内部接口兼容性。Linux和OSX内核甚至在基本设计上也完全不同,因为OSX使用了基于Mach的内核。
您必须了解这两个内核是如何工作的,并找出需要进行哪些更改。根据这两个内核的不同,您的任务甚至可能相当于KVM的完全重新实现。您还需要具体了解虚拟化是如何在现代CPU上实现的,很可能还需要了解组装和各种低级计算机细节。
如果您找到了具有您正在寻找的功能的东西,那么它不会是KVM的端口。
你将要抽象的级别甚至不存在于mac上,底层都不一样。。。
(近似)
过梁->
BIOS:BOOTLOADER:LINUX_KERNEL:INIT-
Macintel->
UEFI:machi_MICROKERNEL:BSD-STUFF:LAUNCHD-
两者都是POSIX,你可能会期望更多的基础是相同的,但实际上它们都不同。。。