如何检查基于Intel的Mac是32位还是64位


52

我想安装具有这两个版本的新软件,我需要知道要安装哪个版本。

如何分辨Mac的32位或64位功能?


您正在运行什么版本的操作系统?MacBook Pro是什么时候制造的?
丹尼尔

5
这很简单。转到Apple徽标,然后选择“关于本机”。如果显示Core Duo,则为32位。如果显示Core 2 Duo,则为64位(忽略32位内核问题,它将运行64位软件就可以了)。从物理上讲,如果您的MBP具有黑色键盘,则绝对是64位。最初的MBP具有银色键盘,而32位单元在2007年初几乎全部被替换。因此,即使您在2007年下半年购买了型号,也可以运行64位的Mac。另外,如果您运行的是Lion,那么您使用的是64位(因为Lion无法在32位的Mac上运行)。

Answers:


20

要确定您运行的是32位还是64位内核(对于某些设备驱动程序而言很重要),请启动System Profiler,然后单击“ 目录”部分中的“ 软件”标题。

该行64位内核扩展会说是的,如果你运行的是64位内核,并没有,如果你运行的是32位内核。

注意:Mac OS X 10.6 Snow Leopard是32位Intel Mac可以运行的最新版本,Mac OS X 10.7 Lion及更高版本默认为64位。此外,在OS X 10.7中,System Profiler被重命名为System Information


3
我的计算机上未安装System Profiler,或者Spotlight找不到它,因此此答案不适用于所有人。
克里斯·卡洛

您的机器和操作系统是什么?不久前,该名称已更改为“系统信息”(位于“实用程序”文件夹中)。
Paul Lefebvre

5
我确实找到了系统信息应用程序。谢谢。为他人的利益而更新答案将是一件好事。不幸的是,我在“系统信息”应用程序的“软件”部分中找不到“ 64位内核和扩展”项。我正在使用v10.12.2。
克里斯·卡洛

3
如果您使用的是10.12,则您的Mac是64位的。可以在32位Mac上运行的Mac OS X的最新版本是10.6 Snow Leopard。
Paul Lefebvre,2017年

我有Mac OS X 10.7 Lion和“ 64位内核和扩展:否”设置。但是我确定我有64位MacBook,正如我已经通过@Greg Cain的answear方法验证的那样。奇怪
cawecoy

108

在命令行上运行此命令:

getconf LONG_BIT

7
我认为这是最好的答案。和一个建议:将其放在您的个人资料中:echo "You are on a "$(getconf LONG_BIT)"-bit architecture"
Sridhar Sarnobat '16

7
这个答案应该是正确的答案
Victor Grazi

29

Apple的这篇知识库文章应为您提供正确的答案,因为它取决于MacBook Pro的年龄。

基本上,如果您拥有比2008 MacBook更新的产品,则可以使用64位处理器和OS…

这是备忘表

苹果处理器


这并不能说明全部,但这是一个开始。我有一台配备64位Core 2 Duo的Macbook,但是32位固件/ EFI导致堆栈从未完全是64位。
11:46塞

那是真实的。该行在技术上是模糊的,因为内核可能仅以32位模式运行,而其他所有都是64位。我不确定确切的时间,但是所有新的Mac现在都可以100%支持64位-尽管它们仍然可以运行32位应用程序。
Nate Bird

根据另一篇知识库文章,从2008年初到2010年中期的MacBook Pro支持64位内核,但默认情况下不使用它。
Cristian Ciupitu 2014年

17

另一种选择是sysctl在外壳中使用:

$ sysctl hw.cpu64bit_capable

如果CPU能够运行64位程序,则显示1,否则显示0。


12

正如您可能从所有答案中看到的那样-macs与其他操作系统(OS)的不同之处在于32位和64位分隔线都很模糊。您可以在64位CPU上运行32位代码。

有关此主题的很好概述,请参阅Apple的《 64位过渡指南》。请记住,此过渡始于Tiger于2005年4月29日发布之前,并且仍在进行中。

什么是64位计算?

就本文档而言,将64位计算定义为对64位地址空间的支持,也就是说,支持单个可执行程序并发使用超过4 GB的内存。

从版本10.4开始,Mac OS X在基于G5的Macintosh计算机和具有64位功能的Intel Macintosh计算机上支持命令行64位可执行文件。

从10.5版开始,Mac OS X在基于G5和具有64位功能的Intel Macintosh计算机上支持功能齐全的64位应用程序。

从Snow Leopard开始,Mac OS X在某些Intel计算机上使用64位内核。

另外-“ 64位” CPU的部分仍只有32位宽。同样,“ 32位” CPU也具有128位(或更多)宽度的部分。这就是为什么大多数人只关注特定程序的地址空间,而不是硬件是“ 64位”还是“ 64位”的数量的原因。

在您提出更具体的问题之前,这确实无关紧要。你为什么要问这个?我希望这份概述有助于您了解人们在讨论自己的观点时的真正含义。


10

在终端窗口中,键入uname -m。如果获得x86_64,则说明您正在运行64位OSx。

