0

我是从事学术项目的学生 - '将 KVM 移植到 MAC OS X '。我收集了很多关于 KVM、MAC OS X 等的文献,但是,我仍然不清楚如何进行。我查看了 Apple 的开发者网站,其中列出了移植过程中要做的一百件事。我不明白为什么 Mac 以 UNIX 为核心,需要对源代码进行大量更改才能使其运行。另外,我听说Fink(还有macports)是一个工具,使用它我可以将任何 Unix 应用程序移植到 Mac OS X。这是真的吗?我查看了 Fink 的网站,在那里我没有找到任何表明我可以使用 Fink 作为移植工具的详细信息。我所看到的只有Fink(还有macports) 是一个包管理系统,它有几个 linux 应用程序,并且只能在 Mac 上运行这些应用程序。KVM 不在列表中。所以,我再次感到困惑。请建议我,如何去做?只需一步。苹果社区建议的方式是唯一的方式吗?请帮忙。

4

2 回答 2

1

我相信你看错了方向。

KVM 不是应用程序。QEMU是 KVM 的标准用户界面,主要是前端。KVM 的主要部分位于 Linux 内核中。您必须为 OS X 提供等效的内核代码。

这是与应用程序移植完全不同的野兽。在操作系统的内核中没有像 POSIX 这样的标准——甚至不能保证同一内核的不同版本之间的内部接口兼容性。Linux 和 OS X 内核即使在它们的基本设计上也完全不同,因为 OS X 使用基于Mach 的内核。

您将必须了解这两个内核的工作原理并找出您需要进行的更改。根据两个内核的不同,您的任务甚至可能相当于完全重新实现 KVM。您还需要具体了解虚拟化是如何在现代 CPU 上实现的,并且很可能不仅仅是关于汇编和各种低级计算机细节的知识。

于 2013-02-10T20:23:16.943 回答
0

如果您找到具有您正在寻找的功能的东西,它不会是 KVM 的一个端口。

你要抽象的层次在mac上甚至都不存在,底层都是不同的......

(近似)

门楣->
BIOS:引导加载程序:LINUX_KERNEL:初始化

Macintel->
UEFI:MACH_MICROKERNEL:BSD_STUFF:LAUNCHD

两者都是 POSIX,您可能期望更多的基础是相同的,但实际上它们都是不同的......

于 2013-02-07T16:07:47.623 回答