我的处理器是64位还是32位?


41

我在Ubuntu上执行以下命令:

$ uname -a
Linux slabrams-desktop 2.6.32-29-generic #58-Ubuntu SMP Fri Feb 11 19:00:09 UTC 2011 i686 GNU/Linux

这是否意味着我使用32位或64位处理器?

我试图弄清楚这一点的原因是我遇到了如下所示的错误:

cannot execute binary file

从谷歌搜索,我认为这是一个处理器问题。有任何想法吗?


查看此链接。给出了您的问题的详细说明。
Prateek

Answers:


32

这意味着您正在运行32位内核,这意味着您只能在不使用仿真器或虚拟化的情况下运行32位应用程序。

如果要查看处理器是否为64位,请lm在中列出的标志中查找/proc/cpuinfo


27
lscpu可以使用,比较友好。
enzotib 2011年

@Ignacio因此,我有一个32位处理器,它将需要运行为64位制作的程序。那有可能吗?
Genadinik

4
我不是Ignacio,但通常不是。不过,您可以使用可以模拟64位系统或32位平台的产品来安装VM。
Eduardo I.

chroot或与QEMU配对的lxc容器比VM轻得多。这完全取决于您的实际需求。
肯·夏普

84

您可以使用lscpu

someuser@somelaptop:~$ lscpu
Architecture:          i686           # <-- your kernel is 32 bit
CPU op-mode(s):        32-bit, 64-bit # <-- your cpu can handle 32 or 64 bit instructions
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               1199.000
Virtualisation:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K

“架构”领域的进一步说明:

X86, i686, or i386      means you are running a 32 bit kernel.
X86_64 , amd64 , or X64 means you are running a 64 bit kernel.

1
@slm:体系结构字段是指内核而不是处理器。我修改了答案,使其更加清晰。
埃里克·约翰逊

7

您还可以使用file:检查要运行的二进制文件的体系结构file filetocheck。它将提到32位或64位。


这应该是检查的第一件事。👍–
肯·夏普

3

基本思路:

x86_64是支持64位的cpu,而i386是32位。

使用lcpu

长答案: lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            17
Model:                 3
Stepping:              1
CPU MHz:               550.000
BogoMIPS:              4397.92
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
NUMA node0 CPU(s):     0,1

简短答案 lscpu | awk '/CPU op-mode/ {print}

输出: CPU op-mode(s): 32-bit, 64-bit

与lshw

长答案:跑 sudo lshw

答案略短: sudo lshw -c cpu

输出:

 *-cpu                   
       description: CPU
       product: AMD Turion(tm) X2 Dual-Core Mobile RM-75
       vendor: Advanced Micro Devices [AMD]
       physical id: 4
       bus info: cpu@0
       version: Turion X2 Mobile RM-75
       slot: Socket M2/S1G1
       size: 550MHz
       capacity: 4GHz
       width: 64 bits
       clock: 200MHz
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp x86-64 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch osvw skinit hw_pstate lbrv svm_lock nrip_save vmmcall cpufr

更短的答案: sudo lshw -c cpu | grep width

输出: width: 64 bits


2

uname -p给出处理器的架构。如果给出x86_64,则表示cpu是64位。


1
这并不总是正确的。
Braiam 2014年

2
@Braiam:如果您能解释原因,那就太好了。
jobin 2014年

5
@Jobin:uname打印有关正在运行的内核而不是CPU的信息。例如,您可以在64位CPU上运行32位内核。
Cristian Ciupitu 2014年

那绝对是不正确的。
肯·夏普
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.