O OS X não possui um modo geral de 64/32 bits; Ele executa programas individuais em qualquer modo que pareça "melhor" quando eles são iniciados. Manter 3 e 2 enquanto o computador inicializa fará com que seu kernel seja executado no modo de 32 bits, mas isso não tem nada a ver com que modo os programas são executados. executar programas no modo de 32 bits em um kernel de 64 bits ou programas no modo de 64 bits em um kernel de 32 bits.
Se o seu programa incluir apenas código de 32 bits, ele será executado no modo de 32 bits sem que você precise fazer nada de especial. Você pode verificar isso executando o comando file
no executável (geralmente em AppName.app/Contents/MacOS/AppName. Aqui estão alguns exemplos:
$ file /Applications/Chess.app/Contents/MacOS/Chess
/Applications/Chess.app/Contents/MacOS/Chess: Mach-O universal binary with 2 architectures
/Applications/Chess.app/Contents/MacOS/Chess (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/Chess.app/Contents/MacOS/Chess (for architecture i386): Mach-O executable i386
$ file /Applications/VLC.app/Contents/MacOS/VLC
/Applications/VLC.app/Contents/MacOS/VLC: Mach-O universal binary with 2 architectures
/Applications/VLC.app/Contents/MacOS/VLC (for architecture i386): Mach-O executable i386
/Applications/VLC.app/Contents/MacOS/VLC (for architecture ppc): Mach-O executable ppc
$ file /Applications/Adobe\ Reader\ 9/Adobe\ Reader.app/Contents/MacOS/AdobeReader
/Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader: Mach-O executable i386
... que me diz que o Chess.app inclui código Intel de 32 e 64 bits ("i386" e "x86_64", respectivamente), o VLC.app inclui Intel de 32 bits e PowerPC de 32 bits (" ppc "), e o Adobe Reader inclui apenas o código Intel de 32 bits.
Você também pode obter algumas dessas informações (embora não em detalhes tão explícitos) no relatório de sistema do System Information (na seção Software - > Applications).
Se um aplicativo tiver código de 32 e 64 bits, você poderá selecionar qual deles usar na janela Obter Informações do Finder para o aplicativo (haverá uma caixa de seleção "Abrir no modo de 32 bits") ou usando o comando arch
no executável (por exemplo, arch -i386 /Applications/theApp.app/Contents/MacOS/theApp
). Mas você normalmente não deveria precisar fazer isso, o SO faz um bom trabalho ao escolher o melhor modo.
(Uma instância em que você precisaria substituir manualmente a seleção de modo é para compatibilidade de plug-in ou biblioteca. Se você tiver um aplicativo de 32 e 64 bits, ele precisará carregar um plug-in ou biblioteca somente de 32 bits , você terá que forçar o programa a ser executado no modo de 32 bits.)
Se você tem programas de 64 bits que não rodam diretamente sob um kernel de 32 bits, eles têm algum tipo de bug estranho, ou há algo ainda mais estranho acontecendo. Se você der os detalhes específicos, poderemos descobrir o que realmente está dando errado.
EDIT: Parece que o aplicativo é somente de 32 bits e instala uma extensão de kernel de apenas 32 bits (kext). Enquanto a parte do aplicativo de 32 bits pode ser executada em qualquer modo kernel, os kexts de 32 bits só podem ser carregados em um kernel de 32 bits (é como um plugin para o kernel). Você pode executar o kernel no modo de 32 bits mantendo 3 e 2 na inicialização, ou permanentemente com o comando sudo systemsetup -setkernelbootarchitecture i386
(veja KB # HT3773 ).
Observe que não é necessário fazer nada de especial para abrir o aplicativo no modo de 32 bits; já que esse é o único formato incluído, ele será executado nesse modo, não importando como ele é lançado (em particular, o comando arch
não é necessário ).
Se você tem aplicativos de 64 bits que não são executados adequadamente em um kernel de 32 bits, isso é um problema separado e eu recomendo postar outra pergunta sobre isso.