Что такое “64-бита” на Snow Leopard?

В последнее время в сети наблюдается неразбериха касательно того, какие части Snow Leopard работают в 64-битном режиме, а какие — в 32-битном. Пишут, что в SL большинство Маков загружается в режиме работы ядра и драйверов в 32-битах, и какое это ужасное горе для всего человечества. Кроме этого, у многих моделей Маков EFI (Extensible Firmware Interface, аналог BIOS) не поддерживает 64-битного режима (об этом см. ниже)
64bit_icon_20090824
Это все вносит путаницу в умы пользователей, и вызывает вопросы о реальности заявлений Apple про 64 бита в Snow Leopard — от вопросов “так что, на самом деле их там нет, этих 64-бит?” до “а какая мне с них выгода?”. Тот факт, что можно, нажав “6” и “4” во время загрузки, заставить компьютер загрузиться с ядром в 64-битном режиме, только еще больше запутывает пользователей — непонятно, почему Apple не включила этот режим по умолчанию. Эта небольшая заметка должна немного внести ясность в эти вопросы — заметка написала “простым человеческим языком, и после нее многое, как мне кажется, проясняется.

Процессор и ядро
Когда Apple говорит о том, что Snow Leopard полностью поддерживает 64-битный режим, компания подразумевает, что почти все приложения, которые поставляются с системой, были перестроены для работы в 64-битном режиме. И вот почему это хорошо: во-первых, 64-битные вычисления нужны, если вы хотите, чтобы какая-нибудь из программ на вашем компьютере получила доступ к более чем 4ГБ оперативной памяти. Во-вторых, в связи с работой программы в 64-битном режиме появляется определенный прирост производительности. Процессоры Intel внутри Маков, содержат встроенные математические операции, которые работают более эффективно в 64-битном режиме, обрабатывая задачи за меньшее количество шагов. Это означает, что некоторые задачи, где интенсивно используются математические операции, будут более быстро выполнятся в 64-битных приложениях в Snow Leopard.
Если у вас Мак с Intel Core 2 Duo или же Intel Xeon процессором, ваш Мак поддерживает 64-бита. И приложения, поддерживающие 64-бита, в Snow Leopard работают в 64-битном режиме, независимо от того, в каком режиме работает ядро системы, в 32 или 64-бит. Единственным преимуществом загрузки в 64-битное ядро является возможность использования более 32ГБ оперативной памяти. Сейчас все равно отсутствуют Маки, которые могут это делать — из-за аппаратных ограничений (даже в современные Mac Pro пока невозможно установить больше 32ГБ оперативки).
[ad#intext-inside]
Приложения, работающие в Snow Leopard, смогут получить доступ к 16 эксабайтам (1EB — это 1024 петабайт PB) виртуального адресного пространства, точно так же, как если бы они работали под управлением 64-битного ядра. В итоге, разница между загрузкой в 64-битное ядро и 32-битное ядро на текущих Маках практически отсутствует. (Однак, в будущем эта разница появится, по мере того, как будут расти объемы оперативной памяти.
Предполагается, что новые модели Маков будут грузиться в 64-битное ядро по умолчанию, когда в этом возникнет потребность).
Резюмируя: если у вас есть Мак с Core 2 Duo или Xeon — но не Мак с Core Duo или Core Solo — вы сможете запускать приложения в 64-битном режиме, что, в свою очередь, позволит получить преимущество благодаря более быстрым 64-битным регистрам и выполнению математических операций, а также получить доступ к большому количеству памяти.
EFI
Однако, это не вся история. Вторая часть истории — это то, что даже несмотря на наличие 64-битного процессора, у Мака должен быть еще один важный момент для того, чтобы иметь возможность загрузиться в ядро 64-бит — EFI (которое уже упоминалось выше), поддерживающее 64-бита.
Чтобы узнать, поддерживает ли EFI вашего Мака 64-битный режим, запустите приложение Terminal и наберите там следующую команду:
ioreg -l -p IODeviceTree | grep firmware-abi
Результатом будет либо “EFI32″ либо “EFI64” — я думаю, вы сами понимаете, что означает каждый из результатов. Если вам не повезло, и результат EFI32 — это всего лишь означает, что само ядро системы не может загрузиться в 64-битном режиме, но приложения в системе смогут (при наличии 64-битного процессора, конечно же), со всеми вытекающими отсюда последствиями (см. выше). Однако, ходят слухи, что технически даже Маки с 32-битным EFI на самом деле могут загружать и 64-битное ядро системы, поэтому вполне может оказаться, что это ошибка со стороны Apple, и компания ее исправит выпуском обновления EFI для соответствующих моделей Маков.
Главный вопрос, который висит в воздухе — “Почему?”, в том смысле, что почему Apple устроила такой бардак с этими 64-битами в Snow Leopard? Ответ на это, насколько я видел в сети, следующий — пока что не все расширения ядра (kernel extensions) были портированы на 64-бита, и поэтому Apple поставила режим загрузки ядра в 32-битный режим по умолчанию “на всякий случай”, чтобы быть уверенной, что все будет работать без проблем. Кроме того, как мы уже установили выше, приложениям это неважно, и поэтому вам тоже должно быть все равно. И уж тем более не стоит заморачиваться редактированием системных конфигурационных файлов, чтобы активировать загрузку ядра в 64-битным режиме. Это все — мелкие технические нюансы, на которые проще всего не обращать внимания, а со временем оно все само образуется.
[ad#intext-inside]
Для особо любознательных могу посоветовать программу 32- or 64-bit Kernel Startup Mode Selector, которая не только покажет, что именно поддерживает ваш компьютер (процессор и EFI), но и при желании позволит заставить загрузить компьютер в нужном вам режиме (32 или 64 бит). Вопрос лишь в том, надо ли оно вам? 🙂
По материалам отсюда и отсюда