CPU может быть переключен с 64-битного режима выполнения на 32 бит, когда он ловушки в контексте ядра, и 32-битное ядро ??все еще может быть сконструировано для понимания структур, переданных из 64-разрядных приложений для пользовательского пространства.
Ядро MacOS X в любом случае не направляет указатели на разыгрывания из пользовательского приложения, так как оно имеет собственное отдельное адресное пространство. Например, указатель пользовательского пространства в вызове ioctl должен быть сначала разрешен к его физическому адресу, а затем новый виртуальный адрес, созданный в адресном пространстве ядра. На самом деле не имеет значения, был ли этот указатель в ioctl 64 бит или 32 бита, ядро ??не разыгрывает его напрямую в обоих случаях.
Таким образом, смешивание 32-битного ядра и 64-битных двоичных файлов может работать, и наоборот. То, что вы не можете сделать, это смешивать 32-битные библиотеки с 64-разрядным приложением, поскольку указатели, проходящие между ними, будут усечены. MacOS X поставляет больше своих фреймворков в 32 и 64-битные версии в каждой версии.