Por que meu kernel do Mac OS X 10.6 é executado no modo de 32 bits?

9

Eu tenho um MacBook Pro (5,1) com 4 GB de memória rodando 10A432 - mas ele está rodando o kernel de 32 bits.

Alguma idéia de por que ele não estaria sendo executado no modo de 64 bits e como posso fazê-lo?

    
por Chopper3 15.08.2009 / 20:08

6 respostas

11

Na Revisão do Snow Leopard de Jon Siracusa ele discute os 64 transição de bits .

Aversãocurtaé:porquenãohá'modomisto',umkernelde64bitsrequerextensõesedriversdekernelde64bits.

Comoessesaindanãoestãoamplamentedisponíveis,aAppleoptoupelopadrãode32bitsparaevitarquebrarmuitascoisas.

Instruçõesdoartigo:

ForallK64-capableMacs,bootwhileholdingdown"6" and "4" keys simultaneously to select the 64-bit kernel. For a more permanent solution, use the nvram command to add arch=x86_64 to your boot-args string, or edit the file /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and add arch=x86_64 to the Kernel Flags string:

...
    <key>Kernel</key>
    <string>mach_kernel</string>
    <key>Kernel Flags</key>
    <string>arch=x86_64</string>
...

To switch back to the 32-bit kernel, hold down the "3" and "2" keys during boot, or use one of the techniques above, replacing "x86_64" with "i386".

    
por 28.09.2009 / 06:54
7

De acordo com o que vazou para MacRumors (já que os documentos oficiais estão sob NDA) ( Fonte ) apenas os seguintes computadores suportam a execução do kernel de 64 bits:

  • Início do Mac Pro 2008 (MacPro 3,1)
  • Início de 2008 Xserve (Xserve 2,1)
  • MacBook Pros (15 "/ 17") (MacBookPro 4,1)
  • 2008 iMacs (iMac 8,1)
  • Unibody MacBook Pros (MacBookPro 5,1 e 5,2)
  • Mac Pro do início de 2009 (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • Início de 2009 Xserve (Xserve 3,1).

Somente os XServes usam o kernel de 64 bits por padrão.

Se você inicializar o computador com as teclas 6 e 4 , você iniciará o kernel de 64 bits, ou de acordo com outro source quebrando seu NDA, você pode editar /Library/Preferences/SystemConfiguration/com.apple.Boot.plist adicionando um sinalizador de kernel ou fazê-lo no nvram.

    
por 15.08.2009 / 20:21
6

Não há muito benefício em executar um kernel de 64 bits no Snow Leopard, ao contrário da maioria dos outros sistemas operacionais. No Windows e no Linux, você precisa de um kernel de 64 bits para executar aplicativos de 64 bits. No OS X, você pode executar aplicativos de 64 bits com o kernel de 32 bits.

A maioria das pessoas parece estar preocupada que a execução do kernel de 32 bits no OS X limita o desempenho ou os recursos de suas máquinas, mas, na prática, isso não tem um impacto material significativo. O kernel de 32 bits suporta a execução de aplicativos de 64 bits, e esses aplicativos têm um espaço de endereçamento virtual de 64 bits mapeado para um espaço de endereçamento de PAE de 36 bits pelo kernel, para que se comportem da mesma forma que um 64- bit kernel, apenas com uso de memória mais restrito e E / S mapeada na memória para o intervalo utilizável. A maneira como a Apple manipula esse espaço de endereço no kernel de 32 bits resulta em um limite de 32 GB para a memória física, quebrando o limite de 32 GB de 4 GB com o PAE. Em termos de desempenho, não há muito benefício, se houver um parâmetro mensurável com o uso de um kernel de 64 bits com 32 GB de memória ou menos. Se você quiser, você mesmo pode testar alguns benchmarks quando forçar a inicialização com o kernel de 64 bits segurando as teclas 6 e 4 na inicialização. Eu duvido que você veria e diferença significativa no desempenho.

O outro problema é a compatibilidade com drivers de dispositivos, extensões de kernel e o firmware do dispositivo. Para drivers de dispositivos e extensões de kernel, eles precisam corresponder ao bit-ness, serem recompilados ou reescritos (especialmente se tiverem algum assembly, que partes são comuns nesses tipos de código). A EFI da Apple veio originalmente em 32 bits e, mais recentemente, alguns modelos têm firmware de 64 bits. Para que o sistema operacional fale com o firmware, a bitagem do kernel e a EFI precisam corresponder. As coisas que envolvem falar com a EFI são coisas como escolher um disco de inicialização ou alguns controles de gerenciamento de energia (como se você tivesse mais de uma instalação do OS X e precisasse sair do modo de espera após a bateria ter acabado).

Então um kernel de 64 bits seria um benefício? Em termos de desempenho, não muito na prática, e posso ver a sabedoria com a Apple usando kernels de 32 bits para a maioria das máquinas que usam o Snow Leopard para melhor compatibilidade.

    
por 30.09.2009 / 20:40
5

O Jason infelizmente ofuscou o link escondeu uma informação muito útil:

ioreg -l -p IODeviceTree | grep firmware-abi

Os Macs EFI de 64 bits reportarão

| | "firmware-abi" = <"EFI64">
    
por 28.09.2009 / 00:39
1

Até que o Snow Leopard seja lançado, não saberemos quais sistemas suportarão o modo 64/32 bits ... Mas tudo indica que o Snow Leopard será transparente com o suporte ao kernel ...

Mas, infelizmente, sinto muito por ser um "downer", se você é um membro registrado Appleseed, o fórum Appleseed discute como forçar o kernel para o modo 64bit. Caso contrário, se você tiver recebido o Snow Leopard em outro lugar, não se preocupe.

O lançamento do Snow Leopard está ao virar da esquina ...

    
por 18.08.2009 / 19:00
0

Tudo bem, aqui está o porquê:

  • 32 bit SL WILL run 64 bit apps; SL is 64 bit compatible regardless of which kernel version you boot

  • SL even if booted with the 32 bit kernel will still be able to run 64 bit apps and address more than 4GB of RAM

  • reason you'd need the 64 bit kernel is if the kernel needed to address more than 32 GB of RAM (hence it's default on the Xserve) or you have a 64 bit only kext (developers)

  • 64 bit kernels do not make your computer magically faster; unless you need more than 32 GB of RAM (IOW only Xserves anyway) you do not need it for addressing reasons either

  • by making 32 bit default on consumer systems and giving pros and developers the 64 bit kernel option Apple is retaining max compatibility AND max flexibility

  • 64 bit is mainly a developer option; they can use it to test their new 64 bit drivers/kexts to make sure they work with the 64 bit kernel

Parafraseado e citado de Snow Leopard carrega 32 Por padrão, o kernel

    
por 28.08.2009 / 18:31