将UNIX应用程序移植到MAC OS X.

时间:2013-02-06 17:19:28

标签: macos unix porting kvm fink

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

2 个答案:

答案 0 :(得分:1)

我相信你正在寻找错误的方向。

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

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

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

答案 1 :(得分:0)

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

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

(近似)

门楣 - >
BIOS:BOOTLOADER:LINUX_KERNEL:INIT

Macintel->
UEFI:MACH_MICROKERNEL:BSD_STUFF:LAUNCHD

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