Блог об Apple, мобильных технологиях и прочих IT-штучках…
Random header image... Refresh for more!
September 2, 2009 at 9:48 am

Что такое “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ГБ оперативки).

Приложения, работающие в 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 бит). Вопрос лишь в том, надо ли оно вам? :)

По материалам отсюда и отсюда

А вот эти записи из блога, любовно отобранные нашими заслуженными роботами, могут оказаться по теме статьи:

  1. Чего ждать от Snow Leopard?
  2. Выход Snow Leopard
  3. Mac OS X Snow Leopard: секретное оружие Apple для корпораций?
  4. Snow Leopard: обновляться или не обновляться, вот в чем вопрос.
  5. Антивирус в Snow Leopard
  • vsokolov

    А как посмотреть в системе: какое приложение в каком режиме (32/64) запущено ?

  • http://alexmak.net alexmak

    запустить Activity Monitor в Утилитах

  • vermin

    Пока самое яркое WOW в производительности это 10.6 + XCode 3.2 (64-bit). Действительно, сборка происходит в 2 раза быстрее. Также ощутимый прирост производительности замечен в iTunes при синхронизации c iPhone.

    Битность работы ядра не волновала, главное это фактический прирост производительности с переходом на SL

  • KirpicH23

    как и говорилось выше можно вручную поправить системные файлы. Себе так и сделал, но ничего не почувствовал. В общем “работает – не лезь”.

  • neur0

    Статья многое разъяснила, спасибо. Но остался один вопрос – вы говорите если проц кор 2 дуо и ЕФИ 64, то ядро запустится в 64 бит, но ядро не хочет грузиться в 64 бит. Указанная вами программа показывает, что проц 64, ЕФИ 64, 64 бит кернел бут мод, но 32 бит кернел. Так же под надписью суппортед стоит красный крест.

  • http://indra-detector.livejournal.com/ indra-detector.livejournal.com/

    Спасибо. Четко и понятно даже блондинкам.

  • http://alexmak.net alexmak

    на сайте программы написано :)
    http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS.html

    если стоит красный крест, это означает, что загрузка в 64-битный режим по умолчанию на вашем компьютере не поддерживается (пока что официально это умеют только Xserve).

  • neur0

    ну так и принудительно кернел в 64 не грузится (в нужном файлике прописал arch=x86_64)

  • http://alexmak.net alexmak

    у меня, кстати, та же фигня. надо будет почитать матчасть по этому поводу.

  • http://shadone.blogspot.com/ http://shadone.blogspot.com/

    в оригинальной статье дискуссия уже похоже закрыта, поэтому поправлю только здесь.

    в 32х битном режиме возможно адресация максимум 4х гигабайт памяти, а не 32 как написано в статье. (и то на практике в приложениях в 32х битной ОС вряд ли получится использовать больше 2х или 3х гб (в зависимости от реализации подсистемы vm в ОС) без специальных трюков в ядре (см PAE) и приложении.

  • http://trance-lucent.livejournal.com/ http://trance-lucent.livejournal.com/

    Глупо отвечать на древний перевод, но всё же:
    http://macperformanceguide.com/SnowLeopard-Performance.html – здесь явно видно преимущество 64-битного ядра перед 32-битным в скорости.

  • Pingback: Обзор Mac OS X «Snow Leopard» | Snupt's Blog