如何确定给定的Linux是32位还是64位?

当我键入uname-a时,它会给出以下输出

Linux mars 2.6.9-67.0.15.ELsmp#1 SMP周二4月22日13:50:33美国东部夏令时2008 i686 i686 i386 GNU/Linux

我怎么能从中知道给定的操作系统是32位还是64位

这在编写configure脚本时非常有用,例如:我构建的体系结构是什么

尝试uname-m。它缺少uname--machine,并输出:

x86\u 64==>64位内核
i686==>32位内核

否则,不是针对Linux内核,而是针对CPU,键入:

cat/proc/cpuinfo

或:

grep flags/proc/cpuinfo

在“flags”参数下,您将看到各种值:请参见“/proc/cpuinfo中的标志是什么意思?”
其中一个名为lmLong Mode(x86-64:amd64,也称为Intel 64,即支持64位)

lm==>64位处理器

或者使用lshw(如萨克森州的Rolf所述),而不使用sudo(仅用于增大cpu宽度):

lshw-类cpu | grep“^width”| uniq | awk'{print$2}

注意:您可以安装64位CPU和32位内核
(正如ysdx在他/她自己的回答中提到的,“现在,一个系统可以是多拱的,因此它无论如何都没有意义。您可能希望找到编译器的默认目标”)

发表评论