Come verificare se il mio Mac basato su Intel è a 32 o 64 bit


52

Voglio installare un nuovo software con queste due versioni e devo sapere quale installare.

Come posso riconoscere le capacità a 32 o 64 bit del mio Mac?


Quale versione del sistema operativo stai eseguendo? Quando è stato costruito il tuo MacBook Pro?
Daniel

5
È abbastanza semplice. Vai al logo Apple e seleziona "Informazioni su questo Mac". Se dice Core Duo, allora è a 32 bit. Se dice Core 2 Duo, allora è a 64 bit (ignora il problema del kernel a 32 bit, eseguirà il software a 64 bit bene). Fisicamente, se il tuo MBP ha una tastiera nera, è assolutamente a 64 bit. Gli MBP originali avevano una tastiera argentata e le unità a 32 bit erano quasi sostituite all'inizio del 2007. Quindi se hai acquistato il tuo modello anche nel corso del 2007, allora è un Mac in grado di eseguire 64 bit. Inoltre, se stai eseguendo Lion, sei a 64 bit (poiché Lion non funziona su Mac a 32 bit).

Risposte:


20

Per sapere se stai eseguendo il kernel a 32 o 64 bit (che è importante per alcuni driver di dispositivo), avvia System Profiler e fai clic sull'intestazione Software nella sezione Contenuti .

La riga Kernel 64 and Extensions dirà se si esegue il kernel 64 bit e No se si esegue il kernel 32 bit.

Nota: Mac OS X 10.6 Snow Leopard è l'ultima versione che può eseguire un Mac Intel a 32 bit, Mac OS X 10.7 Lion e versioni successive sono, per impostazione predefinita, 64 bit. Inoltre, System Profiler è stato rinominato in Informazioni di sistema in OS X 10.7.


3
System Profiler non è installato sul mio computer o Spotlight non riesce a trovarlo, quindi questa risposta non funzionerà per tutti.
Chris Calo,

Qual è la tua macchina e il tuo sistema operativo? Il nome è stato cambiato in "Informazioni di sistema" qualche tempo fa (è nella cartella Utilità).
Paul Lefebvre,

5
Ho trovato l'app Informazioni di sistema. Grazie. Sarebbe bene aggiornare la risposta a beneficio di altri. Sfortunatamente, non sono riuscito a trovare l'elemento "Estensioni e kernel a 64 bit" nella sezione Software dell'app Informazioni di sistema. Sono su v10.12.2.
Chris Calo,

3
Se stai usando 10.12, il tuo Mac è a 64 bit. L'ultima versione di Mac OS X che poteva essere eseguita su un Mac a 32 bit era 10.6 Snow Leopard.
Paul Lefebvre,

Ho Mac OS X 10.7 Lion e l'impostazione "Kernel 64-bit ed estensioni: No". Ma sono sicuro di avere un MacBook a 64 bit, come ho verificato con il metodo della risposta di @Greg Cain. Strano
cawecoy,

108

Esegui questo dalla riga di comando:

getconf LONG_BIT

7
Questa è la migliore risposta secondo me. E un suggerimento: inseriscilo nel tuo profilo:echo "You are on a "$(getconf LONG_BIT)"-bit architecture"
Sridhar Sarnobat,

7
Questa risposta dovrebbe essere la risposta corretta
Victor Grazi,

29

Questo articolo della knowledge base di Apple dovrebbe fornirti la risposta corretta in quanto dipende dall'età del tuo MacBook Pro.

Fondamentalmente se hai qualcosa di più recente di un MacBook del 2008 hai un processore a 64 bit e un sistema operativo ...

Ecco la tabella dei cheat

Processori Apple


Questo non racconta la storia completa ma è un inizio. Avevo un Macbook con un Core 2 Duo a 64 bit, ma un firmware / EFI a 32 bit con conseguente stack che non era mai completamente a 64 bit.
stuffe,

Questo è vero. La linea è tecnicamente sfocata perché il kernel potrebbe essere in esecuzione solo in modalità 32 bit ma tutto il resto è 64 bit. Non sono sicuro esattamente quando, ma ora tutti i nuovi Mac sono al 100% a 64 bit, sebbene possano comunque eseguire app a 32 bit.
Nate Bird,

Secondo un altro articolo della knowledge base , MacBook Pro dall'inizio del 2008 alla metà del 2010 supporta il kernel a 64 bit, ma non lo utilizza per impostazione predefinita.
Cristian Ciupitu,

17

Un'altra opzione è usare sysctlin una shell:

$ sysctl hw.cpu64bit_capable

Mostrerà 1 se la CPU è in grado di eseguire programmi a 64 bit e 0 altrimenti.


12

