代码之家  ›  专栏  ›  技术社区  ›  Sophie Alpert

在Ruby on Mac OS X中检测64位CPU

  •  2
  • Sophie Alpert  · 技术社区  · 17 年前

    我希望区分Core Solo/Duo和Core 2 Duo处理器,以获得64位支持。

    在一个核心2二重唱上,然后 `sysctl hw.cpu64bit_capable` 给予 1

    second level name cpu64bit_capable in hw.cpu64bit_capable is invalid
    

    检测64位处理器的最佳方法是什么?

    谢谢

    1 回复  |  直到 17 年前
        1
  •  4
  •   Ryan McGeary    17 年前

    你仍然可以使用你的 sysctl 通过查看命令的返回值执行命令。

    $ irb
    >> system("sysctl hw.cpu64bit_capable > /dev/null 2>&1")
    => true
    

    在32位CPU上,它应该返回 false .


    或者,根据您真正想要的,您可以使用 ioreg ,尽管我认为您的CPU可能仍然是64位,带有32位EFI。

    在64位EFI机器上,您会看到:

    $ irb
    >> system("ioreg -l -p IODeviceTree | grep firmware-abi | grep -q EFI64")
    => true
    

    在缺少64位EFI的机器上,您将获得 错误的 .

    推荐文章