2017-07-06 174 views
1

将简洁,我需要一个基地,我的系统,因为它是建立在MacOS达尔文似乎是合乎逻辑的选择,因为这将需要最少的移植工作。我知道你可以从Apple下载达尔文8.0.1,并且完整的源代码树可以使用到10.0,但是v8过于陈旧,并且缺少许多标准的现代功能(即不限制root用户的密码系统到10个字符,或者支持区分大小写的HFS +)。我已经尝试使用darwinbuild从源代码构建Darwin 9/10/11/12,但由于各种服务器端原因,它总是失败。从源代码构建达尔文16.6?

必须有某种方式来创建一个香草达尔文16图像的等价物。也许采取一个macOS的现有副本和剥离所有封闭源的东西?构建Apple在Apple Open Source Repository上提供的源代码,并用操作系统所需的其余软件包替换来自另一个BSD发行版的源代码?取一个FreeBSD的现有副本并用XNU代替内核?必须有某种方式。对我提出的想法有任何想法或想法都是值得欢迎的。谢谢。

回答

1

最后xnu build instructions是埃尔卡皮坦(达尔文15),但你也许可以跟随他们塞拉利昂(达尔文16)。本文撰写本文时提供的最新源代码为10.12.4,并不过时。

这让你最航运的MacOS的内核。它不会为您提供驱动程序堆栈 - 尤其是SATA/AHCI堆栈不是开源的,这可能是一个问题。 (其中有一天我会发布我们的完整virtio驱动程序堆栈,包括virtio-blk和virtio-scsi驱动程序,您至少应该能够在Qemu/KVM中无SATA驱动器运行。)

I没有关于得到一个有用的用户空间去的想法 - 的MacOS/OSX使用launchd作为其“初始化”的过程,而last published source code for that一些岁。我不知道是否需要进行一些调整才能使它在更新的内核上工作。

+0

我认为这应该工作。我可能不得不调整'launchd',因为这可能无法替代。就SATA驱动程序而言,据我所知,XNU在处理驱动程序模块方面从BSD内核中借了很多,所以我可以简单地用一个通用的BSD SATA驱动程序(稍作调整)来替代它。最后,我会以10.12.4的心跳来解决问题,几个月的时间比我在2005年发布的版本要好得多,直到这一点。谢谢! –

+0

BSD和xnu的驱动程序堆栈完全不同。据我所知,Apple从零开始创建了IOKit。 (他们甚至取代了NeXTStep驱动程序堆栈)存储驱动程序构建在IOStorageFamily的顶部,可用的源代码。 – pmdj