Come avrai visto da tutte le risposte, i mac sono diversi dagli altri sistemi operativi (SO) in quanto la linea di divisione a 32 bit e 64 bit è tutta sfocata. È possibile eseguire codice a 32 bit su una CPU a 64 bit.

Una buona panoramica di questo argomento è nella Guida alla transizione a 64 bit di Apple. Tieni presente che questa transizione è stata avviata prima che Tiger fosse rilasciato il 29 aprile 2005 e continua ancora.

Che cos'è il calcolo a 64 bit?

Ai fini del presente documento, l'elaborazione a 64 bit è definita come il supporto per uno spazio di indirizzi a 64 bit, ovvero il supporto per l'uso simultaneo di oltre 4 GB di memoria da parte di un singolo programma eseguibile, né più né meno.

A partire dalla versione 10.4, Mac OS X supporta eseguibili a riga di comando a 64 bit su computer Macintosh basati su G5 e computer Intel Macintosh a 64 bit.

A partire dalla versione 10.5, Mac OS X supporta applicazioni a 64 bit con funzionalità complete su computer Intel Macintosh basati su G5 e con capacità a 64 bit.

A partire da Snow Leopard, Mac OS X utilizza un kernel a 64 bit su alcuni computer Intel.

Inoltre, le CPU "64-bit" hanno ancora parti larghe solo 32 bit. Allo stesso modo, le CPU "32 bit" hanno anche parti larghe 128 bit (o più). Questo è il motivo per cui la maggior parte delle persone si concentra sullo spazio degli indirizzi per un programma specifico piuttosto che se l'hardware è "64 bit" o quanto di esso è "64 bit"

Non importa davvero fino a quando non si arriva a una domanda più specifica. Perché me lo chiedi? Spero che questa visione generale ti aiuti a capire cosa significano veramente le persone quando discutono delle loro idee.


10

In una finestra di terminale digitare uname -m. Se ottieni x86_64 hai OSx a 64 bit in esecuzione.

L'output completo è simile al seguente:

Darwin Macbook-Air.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 i386 MacBookAir4,2 Darwin

1
Mentre questo funzionerà, ci sono molte opzioni molto più semplici che non richiedono un utente inesperto per accedere a Terminal.
jbharper2,

Anche questo ti dà solo l'arco del kernel. Su un Core2Duo (una CPU a 64 bit) esegui comunque un kernel a 32 bit solo se il bootrom di quella macchina non è pulito a 64 bit. Puoi ancora (e dovresti) usare un Eclipse a 64 bit su quella macchina.
MacLemon,

1
Ma la cosa positiva di questa soluzione è che è multipiattaforma (anche se sì, so che questa è l'area Apple Stackexchange).
Sridhar Sarnobat,

6

Vai al menu Apple e seleziona "Informazioni su questo Mac". Se hai un processore Core Duo, hai una CPU a 32 bit. Altrimenti (Core 2 Duo, Xeon, i3, i5, i7, qualsiasi altra cosa), hai una CPU a 64 bit.

Mac OS X è abbastanza agnostico da testimone, quindi entrambi dovrebbero funzionare. In caso di dubbi, utilizzare la versione a 32 bit.


3
Per completezza, c'era anche il solo processore "Core Solo" da 32 bt utilizzato nel primissimo Intel Mac mini ( "Inizio 2006" ).
Chris Johnsen,

3

Il archcomando senza argomenti visualizzerà il tipo di architettura della macchina.

I risultati (dalla arch(1)manpage):

i386    32-bit intel
ppc     32-bit powerpc
ppc64   64-bit powerpc
x86_64  64-bit intel

3
Uh, no. Ho un Core i7 MBP e ho il kernel a 32 bit abilitato poiché il software VPN del mio datore di lavoro lo richiede e arch restituisce i386 per me. Il mio processore è a 64 bit e ho molti processi a 64 bit in esecuzione, quindi questo sembra dirti solo quale sia il tipo di kernel.
David,

1
Cosa ha detto David - questo ti dice solo quale kernel è in esecuzione. Come David, sto usando un kernel a 32 bit perché ho bisogno di un kext che lo richieda, ma posso eseguire i processi utente a 64 bit senza problemi.
Sherm Pendley,

3

Basta eseguire Activity Monitor e trovare il processo chiamato kernel_task . Quindi guarda la colonna Kind. Se dice Intel , allora sei attualmente in modalità 32 bit. Se dice Intel (64 bit) , quindi come dice il testo, si esegue la modalità 64 bit.

Nota: è necessario mostrare Tutti i processi , dal menu a discesa accanto alla casella di ricerca (filtro).

Quindi puoi controllare la risposta di @Nate Bird su quale processore hai e le modalità supportate per esso.


1
La modalità del kernel non ha molta importanza per l'utente; OS X eseguirà felicemente i processi a 64 bit con un kernel a 32 bit o viceversa.
Gordon Davisson,

La domanda originale era se il sistema operativo fosse a 32 o 64 bit, non le architetture supportate del processore :)
bisko,

