我希望区分Core Solo / Duo和Core 2 Duo处理器以获得64位支持。
在Core 2 Duo上,然后`sysctl hw.cpu64bit_capable`
根据需要提供1
,但在32位处理器上,它会抛出错误,说:
second level name cpu64bit_capable in hw.cpu64bit_capable is invalid
检测64位处理器的最佳方法是什么?
感谢。
答案 0 :(得分:4)
您仍然可以通过查看命令的返回值来使用sysctl
命令。
$ irb
>> system("sysctl hw.cpu64bit_capable > /dev/null 2>&1")
=> true
在32位CPU上,它应该返回false
。
或者,根据您真正需要的内容,您可以使用ioreg
测试64位EFI,但我认为您的CPU仍然可以使用32位EFI进行64位。
在64位EFI机器上,你会得到这个:
$ irb
>> system("ioreg -l -p IODeviceTree | grep firmware-abi | grep -q EFI64")
=> true
在缺少64位EFI的计算机上,您将获得false
。