Обновление 19 Апр 2015:
после двух лет все еще очень мало интереса в этой сфере. Однако, сообщество Хакинтош по-прежнему очень активный, что означает, что один из немногих с открытым кодом не-Apple загрузчик, способный загрузить xnu (Хамелеон и вилки) при этом сохраняется и может загрузиться Йосемити. Есть также истории успеха загрузки OS X Yosemite в QEMU. Кроме того, благодаря (теперь Apple, занятых) разработчик, который идет за ручку winocm, то есть ARM порт ядра xnu. Она была самым активным разработчиком, которого я знаю в этой области.
есть и продолжение Амит Синг Мак ОС Х ВКУ в ближайшее время. Я обычно не люблю упоминать личные страницы людей, однако сервер блога со всей информацией кажется немного ненадежным, поэтому смотрите информационное окно на ameaijou страница Twitter.
мне удалось создайте цепочку инструментов разработки Apple (самостоятельный хост, однако "Darwin SDK"также был портирован на Linux). Я считаю, что ОС Darwin все еще можно построить с нуля - все, что нам может не хватать,-это некоторые Kexts с открытым исходным кодом. Смотрите это пространство, и если вы знаете, как вызвать интерес, дайте мне знать! :)
краткие ответы на этот вопрос:
технически: Да
фактически: No*
С Бинарными Читы: возможно, но и не легально (непроверено)
С бинарными Читы для общего оборудования: как указано выше (непроверено)
*если вы не работаете в Apple (*прочищает горло в общем направлении Калифорнии*)
более длинный ответ:
это будет довольно длинной. Я предложите кофе. Если у вас нет времени/желания читать все это, вы можете перейти к "заключительные замечания".
Практически Не Возможно (Нет):
к сожалению, Apple отозвала исходный код для слишком многих необходимые Kexts Дарвина и двоичные файлы, чтобы сделать компиляцию ОС Darwin исключительно из источника возможно. Это все еще технически возможно (вы можете написать исходный код самостоятельно, чтобы исправить его должным образом), но у меня просто нет время, навыки или склонность к этому (и я сомневаюсь, что сообщество краудфандинга будет очень интересно).
неудивительно, что ключевым переломным моментом был выпуск Darwin 10, который привел xnu в x86_64-land. Большинство необходимых источников были до этого, но были только x86. С течением времени значение "открытого исходного кода" Apple, похоже, переместилось в "открытый исходный код только на оборудовании Apple", поскольку KEXTs от Apple теперь зависит от аппаратного обеспечения, поэтому даже если вы может получить все и работает (см. Ниже) вы все равно будете ограничены аппаратным обеспечением Apple.
Технически Возможно (Да):
однако не все потеряно. Руководство LFS действительно пригодилось, и, конечно же, вся необходимая настройка может быть проведена без фактического создания ОС Darwin. Кроме того, представленные шаги дают вам почти точную дорожную карту пути вперед, минус ядро, KEXTs и загрузчик. Мне удалось решить загрузчик хотя проблема (по крайней мере для устройств Apple).
Если вам интересно, вот полный обзор того, что вам придется делать:
- стереть раздел (предпочтительно 8 ГБ или больше) на диске (внутренний или внешний не имеет значения) и отформатировать его как Mac OS Extended (Журналируемый) (HFS+).
- убедитесь, что у него есть таблица разделов GUID (GPT), и что при этом у него есть раздел EFI. Самый простой способ это с помощью дисковой утилиты Apple, но вы можете сделать это в командной строке, если вы хотите (есть учебники в другом месте о том, как это сделать). Важным моментом является то, что при запуске
distil list diskNsM
следующая информация должна быть правильной:
Тип Раздела: Apple_HFS
OS можно установить: Да
Носитель Только Для Чтения: No
Том Только Для Чтения: No
теперь следовать руководству LFS (с варианты адаптации.)
вставить 'DFS= / Volumes/DarwinOS' (без кавычек и с фактической точки монтирования, очевидно) в .bashrc
и .bash_profile
создать каталог пользователя (chown
это на 0:0 в самом конце):
sudo mkdir-v $DFS/usr
Enter root
:
sudo su -
сделать источники каталог и установить липкий бит:
mkdir-v $DFS / sources # убедитесь, что $DFS определен, если нет, переопределите его.
chmod-v a+wt $DFS / sources
сделать директорию tools и сделать символическую ссылку на нее, чтобы мы могли легко добавить ее в $PATH позже (все еще в root
кстати):
mkdir-v $DFS / tools
ln-sv $DFS /tools/
выход из системы # отпуск root
скачать исходный код всех пакетов, которые вы хотите. Это, конечно, где вы застряли. Всех необходимых там нет. (Кстати, я предпочитаю GNU binutils
в любом случае.)
предполагая, что вы действительно можете загрузить все, что вам нужно, давайте нажмем.
сделайте обездоленного пользователя специально для DFS (предложено LFS):
sudo dscl . -создавать /Пользователи/ОРС
sudo dscl . -создание /пользователи/ОРС UserShell /бин/Баш
sudo dscl . - создать/Users / LFS RealName"LFS DFS"
sudo dscl . -создать /пользователи/ОРС уникальный идентификатор "2070" # все, что вам нравится
sudo dscl . - создать/Users / lfs PrimaryGroupID 20 # по умолчанию 'staff'
sudo dscl . -создание /пользователи/NFSHomeDirectory /пользователи ОРС/ОРС
sudo dscl . - passwd /Users/lfs DFS # снова к вкус.
Примечание Вы должны сделать homedir нового пользователя вручную на Mac:
sudo mkdir / пользователи / lfs
sudo chown-R lfs: персонал / пользователи/lfs/
разрешить новому пользователю доступ к источникам и инструменты
sudo chown-v lfs $DFS / tools
sudo chown-v lfs $DFS / sources
Log in:
su-lfs
пароль: ДПП
выполните следующую команду для очистки среды (от LFS):
кошки > ~/.файл << "ВФ"
Эхо " вход в чистую окружающую среду..."
exec для ОКР -я дома=$домашняя срока=$срок от PS1='\u:\из ж\$ ' /Бен/Баш
EOF
теперь выполните следующую команду (см. LFS для того, что он делает, если вы не уверены):
кошки > ~/.bashrc следующее << "ВФ"
set +h
umask 022
DFS= / Volumes/DarwinOS # как ранее
LC_ALL=POSIX
LFS_TGT=$(uname-m)-dfs-darwin1242 # посмотрите внутри gcc/configure для возможностей!
путь=/инструменты/ОГРН:/ОГРН:/usr/Бен # Примечание симлинк из Перед
экспорт ЗНАЧЕНИЕ LC_ALL LFS_TGT ПУТИ ОРС
echo ".сценарий bashrc и полной. Среда готова."
EOF
GCC /configure
достаточно гибкий. Попробовать применение grep к интернет *-
узор, или просто запустить gcc -v
, чтобы увидеть, как ваш хост-машина была настроена и скопировать это.
- теперь выйдите из системы пользователя lfs и войдите обратно. Теперь у вас должна быть чистая окружающая среда.
- все теперь происходит внутри пользователь lfs. Вы заметите, что я был немного ленив в преобразовании только половину символов " LFS "в символы "DFS". Извините за это, но вы поняли идею.
хорошо, теперь к гипотетическому разделу.
отсюда это довольно хорошо будет стандартная процедура LFS: извлечение источников, сборка, установка, тестирование, удаление источников. Примечание. 2 прохода binutils, GCC и Glibc по-прежнему необходимы, но вы также должны иметь рабочую копию libc++.1.dylib
- и вам нужно это сделать за 2 прохода тоже. Вы можете увидеть проект LLVM libcxx страница для немного больше деталей. После компиляции вы можете поместить его в /usr/lib
. Вам нужно скомпилировать и установить ядро xnu (есть несколько учебников вокруг интернета для того, как это сделать), а затем установить KEXTs. Даже если бы все необходимые KEXTs были доступны, вам все равно нужно было бы поместить их в .пакет kext вручную. Опять там учебники для рук-создать КЕКСТ на командная строка.
последний бит делает систему загрузочной. Для этого необходимо выполнить следующую команду:
"$ДПП выполнить/sbin/благослови" --папка "$крепление/система/библиотеки/CoreServices" --bootefi параметром --verbose
на самом деле место, чтобы благословить на самом деле не имеет значения. Эта папка просто стандартна для Apple.
в любом случае, предполагая, что ядро и KEXTs были в нужных местах, у вас были правильные копии dyld
,launchd
и т. д. и boot.efi
работал правильно, система должна работать и загрузиться!
обратите внимание, если вы действительно хотите, чтобы вы могли запустить faux -launchd
это просто скрипт для запуска в командной строке - это PureDarwin Nano делает.
опять же, непременно напишите KEXTs и двоичные файлы сами, если хотите - it is технически возможно. Просто позвони мне, когда будешь сделанный.
С бинарными чит-кодами: возможно, но и не легально (непроверено)
так почему бы вам просто не вырвать двоичные файлы, KEXTs и необходимые файлы из Mountain Lion, благословить громкость и уйти? Ну, ты, наверное, можешь. Но для этого Вам также нужна лицензия. Кроме того, если вы сделаете это, вы просто в основном сделали копию Mountain Lion. Разве это не к делу относится?
С бинарными Читы для общего оборудования: Как указано выше (непроверено)
это довольно много is проект OSx86. Опять же, вы в значительной степени сразу сталкиваетесь с юридическими проблемами. Нет никаких сомнений в том, что эти последние два метода, безусловно, возможны - тот факт, что вы можете запускать Mountain Lion на универсальном оборудовании, является доказательством этого, - но весь смысл этого состоял в том, чтобы законно скомпилировать свою собственную ОС Darwin из источника.
сторону Примечание
вы, возможно, заметили, что я сознательно избегал чего-либо 32-битного. В мире, где все основные ОС доступны в 64-битной версии, нет особого смысла компилировать 32-битную. Apple действительно предоставила образы дисков Дарвина (вплоть до Дарвина 9) здесь. Они отлично работали на моем окне.
Заключение
я думаю, в конце концов, люди покупают Mac не для Дарвина, они покупают Mac для Aqua. В результате поддержка Darwin как автономного продукта с открытым исходным кодом постепенно снизилась до такой степени, что это действительно просто символический жест для сообщества с открытым исходным кодом. Другой слегка ироничный факт заключается в том, что для того, чтобы узнать об этом много, вам нужно перейти прямо в проект OSx86, который точно не санкционирован (мягко говоря). Даже тогда вокруг не так много информации. PureDarwin - отличное место для начала, и Джонатан Книга Левина неоценимая справка для всех вещей xnu.
это был чрезвычайно образовательный год работы, и я почти так же счастлив, зная, как это сделать, как я на самом деле это делаю. Я собираюсь прекратить работу над ним на каком-то этапе, хотя и сейчас это время. В качестве последнего бесполезного крика Apple, было бы слишком много просить, чтобы иметь еще одну сборку Дарвина, когда вы выпускаете Mavericks?