Operating system 从源代码构建达尔文16.6?

Operating system 从源代码构建达尔文16.6?,operating-system,bsd,darwin,xnu,Operating System,Bsd,Darwin,Xnu,简而言之,我需要为我的系统建立一个基础,因为它是在macOS上构建的,达尔文似乎是一个合乎逻辑的选择,因为它需要最少的移植工作。我知道你可以从苹果下载Darwin 8.0.1,完整的源代码树可以下载到10.0,但是v8太旧了,缺乏许多标准的现代功能(例如,密码系统不限制根用户10个字符,或者支持区分大小写的HFS+)。我曾尝试使用darwinbuild从源代码构建达尔文9/10/11/12,但由于各种服务器端原因,它总是失败 必须有某种方法来创建一个相当于香草达尔文16的图像。也许是拿一个现有的

简而言之,我需要为我的系统建立一个基础,因为它是在macOS上构建的,达尔文似乎是一个合乎逻辑的选择,因为它需要最少的移植工作。我知道你可以从苹果下载Darwin 8.0.1,完整的源代码树可以下载到10.0,但是v8太旧了,缺乏许多标准的现代功能(例如,密码系统不限制根用户10个字符,或者支持区分大小写的HFS+)。我曾尝试使用
darwinbuild
从源代码构建达尔文9/10/11/12,但由于各种服务器端原因,它总是失败

必须有某种方法来创建一个相当于香草达尔文16的图像。也许是拿一个现有的macOS拷贝,去掉所有封闭源代码的东西?构建Apple在提供的源代码,并用另一个BSD发行版的源代码替换操作系统运行所需的其他软件包?获取FreeBSD的现有副本并将内核替换为
XNU
?一定有办法。欢迎对我提出的想法提出任何想法。谢谢。

最后一个是给El Capitan(达尔文15)的,但是你可以跟着他们去Sierra(达尔文16)。在撰写本文时,可获得的最新资料来源是10.12.4,它并没有太过时

这可以让您了解macOS的大部分内核。它不能为您提供驱动程序堆栈,尤其是SATA/AHCI堆栈不是开源的,这可能是一个问题。(总有一天我会发布我们完整的virtio驱动程序堆栈,包括virtio blk和virtio scsi驱动程序,至少在Qemu/KVM中,您应该能够在没有SATA的情况下运行这些驱动程序。)


我不知道如何使用一个有用的用户区——macOS/OSX使用
launchd
作为其“init”过程,并且这个过程已经有几年的历史了。我不知道它是否需要一些调整才能在更新的内核上运行。

我认为这应该可以。我可能不得不调整
launchd
,因为这可能是不可替代的。据我所知,就SATA驱动程序而言,XNU在处理驱动程序模块方面大量借用了BSD内核,因此我可以简单地用一个通用的BSD SATA驱动程序(稍加调整)来替代它。最后,我将很快满足于10.12.4,几个月前的版本比我一直在尝试使用的2005版本要好得多。谢谢BSD和xnu的驱动程序堆栈完全不同。据我所知,苹果公司是白手起家创建了IOKit的。(它们甚至取代了NeXTStep驱动程序堆栈)存储驱动程序构建在IOStorageFamily之上,源代码是可用的。