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

2

So che molti laptop 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 "supportare" applicazioni a 64 bit. La mia domanda è: come fa il sistema a farlo?

Un SO a 64 bit può eseguire applicazioni a 32 bit di default perché il sistema operativo ha emulatori che catturano tutte le chiamate a 32 bit e le traducono in chiamate native a 64 bit.

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

  1. Virtualizzazione dell'architettura hardware? (se sì, non sarebbe lento come la conversione da 32 bit di chiamate e indirizzi di memoria a 64 bit è molto più intensiva?)
  2. Progettazione di architetture ibride (cioè il kernel è progettato con alcuni elementi a 64 bit mescolati con il design per lo più a 32 bit?)

I documenti e il supporto Apple non sembrano avere nulla di specifico su questo. Sono solo curioso!

    
posta Gautham C. 30.12.2011 - 04:22
fonte

2 risposte

3

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

Mac OS X 10.6 Snow Leopard era l'ultimo sistema operativo a supportare architetture CPU a 32 bit, come i processori Core Solo e Core Duo (non Core 2 Duo). Nota che è possibile avere un processore a 64 bit come Core 2 Duo e avere ancora un firmware EFI a 32 bit, quindi la CPU da sola non è l'unico indicatore delle capacità del tuo sistema in questo senso.

Questo è il modo in cui si finisce per avere un kernel a 32 bit, che è trattenuto da EFI, in esecuzione su una CPU a 64 bit, che è in grado di eseguire uno stack di applicazioni a 64 bit purché non venga caricato in modo dinamico qualsiasi modulo del kernel ecc. L'applicazione non è interamente legata al kernel, ed è in grado di funzionare indipendentemente in uno stato diverso dal kernel, se necessario. Allo stesso modo un'applicazione può eseguire 32 bit su un kernel a 64 bit ...

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

Puoi controllare EFI della tua macchina inserendo il seguente comando nel Terminale:

ioreg -l -p IODeviceTree | grep firmware-abi

Restituirà "EFI32" o "EFI64".

Inoltre, alcune macchine perfettamente funzionanti si avviano ancora solo in kernel a 32 bit, anche quando sono in grado, anche se puoi forzare un kernel a 64 bit tenendo premuti i tasti 6 e 4 all'avvio.

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

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

    
risposta data 06.02.2012 - 21:20
fonte
0

Il 32 bit contro 64 bit è probabilmente più una domanda per il produttore del microprocessore:

link

    
risposta data 05.01.2012 - 18:55
fonte

Leggi altre domande sui tag