На этой неделе я решил продолжить разговор о технологиях, использующихся в Mac OS X, и «откровенно» поговорить о том самом 64-битном режиме, которым хвастался Фил Шиллер на WWDC ’09.  Давайте попробуем разобраться, чем это хорошо и чем плохо, как на данный момент работает OSX и что нас ожидает в ближайшем будущем. Постараюсь написать доступно и понятно 🙂

Гибридное ядро

Стоит понимать, что написанная на сайте Apple информация о полной поддержке системой 64-разрядного режима является небольшой маркетинговой уловкой. На самом деле, такая фраза означает вот что: практически все стандартные приложения были переписаны с поддержкой 64-битных инструкций, и если другие программисты захотят при разработке софта обеспечить совместимость с этой архитектурой, а им это придется рано или поздно сделать, то все будет правильно и корректно работать.

Чем это хорошо? А вот чем:

  • Стандартная 32-битная архитектура была разработана давным давно. В то время никто даже не мог предположить, что пользователи захотят установить на компьютеры 4 и больше гигабайта оперативной памяти. Новая архитектура, в частности, исправляет этот недостаток.
  • За счет поддержки 64-битных вычислений процессорами Intel, которые неустанно трудятся внутри самых разных компьютеров Apple, можно получить прирост в производительности.

А теперь, немного подробней. В теории, любая программа, адаптированная для работы в 64-битном режиме может использовать до 16 экзабайт (это равняется 16 миллиардам гигабайт, фантастическая по нынешним временам цифра). Однако, даже в Mac Pro сейчас не ставят больше 32 ГБ ОЗУ.

Процессоры Intel (Core 2 Duo, Xeon, i5 или i7) поддерживают 64-битные вычисления и могут выполнять по два действия за такт, за счет этого и достигается прирост производительности. Однако, это совершенно не означает, что какая-то работа в реальности будет сделана в два раза быстрее. К примеру, JavaScript в Safari станет быстрее на 50%, открытие большого PDF-файла — на 20%, а запуск QuickTime — на 30%. Хотя опять же, цифры достаточно относительные и будут существенно отличаться в зависимости от конфигурации системы: процессора, его тактовой частоты, объема, шины, кэшей оперативной памяти и даже скорости вращения пластин винчестера.

Также, 64-разрядные приложения более устойчивы к атакам хакеров и вредоносного ПО. В них встроены более совершенные техники выявления вредоносного кода. Большую роль играет функция аппаратного отключения исполнения для памяти с неупорядоченным хранением данных (при помощи усиленных контрольных сумм), что помогает предотвратить атаки, рассчитанные на повреждение памяти.

Само ядро Snow Leopard является гибридным. Те. оно позволяет одинаково работать любым приложениям в независимости от того, являются ли они 32- или 64-битными. Единственное отличие гибридного ядра от полноценного 64-разрядного — это невозможность использовать в системе больше 32 ГБ оперативной памяти (опять вспоминаем про Mac Pro 🙂 ). Поэтому на данный момент нет совершенно никакой разницы между загрузкой в 32- и 64-битном режимах. А вот в будущем разница обязательно появится по мере увеличения объемов использования ОЗУ и появления новых технологий.

К сожалению, все вышесказанное не относится к вашему Mac’у, если в нем установлен процессор Intel Core Solo или Intel Core Duo.

64-битный EFI

Для полноценного «64-разрядного счастья» EFI вашего компьютера должен поддерживать 64-битный режим. Extensible Firmware Interface — это интерфейс между микропрограммами, оборудованием и операционной системой компьютера, пришедший на смену Open Firmware. Он включает в себя таблицы данных, содержащие информацию о платформе, загрузочные и runtime-сервисы, доступные для загрузчика операционной системы и самой ОС.

Чтобы узнать, поддерживает ли EFI вашего компьютера 64-разрядные инструкции, введите в Терминале такую команду:

ioreg -l -p IODeviceTree | grep firmware-abi

В результате вы увидите «EFI32» или «EFI64»:

Думаю, и так понятно, что в первом случае ваш компьютер даже при всем желании не сможет запустить 64-разрядное ядро, а во втором — все отлично, в будущем вы не будете испытывать проблем. Однако благодаря гибридному ядру, 64-битные приложения смогут работать на обеих системах. Главное, чтобы у вас был процессор, совместимый с 64-битной архитектурой.

Кстати, по сети ходят слухи, что Маки с 32-битным EFI тоже смогут запускать 64-разрядное ядро (вроде бы это программная «фишка» Apple, которая может быть исправлена обновлением EFI), однако я не могу сказать — правда это или слухи.

Выбор режима перед запуском приложений

Посмотреть, под какую архитектуру «заточено» приложение можно в Activity Monitor. В колонке Kind (Тип) будет написан режим, в котором оно запущено. Как видите, Finder и другие процессы работают с 64-разрядными инструкциями, а процесс ядра (kernel_task) с 32-разрядными.

Если же у вас возникают проблемы со стабильностью 64-битного приложения, то можно попробовать его запустить в старом режиме. Для этого, в папке Программы (Applications) выделяем наше нужную программу и в контекстном меню выбираем пункт «Get info». Опция «Open in 32-bit mode» позволит в следующий раз запустить приложение в 32-битном режиме.

И зачем нам такие проблемы?

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

Вполне возможно, что Apple просто выжидает, пока все расширения ядра (kext’ы) будут переведены на 64-битный режим. Своего рода перестраховка, желание «обкатать» технологию на миллионах пользователей Snow Leopard и попытаться достичь совершенства. И когда в Купертино убедятся, что все работает гладко и без сбоев, выпустит очередное обновление операционной системы, которое автоматически заменит 32-битное ядро на 64-битное.

А мы этого даже не заметим.


Читайте также: