我想安装具有这两个版本的新软件,我需要知道要安装哪个版本。
如何分辨Mac的32位或64位功能?
我想安装具有这两个版本的新软件,我需要知道要安装哪个版本。
如何分辨Mac的32位或64位功能?
Answers:
要确定您运行的是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。
在命令行上运行此命令:
getconf LONG_BIT
echo "You are on a "$(getconf LONG_BIT)"-bit architecture"
另一种选择是sysctl
在外壳中使用:
$ sysctl hw.cpu64bit_capable
如果CPU能够运行64位程序,则显示1,否则显示0。
正如您可能从所有答案中看到的那样-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位”的数量的原因。
在您提出更具体的问题之前,这确实无关紧要。你为什么要问这个?我希望这份概述有助于您了解人们在讨论自己的观点时的真正含义。
在终端窗口中,键入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
arch
不带参数的命令将显示计算机的体系结构类型。
结果(来自arch(1)
联机帮助页):
i386 32-bit intel
ppc 32-bit powerpc
ppc64 64-bit powerpc
x86_64 64-bit intel
只需运行“活动监视器”,然后找到名为kernel_task的进程即可。然后查看“种类”列。如果显示Intel,则您当前正在运行32位模式。如果显示Intel(64位),则如文本所示,您正在运行64位模式。
注意:您必须在搜索框(过滤器)旁边的te下拉列表中显示All processs。
然后,您可以检查@Nate Bird的答案,了解您拥有的处理器及其支持的模式。
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)。
在命令行上,您可以运行...
(
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
getconf LONG_BIT
from终端,但当然不是那绝地方式