Как 32-битные приложения работают на 64-битном Mac? - PullRequest
3 голосов
/ 14 сентября 2011

Я пытаюсь собрать некоторые подробности о том, как возможно, что 32-битные приложения работают / работают на 64-битном Mac и, таким образом, будет ли ассемблерный код, написанный с учетом 64-битной работы?

1 Ответ

6 голосов
/ 14 сентября 2011

Ваш вопрос очень расплывчатый. Я постараюсь кое-что прояснить:

У любого недавнего Mac есть процессор, который поддерживает как 32-битный, так и 64-битный режимы исполнения.

На таком процессоре ядро ​​OS X может работать в 32- или 64-битном режиме. В 10.6 и более ранних версиях по умолчанию ядро ​​работало в 32-битном режиме. В версии 10.7 ядро ​​по умолчанию работает в 64-битном режиме.

Приложение и связанные с ним библиотеки могут поддерживать работу в 32-разрядной, 64-разрядной или обеих версиях. Это полностью отличается от того, работает ли ядро ​​в 64-битном режиме (то есть: вы можете запускать 64-битные приложения на 32-битном ядре и 32-битные приложения на 64-битном ядре).

В результате вы можете написать свой код как для 32-битного, так и для 64-битного кода, и он будет работать независимо от того, что делает ядро. Тем не менее, ваше приложение должно быть синхронизировано с самим собой; вы не можете смешивать 32-битный и 64-битный код в одном процессе.

...