9

У меня есть MacBook Pro (5,1) с 4 ГБ памяти под управлением 10A432 - но он работает под управлением 32-разрядного ядра.

Любые идеи, почему он не будет работать в 64-битном режиме, и как я могу это сделать?

6 ответов6

11

В «Обзоре снежного барса» Джона Сиракузы он обсуждает 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".

7

Согласно тому, что просочилось в MacRumors (поскольку официальные документы находятся под NDA) (Источник), только следующие компьютеры поддерживают работу с 64-битным ядром:

  • Mac Pro начала 2008 года (MacPro 3,1)
  • Начало Xserve 2008 года (Xserve 2,1)
  • MacBook Pro (15 "/17") (MacBookPro 4,1)
  • 2008 iMacs (iMac 8,1)
  • Unibody MacBook Pro (MacBook Pro 5,1 и 5,2)
  • Mac Pro начала 2009 года (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • Начало 2009 года Xserve (Xserve 3,1).

Только XServe по умолчанию используют 64-битное ядро.

Если вы запускаете компьютер с клавишами 6 и 4, вы запускаете 64-битное ядро или, если другой источник нарушает их NDA, вы можете отредактировать /Library/Preferences/SystemConfiguration/com.apple.Boot.plist добавить флаг ядра или сделать это в nvram.

6

В отличие от большинства других операционных систем, запуск 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, для лучшей совместимости.

5

К сожалению, запутанная ссылка Джейсона скрыла очень полезную информацию:

ioreg -l -p IODeviceTree | grep firmware-abi

64-битные EFI Mac будут сообщать

| | "firmware-abi" = <"EFI64">
1

До выхода Snow Leopard мы не будем знать, какие системы будут поддерживать 64/32 битный режим ... Но все признаки того, что Snow Leopard будет прозрачным с поддержкой ядра ...

Но, увы, извините за то, что вы "унылый", если вы являетесь зарегистрированным пользователем Appleseed, форум Appleseed обсуждает, как перевести ядро в 64-битный режим. В противном случае, если вы получили Snow Leopard в другом месте, не беспокойтесь об этом.

Выпуск Snow Leopard не за горами ...

0

Это нормально, вот почему:

  • 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-битное ядро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .