我如何知道我的 linux 内核是在 32 位还是 64 位上运行?

Dan*_*ier 10 linux cpu 64-bit 32-bit kernel

当我在 /proc/cpuinfo 中做 cat 时,它会显示一行 clflushsize : 64

这是否意味着我的内核以 64 位运行?

Ric*_*haw 15

uname -a
Run Code Online (Sandbox Code Playgroud)

会告诉你内核 - 最后一位告诉你架构。

两个例子:

我的麦克:

Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
Run Code Online (Sandbox Code Playgroud)

我的 Dreamhost 托管:

Linux ecco 2.6.24.5-serf-xeon-c6.1-grsec #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

i386 = 32 位

x86_64 = 64 位

  • 这个答案是错误的。最后一位告诉你暴露给进程的架构,而不是内核架构。请参阅 [此链接](http://pastebin.com/6GYN4MbD)。 (3认同)

drr*_*lvn 12

uname -m将为您提供编译内核的体系结构。如果它打印,i686那么你的内核是 32 位,如果x86_64它是 64 位,假设你有一个 Intel/AMD 芯片。

  • 这个答案是错误的。`uname -m` 为您提供内核选择向此特定进程公开的架构,而不是内核的本机架构。请参阅 [此链接](http://pastebin.com/NbZDr46f)。 (3认同)

Aqu*_*wer 9

我认为最准确的方法是

getconf LONG_BIT
Run Code Online (Sandbox Code Playgroud)

这里正好显示 64

在此提示上找到

getconf 来自包 libc-bin(在 ubuntu 上)