答案1
通常uname -m
应该可以解决问题,就像应该那样arch
。
这两个命令的输出将告诉您构建内核的体系结构。通常是 32 位还是 64 位非常清楚(x86_64 和 ia64 是两种可能的 64 位架构)。但请注意,在 64 位硬件上运行时,您可以拥有 32 位内核。如果您确实想了解硬件,请尝试查看
less /proc/cpuinfo
如果“flags”行中有“lm”,则它是 64 位。
或者,如果你有lshw
lshw -class processor
并查看“宽度”线。
对于这两个选项,grep
都可以用来快速获得答案,而无需查看输出。
答案2
有几种可能的答案,具体取决于您到底想知道什么(我不知道 AIXbootinfo
对应哪一个)。
flags
您可以通过检查中的行来了解 CPU 是 64 位、32 位还是两者兼有/proc/cpuinfo
。您必须了解您的架构系列中可能的标志。例如,在 i386/amd64 平台上,该lm
标志标识支持 amd64 的 CPU(没有该标志的 CPU 仅限 i386)。您可以通过查询架构来查看内核是32位还是64位
uname -m
。例如,i[3456]86
is 是 32 位,而x86_64
是 64 位。请注意,在某些体系结构上,64 位内核可以运行 32 位用户态程序,因此即使uname -m
显示 64 位内核,也不能保证 64 位库可用。您可以通过查询来查看用户空间中可用的内容最低有效位支持与
lsb_release
命令。更准确地说,lsb-release -s
打印:
支持的 LSB 功能的分隔列表。每个特征都有形式。例如,ix86 C 库的可用性由 表示,而是 amd64 的模拟库。不过,并非每个发行版都声明所有可用的 LSB 模块,因此可用的模块可能多于通过这种方式检测到的模块。module-*version*-architecture
core-2.0-ia32
core-2.0-amd64
sizeof(void*)
您可以通过编译打印或 的5 行 C 程序来找出开发时首选的字长(假设有 C 编译器可用)sizeof(size_t)
。