Ho un MacBook Pro (5,1) con 4 GB di memoria con 10A432, ma è in esecuzione il kernel a 32 bit.
Qualche idea sul perché non funzionerebbe in modalità 64-bit e come posso farlo?
Ho un MacBook Pro (5,1) con 4 GB di memoria con 10A432, ma è in esecuzione il kernel a 32 bit.
Qualche idea sul perché non funzionerebbe in modalità 64-bit e come posso farlo?
Risposte:
Nella Recensione di Snow Leopard di Jon Siracusa parla della transizione a 64 bit .
La versione breve è: poiché non esiste una "modalità mista", un kernel a 64 bit richiede estensioni e driver del kernel a 64 bit .
Poiché quelli non sono ancora ampiamente disponibili, Apple ha scelto il valore predefinito a 32 bit per evitare di interrompere molte cose.
Istruzioni dall'articolo:
Per tutti i Mac compatibili con K64, avvia tenendo premuti contemporaneamente i tasti "6" e "4" per selezionare il kernel a 64 bit. Per una soluzione più permanente, usa il comando nvram per aggiungere
arch=x86_64
alla tuaboot-args
stringa, o modifica il file/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
e aggiungiarch=x86_64
alla stringa di bandiere del kernel:
...
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64</string>
...
Per tornare al kernel a 32 bit, tenere premuti i tasti "3" e "2" durante l'avvio, oppure utilizzare una delle tecniche sopra, sostituendo "x86_64" con "i386".
Non ci sono molti vantaggi nell'esecuzione di un kernel a 64 bit in Snow Leopard, a differenza della maggior parte degli altri sistemi operativi. In Windows e Linux, è necessario un kernel a 64 bit per eseguire applicazioni a 64 bit. Su OS X, puoi eseguire applicazioni a 64 bit con il kernel a 32 bit.
Molte persone sembrano preoccupate che l'esecuzione del kernel a 32 bit in OS X limiti le prestazioni o le capacità delle loro macchine, ma in pratica questo non ha un impatto materiale significativo. Il kernel a 32 bit supporta l'esecuzione di applicazioni a 64 bit e tali app dispongono di uno spazio di indirizzi virtuale a 64 bit che viene mappato dal kernel su uno spazio di indirizzi PAE a 36 bit, quindi si comportano come su un 64- kernel bit, solo con un uso più limitato della memoria e I / O mappati in memoria nell'intervallo utilizzabile. Il modo in cui Apple gestisce questo spazio degli indirizzi nel kernel a 32 bit determina un limite di 32 GB per la memoria fisica, superando il limite di 4 GB a 32 bit con PAE. Per quanto riguarda le prestazioni, non c'è molto vantaggio, se ce n'è uno misurabile con l'uso di un kernel a 64 bit con 32 GB di memoria o meno. Se lo desidera,6e 4chiavi all'avvio. Dubito che vedresti e una differenza significativa nelle prestazioni.
L'altro problema è la compatibilità con i driver di dispositivo, le estensioni del kernel e il firmware del dispositivo. Per i driver di dispositivo e le estensioni del kernel, devono abbinare bit-ness, essere ricompilati o riscritti (specialmente se hanno un assembly, quali parti sono comuni in quei tipi di codice). In origine, EFI di Apple era disponibile solo a 32 bit e più recentemente alcuni modelli hanno un firmware a 64 bit. Affinché il sistema operativo parli con il firmware, il bit-ness del kernel e EFI devono corrispondere. Le cose che comportano la conversazione con EFI sono cose come la scelta di un disco di avvio o alcuni controlli di gestione dell'alimentazione (come se si dispone di più di un'installazione OS X e è necessario svegliarsi dalla sospensione dopo che la batteria si è esaurita).
Quindi un kernel a 64 bit sarebbe un vantaggio? Dal punto di vista delle prestazioni non è proprio in pratica, e posso vedere la saggezza con Apple che utilizza kernel a 32 bit per la maggior parte delle macchine che eseguono Snow Leopard per una migliore compatibilità.
Secondo quanto trapelato a MacRumors (poiché i documenti ufficiali sono sotto NDA) ( Fonte ) solo i seguenti computer supportano l'esecuzione del kernel a 64 bit:
Solo gli XServes usano il kernel a 64 bit per impostazione predefinita.
Se avvii il computer con i tasti 6e, avvierai il 4kernel a 64 bit, o secondo un'altra fonte che rompe il loro NDA puoi modificare /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
aggiungendo un flag del kernel o farlo nel nvram.
Il link sfortunatamente offuscato di Jason ha nascosto un'informazione molto utile:
ioreg -l -p IODeviceTree | grep firmware-abi
I Mac EFI a 64 bit segnaleranno
| | "firmware-abi" = <"EFI64">
Fino al rilascio di Snow Leopard, non sapremo quali sistemi supporteranno la modalità 64/32 bit ... Ma tutte le indicazioni sono che Snow Leopard sarà trasparente con il supporto del kernel ...
Ma, ahimè, mi dispiace essere un "downer", se sei un membro registrato di Appleseed, il forum Appleseed discute su come forzare il kernel in modalità 64 bit. Altrimenti, se hai ricevuto Snow Leopard altrove, non preoccuparti.
L'uscita di Snow Leopard è proprio dietro l'angolo ...
Va bene, ecco perché:
SL a 32 bit eseguirà app a 64 bit; SL è compatibile a 64 bit indipendentemente dalla versione del kernel che si avvia
SL anche se avviato con il kernel a 32 bit sarà comunque in grado di eseguire app a 64 bit e indirizzare più di 4 GB di RAM
la ragione per cui avresti bisogno del kernel a 64 bit è se il kernel avesse bisogno di indirizzare più di 32 GB di RAM (quindi è di default su Xserve) o hai un solo kext a 64 bit (sviluppatori)
I kernel a 64 bit non rendono il computer magicamente più veloce; a meno che non siano necessari più di 32 GB di RAM (IOW solo Xserves comunque) non è necessario nemmeno per motivi di indirizzamento
rendendo il default a 32 bit sui sistemi consumer e offrendo ai professionisti e agli sviluppatori l'opzione del kernel a 64 bit, Apple mantiene la massima compatibilità e la massima flessibilità
64 bit è principalmente un'opzione per sviluppatori; possono usarlo per testare i loro nuovi driver / kexts a 64 bit per assicurarsi che funzionino con il kernel a 64 bit
Parafrasato e citato da Snow Leopard carica il kernel a 32 bit per impostazione predefinita