完整的输出如下所示:

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
尽管这将起作用,但是有几个简单得多的选项,不需要新手用户即可进入Terminal。
jbharper2

同样,这只会给您内核的拱门。在Core2Duo(64位CPU)上,如果该计算机的引导程序不是64位干净的,则您仍然仅运行32位内核。您仍然可以(并且应该)在该计算机上使用64位Eclipse。
MacLemon 2012年

1
但是此解决方案的好处是它是跨平台的(尽管是的,我知道这是Apple Stackexchange领域)。
Sridhar Sarnobat '16

6

转到Apple菜单,然后选择“关于本机”。如果您有Core Duo处理器,则您有32位CPU。否则(Core 2 Duo,Xeon,i3,i5,i7等),您将拥有64位CPU。

Mac OS X完全与位无关,因此两者都可以使用。如果仍然不确定,请使用32位版本。


3
为了完整起见,在首款英特尔Mac mini(“ 2006年初”)中也使用了仅32-bt的“ Core Solo”处理器。
克里斯·约翰森

3

arch不带参数的命令将显示计算机的体系结构类型。

结果(来自arch(1)联机帮助页):

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

3
嗯不 我有一个Core i7 MBP,并且启用了32位内核,因为我的雇主的VPN软件需要它,并且arch为我返回了i386。我的处理器是64位的,但是我有很多64位进程在运行,所以这似乎只能告诉您什么是内核类型。
大卫,

1
大卫所说的话-这只能告诉您正在运行的内核。像David一样,我使用的是32位内核,因为我需要一个需要它的kext,但是我可以毫无问题地运行64位用户进程。
Sherm Pendley

3

只需运行“活动监视器”,然后找到名为kernel_task的进程即可。然后查看“种类”列。如果显示Intel,则您当前正在运行32位模式。如果显示Intel(64位),则如文本所示,您正在运行64位模式。

注意:您必须在搜索框(过滤器)旁边的te下拉列表中显示All processs。

然后,您可以检查@Nate Bird的答案,了解您拥有的处理器及其支持的模式。


1
内核的模式对用户空间并不重要。OS X将愉快地在32位内核下运行64位进程,反之亦然。
戈登·戴维森

最初的问题是关于操作系统是32位还是64位,而不是处理器支持的体系结构:)
bisko 2011年

内核不是操作系统,内核的模式与询问者实际上想知道的内容无关:哪种版本的Eclipse适合?
戈登·戴维森

我喜欢bisko的答案,因为它帮助我找到了一种方法来确定我当前正在运行的是32位还是64位。我有一个只能在32位上运行的VMWare版本,并且由于升级到Lion,它会引导到64位,因此我需要重新引导并在启动时按住3 + 2键才能使其在32位上运行位模式。无需实际启动VMWare,很高兴知道我当前正在运行的模式。看来我的其他一些应用程序也可以在32位模式下更好地运行。感谢您对主要问题的所有不同回答。

bisko是正确的,但只想添加,即“ 应用程序”>“实用程序”>“活动监视器”,在查看cpu的活动监视器中,转到顶部菜单,“ 视图”>“列”>“种类”,以及“ 视图”>“所有进程”。我在大多数正在运行的进程上读取的是64位,而不仅仅是kernel_task。09'MacBook,优胜美地。

2

OS X没有整体的32/64位模式。它仅基于CPU的功能和程序支持的方式,以“最佳”可用模式运行每个程序。许多OS X程序采用通用二进制格式,这意味着它们在同一文件中包含多个版本(PowerPC 32位,PowerPC 64位,Intel 32位和Intel 64位的某些组合)。

Eclipse显然不是这种方式,因此您必须决定下载哪个版本。我对它还不够熟悉,无法知道它是否必须以与您要调试的相同的方式运行;如果是这样,请运行您的程序,然后在“活动监视器”中查找它,以查看其运行方式。如果Eclipse不必处于同一模式(或者Java代码仅在Eclipse中运行),则可以使用其中一种一个(除非您使用的是仅32位CPU,即Core Solo或Core Duo)。


1

在终端中运行:

sysctl hw.cpu64bit_capable

如果给出1,则表明您的计算机具有64位体系结构。

或使用arch可能返回i386(32位Intel)或x86_64(64位Intel)的命令。


运行arch给出“ i386”。同时,sysctl hw.cpu64bit_capable给出1。那是什么
朱斯

0

在命令行上,您可以运行...

(
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

正如戈登·戴维森(Gordon Davisson)所说,胖二进制文件可能包含程序的32位和64位可执行文件(另请参见“ 多体系结构,单一构建”)。

file /mach_kernel /usr/lib/libSystem.dylib

1
呵呵,谢谢您的短路!:-DI只喜欢getconf LONG_BITfrom终端,但当然不是那绝地方式
Farside

0

uname -a在shell中运行以显示有关内核的详细信息。您可以看到RELEASE_X86_64 x86_6464位版本


0

打开Terminal.app并运行以下命令:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.