Почему делает мой Mac OS X 10,6 ядер, выполненных в 32-разрядном режиме?

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

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

9
задан 09.08.2011, 19:08

6 ответов

В Обзоре Jon Siracusa Snow Leopard он обсуждает 64-разрядный переход.

Tiger Leopard Snow Leopard

Короткая версия: потому что нет никакого 'смешанного режима', 64-разрядное ядро требует 64-разрядных Расширений ядра и Драйверов.

Поскольку это еще не широко доступно, Apple приняла решение принять значение по умолчанию к 32-разрядному, чтобы не повреждать много вещей.

Инструкции от статьи:

Для всех K64-способных Mac загрузитесь в то время как удержание "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".

11
ответ дан 07.12.2019, 13:07

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

  • В начале Mac 2008 Pro (MacPro 3,1)
  • В начале Xserve 2008 (Xserve 2,1)
  • Профессионалы MacBook (15 дюймов/17") (MacBookPro 4,1)
  • 2 008 iMac (iMac 8,1)
  • Цельные профессионалы MacBook (MacBookPro 5,1 и 5,2)
  • В начале Mac 2009 Pro (MacPro 4,1)
  • 2 009 iMac (iMac 9,1)
  • В начале Xserve 2009 (Xserve 3,1).

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

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

7
ответ дан 07.12.2019, 13:07
  • 1
    я определил это также, вот почему я поместил свой типовой кодекс. – Chopper3 15.08.2009, 21:22

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

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

Выпуск Snow Leopard является правильным за углом...

1
ответ дан 07.12.2019, 13:07

Это хорошо, вот то, почему:

  • SL на 32 бита запустит приложения на 64 бита; SL составляет 64 бита, совместимые, независимо от которой версии ядра Вы загружаетесь

  • SL, даже если загруженный с ядром на 32 бита все еще сможет запустить приложения на 64 бита и обратиться больше чем к 4 ГБ RAM

  • причина Вам было бы нужно ядро на 64 бита, состоит в том, если ядро должно было обратиться больше чем к 32 ГБ RAM (следовательно, это - значение по умолчанию на Xserve), или у Вас есть 64 бита только kext (разработчики)

  • Ядра на 64 бита не делают Ваш компьютер волшебно быстрее; если Вам не нужны больше чем 32 ГБ RAM (IOW только Xserves так или иначе), Вам не нужен он для обращения к причинам также

  • путем создания значения по умолчанию на 32 бита в потребительских системах и предоставления профессионалам и разработчикам опция Apple ядра на 64 бита сохраняет макс. совместимость И макс. гибкость

  • 64 бита являются главным образом опцией разработчика; они могут использовать его для тестирования их новых 64 битов drivers/kexts, чтобы удостовериться, что они работают с ядром на 64 бита

Перефразируемый и заключенный в кавычки из Snow Leopard загружает 32-разрядное ядро по умолчанию

0
ответ дан 07.12.2019, 13:07

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

ioreg -l -p IODeviceTree | grep firmware-abi

EFI на 64 бита Mac сообщит

| | "firmware-abi" = <"EFI64">
5
ответ дан 07.12.2019, 13:07

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

6
ответ дан 07.12.2019, 13:07

Теги

Похожие вопросы