不同的命令显示不同的结果。我的 Linux 是 32 位还是 64 位?

不同的命令显示不同的结果。我的 Linux 是 32 位还是 64 位?

我的VPS的系统是centos5,我想知道是32位的还是64位的。

> uname -a
Thu May 13 13:49:53 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

看起来像 64 位。

> getconf WORD_BIT
32

看起来像是 32 位。

哪个是对的?


更新

我相信我的 VPS 的 Linux 是 32 位的。因为我下载了一个 64 位的 mongodb,发现它无法启动。而当我下载了一个 32 位的时,它运行良好。

答案1

嗯,这得看情况。有可能getconf 没有返回正确的值,并且可能您在 64 位硬件上安装了 32 位内核。不过,我认为uname您应该遵循 的输出,因为它表明您正在运行 64 位内核。

答案2

uname -a显示操作系统是 32 位还是 64 位。

答案3

glibcWORD_BIT似乎坏了,因为(在 中xopen_lim.h)它查看__INT_MAX__而不是__WORDSIZEsizeof(__SWORD_TYPE)

要报告当前进程的系统调用特性,这些命令是等效的:

uname -m
arch

要更改它,假设你的内核支持它:

linux32
linux64

有可能 64 位内核带有 32 位用户空间。要了解您拥有哪种内核:

sudo file /proc/kcore

您的CPU:

cat /proc/cpuinfo

相关内容