Il kernel non è il sistema operativo e la modalità del kernel è irrilevante rispetto a ciò che il richiedente effettivamente vuole sapere: quale versione di Eclipse è appropriata?
Gordon Davisson,

Mi piace la risposta di bisko perché mi ha aiutato a trovare un modo per dire con certezza cosa sto correndo attualmente - 32-bit o 64-bit. Ho una versione di VMWare che funzionerà solo a 32 bit, e dopo l'aggiornamento a Lion, si avvia a 64 bit, quindi ho bisogno di riavviare e tenere premuti i tasti 3 + 2 all'avvio per farlo funzionare in 32 -bit mode. Senza avviare VMWare, è bello sapere quale modalità sono attualmente in esecuzione. Sembra che alcune delle mie altre applicazioni funzionino meglio anche in modalità a 32 bit. Grazie per tutti i diversi angoli di risposta alla domanda principale.

bisko è corretto ma volevo solo aggiungere Applicazioni> Utilità> Monitor attività , nel monitor attività che visualizza cpu vai al menu principale, Visualizza> Colonne> Tipo , così come, Visualizza> Tutti i processi . Il mio ha letto 64 bit sulla maggior parte dei processi in esecuzione, non solo kernel_task. 09 'MacBook, Yosemite.

2

OS X non ha una modalità complessiva a 32/64 bit; esegue semplicemente ogni programma nella "migliore" modalità disponibile, in base a ciò che la CPU è in grado di supportare e al supporto del programma. Molti programmi OS X sono disponibili in formato binario universale, il che significa che hanno più versioni (alcune combinazioni di PowerPC a 32 bit, PowerPC a 64 bit, Intel a 32 bit e Intel a 64 bit) incluse nello stesso file.

Apparentemente Eclipse non arriva così, quindi devi decidere quale versione scaricare. Non ne ho abbastanza familiarità per sapere se deve funzionare nella stessa modalità di ciò che stai cercando di eseguire il debug; in tal caso, esegui il programma e cercalo in Activity Monitor per vedere in quale modalità è in esecuzione. Se Eclipse non deve essere nella stessa modalità (o il codice Java viene eseguito solo all'interno di Eclipse), puoi utilizzare uno (a meno che non si utilizzi una CPU a 32 bit, ovvero Core Solo o Core Duo).


1

Esegui nel terminale:

sysctl hw.cpu64bit_capable

Se lo dà 1, significa che il tuo computer ha un'architettura a 64 bit.

Oppure usa un archcomando che potrebbe restituire i386(Intel a 32 bit) o x86_64(Intel a 64 bit).


L'esecuzione archdà "i386". Nel frattempo, sysctl hw.cpu64bit_capable1. Allora che cos'è?
Gajus,

0

Sulla riga di comando è possibile eseguire ...

(
printf '\n\n'
echo 'System Software Overview:'
system_profiler SPSoftwareDataType | sed -n '/64-bit/s/[[:space:]]*\(.*\)/\1/p'
ioreg -l -p IODeviceTree | sed -n '/firmware\-abi/s/.*"\([^"]*\)".*"\([^"]*\)".*/\1: \2/p'
printf '\n\n'
echo 'Java:'
#man java_home | cat
#/usr/libexec/java_home -h  
#/usr/libexec/java_home -V
#/usr/libexec/java_home -X
/usr/libexec/java_home -d 32
/usr/libexec/java_home -d 64
printf '\n\n'
)

# sample output:
#
# System Software Overview:
# 64-bit Kernel and Extensions: No 
# firmware-abi: EFI64
#
# Java:
# /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
# /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Come già affermato da Gordon Davisson, i binari fat possono includere eseguibili sia a 32 che a 64 bit di un programma (vedere anche Architettura multipla, Build singolo ).

file /mach_kernel /usr/lib/libSystem.dylib

1
hehe, grazie per un breve percorso! MrGreen Preferisco solo un getconf LONG_BITterminale, ma potrebbe non essere quella via Jedi, ovviamente
Farside,

0

Esegui uname -anella shell per mostrare i dettagli sul kernel. Puoi vedere RELEASE_X86_64 x86_64per la versione a 64 bit


0

Apri Terminal.app ed esegui il comando seguente:

uname -m | if grep -q 64; then echo "64-bit CPU (`uname -m`)"; else echo "32-bit CPU (`uname -m`)"; fi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.