问题

当我键入 uname -a 时,它会提供以下输出.

Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux

如何从这里知道给定的操作系统是32位还是64位?

这在编写 configure 脚本时非常有用,例如:我正在构建什么架构?



解决方法

尝试 uname -m .看起来像 uname -m 实际上是

x86_64 ==> 64-bit kernel
i686   ==> 32-bit kernel

否则,不适用于Linux内核,而是适用于CPU ,请输入:

cat /proc/cpuinfo

或:

grep flags /proc/cpuinfo

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

lm ==> 64-bit processor

使用 lshw (如前所述以下 萨克森州的Rolf ),而不使用 sudo (仅用于调整cpu宽度):

lshw -class cpu|grep "^       width"|uniq|awk '{print $2}'

请注意:您可以安装64位内核并安装32位内核. (作为他的 ysdx 提及) /她自己的回答,“现在,系统可以 多项目 所以它没有任何意义,你可能想找到编译器的默认目标“)




相关问题推荐