У меня есть MacBook Pro (5,1) с 4 ГБ памяти под управлением 10A432 - но он работает под управлением 32-разрядного ядра.
Любые идеи, почему он не будет работать в 64-битном режиме, и как я могу это сделать?
У меня есть MacBook Pro (5,1) с 4 ГБ памяти под управлением 10A432 - но он работает под управлением 32-разрядного ядра.
Любые идеи, почему он не будет работать в 64-битном режиме, и как я могу это сделать?
В «Обзоре снежного барса» Джона Сиракузы он обсуждает 64-битный переход.
Короткая версия: из-за отсутствия «смешанного режима» 64-битное ядро требует 64-битных расширений ядра и драйверов.
Так как они еще не широко доступны, Apple выбрала 32-битную версию по умолчанию, чтобы избежать поломок.
Инструкция из статьи:
Для всех Mac с поддержкой K64 загрузитесь, одновременно удерживая клавиши "6" и "4", чтобы выбрать 64-битное ядро. Для более постоянного решения используйте команду nvram, чтобы добавить
arch=x86_64
в строкуboot-args
, или отредактируйте файл/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
и добавьтеarch=x86_64
в строку флагов ядра:
...
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64</string>
...
Чтобы переключиться обратно на 32-битное ядро, удерживайте клавиши "3" и "2" во время загрузки или используйте один из описанных выше приемов, заменив "x86_64" на "i386".
Согласно тому, что просочилось в MacRumors (поскольку официальные документы находятся под NDA) (Источник), только следующие компьютеры поддерживают работу с 64-битным ядром:
Только XServe по умолчанию используют 64-битное ядро.
Если вы запускаете компьютер с клавишами 6 и 4, вы запускаете 64-битное ядро или, если другой источник нарушает их NDA, вы можете отредактировать /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
добавить флаг ядра или сделать это в nvram.
В отличие от большинства других операционных систем, запуск Snow-Leopard в 64-разрядном ядре не дает больших преимуществ. В Windows и Linux вам нужно 64-битное ядро для запуска 64-битных приложений. В OS X вы можете запускать 64-битные приложения с 32-битным ядром.
Большинство людей, похоже, обеспокоены тем, что запуск 32-разрядного ядра в OS X ограничивает производительность или возможности их компьютеров, но на практике это не оказывает существенного материального воздействия. 32-разрядное ядро поддерживает запуск 64-разрядных приложений, и эти приложения имеют виртуальное 64-разрядное адресное пространство, которое ядром сопоставляется с 36-разрядным адресным пространством PAE, поэтому они ведут себя так же, как и на 64-разрядных. битовое ядро, только с более ограниченным использованием памяти и отображаемым в памяти вводом / выводом в используемый диапазон. То, как Apple обрабатывает это адресное пространство в 32-битном ядре, приводит к ограничению 32 ГБ для физической памяти, преодолев 32-битное ограничение 4 ГБ в PAE. С точки зрения производительности не так уж много пользы, если она вообще измерима с использованием 64-битного ядра с 32 ГБ памяти или меньше. Если вы хотите, вы можете самостоятельно протестировать некоторые тесты, когда принудительно загрузитесь с 64-битным ядром, удерживая клавиши 6 и 4 при запуске. Я сомневаюсь, что вы увидите и значительную разницу в производительности.
Другой проблемой является совместимость с драйверами устройств, расширениями ядра и прошивками устройства. Для драйверов устройств и расширений ядра они должны соответствовать разрядности, перекомпилироваться или переписываться (особенно если они имеют какую-либо сборку, какие части являются общими в этих типах кода). Изначально EFI от Apple выпускался только в 32-битной версии, а в последнее время некоторые модели имеют 64-битную прошивку. Чтобы операционная система могла взаимодействовать с микропрограммным обеспечением, битовая частота ядра и EFI должны совпадать. Взаимодействие с EFI - это выбор загрузочного диска или некоторые элементы управления питанием (например, если у вас более одной установки OS X и вам нужно выйти из спящего режима после разрядки батареи).
Так будет ли 64-битное ядро полезным? С практической точки зрения на практике это не так, и я вижу мудрость в том, что Apple использует 32-битные ядра для большинства машин, работающих под управлением Snow Leopard, для лучшей совместимости.
К сожалению, запутанная ссылка Джейсона скрыла очень полезную информацию:
ioreg -l -p IODeviceTree | grep firmware-abi
64-битные EFI Mac будут сообщать
| | "firmware-abi" = <"EFI64">
До выхода Snow Leopard мы не будем знать, какие системы будут поддерживать 64/32 битный режим ... Но все признаки того, что Snow Leopard будет прозрачным с поддержкой ядра ...
Но, увы, извините за то, что вы "унылый", если вы являетесь зарегистрированным пользователем Appleseed, форум Appleseed обсуждает, как перевести ядро в 64-битный режим. В противном случае, если вы получили Snow Leopard в другом месте, не беспокойтесь об этом.
Выпуск Snow Leopard не за горами ...
Это нормально, вот почему:
32-битный SL БУДЕТ запускать 64-битные приложения; SL совместим с 64 битами независимо от того, какую версию ядра вы загружаете
SL даже при загрузке с 32-битным ядром все равно сможет запускать 64-битные приложения и использовать более 4 ГБ ОЗУ
Причина, по которой вам нужно 64-битное ядро, заключается в том, что ядру нужно было обращаться к более чем 32 ГБ ОЗУ (следовательно, это по умолчанию на Xserve), или у вас есть 64-битный кекс (разработчики)
64-битные ядра не делают ваш компьютер волшебно быстрее; если вам не требуется более 32 ГБ ОЗУ (в любом случае, только в IOW только Xserve), вам это не нужно по причинам
установив 32-битное значение по умолчанию в потребительских системах и предоставив профессионалам и разработчикам опцию 64-битного ядра, Apple сохраняет максимальную совместимость и максимальную гибкость
64 бит - это в основном опция разработчика; они могут использовать его для тестирования своих новых 64-битных драйверов /kexts, чтобы убедиться, что они работают с 64-битным ядром
Перефразируя и цитируя Snow Leopard, по умолчанию загружается 32-битное ядро.