Supporto a 64 bit con un kernel a 32 bit in OS X Snow Leopard

So che molti computer porttili apple come il mio Macbook 6,1 eseguono un kernel a 32 bit in OS X Snow Leopard. Il kernel secondo Apple può anche eseguire o "supportre" applicazioni a 64 bit. La mia domanda è come funziona il sistema?

Un OS a 64 bit può eseguire applicazioni di 32 bit per impostazione predefinita perché il sistema operativo dispone di emulatori che catturano tutte le chiamate a 32 bit e li traducono in chiamate native a 64 bit.

Ma come funziona il kernel a 32 bit in OS X con 64 bit?

  1. Virtualizzazione dell'architettura hardware? (in caso affermativo, questo non sarebbe lento dato che la conversione da bit a 32 bit e indirizzi di memory a 64 bit è molto più intensa?)
  2. Design ibrido di architettura (cioè il kernel è stato progettato con alcuni elementi a 64 bit mescolati con il disegno a 32 bit in primo luogo?)

Apple docs e support doesnt sembrano avere qualcosa di specifico su questo. Sono solo curioso!

    Nota, alcune delle informazioni in questa risposta sono state cribbate da qui :

    Mac OS X 10.6 Snow Leopard è stato l'ultimo sistema operativo per supportre architetture CPU a 32 bit, come i processri Core Solo e Core Duo (non Core 2 Duo). Si noti che è completamente ansible disporre di processri a 64 bit come il Core 2 Duo e hanno ancora un firmware EFI a 32 bit, quindi la CPU da solo non è l'unico indicatore delle vostre capacità dei sisthemes a questo riguardo.

    Questo è il modo in cui si conclude la situazione di avere un kernel a 32 bit, che è trattenuto dall'EFI, in esecuzione su una CPU a 64 bit che è in grado di eseguire una stack di applicazioni a 64 bit fino a quando non carica dynamicmente i moduli del kernel ecc. L'applicazione non è interamente legata al kernel ed è in grado di funzionare indipendente in uno stato diverso dal kernel se necessario. Stesso modo che un'app per eseguire 32 bit su un kernel a 64 bit …

    Per essere onesti, il numero di persone con un Core 2 Duo o superiore ma con un EFI a 32 bit è relativamente limitato e sei sfortunato se sei una di quelle persone che ha, ad esempio un Macbook dal 2007/8 quando questo era comune. L'EFI a 64 bit è stato introdotto in modo sfalsato in tutta la gamma, quindi non è semplice identificare la data comune in tutti i formati.

    È ansible controllare l'EFI della propria macchina inserendo il seguente command in Terminale:

    ioreg -l -p IODeviceTree | grep firmware-abi

    Tornerà "EFI32" o "EFI64".

    Inoltre, alcune macchine perfettamente in grado di avviare solo i kernel di modalità a 32 bit, anche quando sono in grado, anche se è ansible forzare un kernel a 64 bit tenendo premuto i tasti 6 e 4 durante l'avvio.

    OS News nota che solo Mac con un EFI a 64 bit è in grado di avviare il kernel Snow Leopard a 64 bit e i kext; una limitazione artificiale imposta da Apple, anche se un EFI a 32 bit può avviare un kernel a 64 bit "solo bene".

    Ciò che è peggiore è che anche se il MacBook (non Pro) dispone di un EFI a 64 bit, sarà in grado di avviare la versione a 32 bit di Snow Leopard solo a causa di una limitazione che Apple impone su MacBook. Il più grande roadkill su Route 64 è l'originale Mac Pro (che è stato interrotto l'8 gennaio 2008) che non sarà in grado di avviare né il kernel a 64 bit né i driver. inserire la descrizione del link qui

    Il 32 bit rispetto al 64 bit è probabilmente più di una domanda per il produttore del microprocessre:

    http://search.intel.com/default.aspx?q=64+bit&c=en_US&method=text&input-submit=Search