Что такое “64-бита” на Snow Leopard?
В последнее время в сети наблюдается неразбериха касательно того, какие части Snow Leopard работают в 64-битном режиме, а какие — в 32-битном. Пишут, что в SL большинство Маков загружается в режиме работы ядра и драйверов в 32-битах, и какое это ужасное горе для всего человечества. Кроме этого, у многих моделей Маков EFI (Extensible Firmware Interface, аналог BIOS) не поддерживает 64-битного режима (об этом см. ниже)
Это все вносит путаницу в умы пользователей, и вызывает вопросы о реальности заявлений 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ГБ оперативки).
Приложения, работающие в 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-битным режиме. Это все — мелкие технические нюансы, на которые проще всего не обращать внимания, а со временем оно все само образуется.
Для особо любознательных могу посоветовать программу 32- or 64-bit Kernel Startup Mode Selector, которая не только покажет, что именно поддерживает ваш компьютер (процессор и EFI), но и при желании позволит заставить загрузить компьютер в нужном вам режиме (32 или 64 бит). Вопрос лишь в том, надо ли оно вам?
А вот эти записи из блога, любовно отобранные нашими заслуженными роботами, могут оказаться по теме статьи:
12 comments
А как посмотреть в системе: какое приложение в каком режиме (32/64) запущено ?
alexmak reply on September 2nd, 2009:
запустить Activity Monitor в Утилитах
Пока самое яркое WOW в производительности это 10.6 + XCode 3.2 (64-bit). Действительно, сборка происходит в 2 раза быстрее. Также ощутимый прирост производительности замечен в iTunes при синхронизации c iPhone.
Битность работы ядра не волновала, главное это фактический прирост производительности с переходом на SL
как и говорилось выше можно вручную поправить системные файлы. Себе так и сделал, но ничего не почувствовал. В общем “работает – не лезь”.
Статья многое разъяснила, спасибо. Но остался один вопрос – вы говорите если проц кор 2 дуо и ЕФИ 64, то ядро запустится в 64 бит, но ядро не хочет грузиться в 64 бит. Указанная вами программа показывает, что проц 64, ЕФИ 64, 64 бит кернел бут мод, но 32 бит кернел. Так же под надписью суппортед стоит красный крест.
alexmak reply on September 2nd, 2009:
на сайте программы написано
http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS.html
если стоит красный крест, это означает, что загрузка в 64-битный режим по умолчанию на вашем компьютере не поддерживается (пока что официально это умеют только Xserve).
neur0 reply on September 2nd, 2009:
ну так и принудительно кернел в 64 не грузится (в нужном файлике прописал arch=x86_64)
alexmak reply on September 2nd, 2009:
у меня, кстати, та же фигня. надо будет почитать матчасть по этому поводу.
Спасибо. Четко и понятно даже блондинкам.
в оригинальной статье дискуссия уже похоже закрыта, поэтому поправлю только здесь.
в 32х битном режиме возможно адресация максимум 4х гигабайт памяти, а не 32 как написано в статье. (и то на практике в приложениях в 32х битной ОС вряд ли получится использовать больше 2х или 3х гб (в зависимости от реализации подсистемы vm в ОС) без специальных трюков в ядре (см PAE) и приложении.
Глупо отвечать на древний перевод, но всё же:
http://macperformanceguide.com/SnowLeopard-Performance.html – здесь явно видно преимущество 64-битного ядра перед 32-битным в скорости.
[...] таки работает по-умолчанию в 32-битном режиме описаны здесь. Что касается iTunes, то все гораздо проще. Он написан в [...]
Вы должны залогиниться чтобы оставить комментарий.