2017-07-06 172 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