Meu processador é de 64 ou 32 bits?

41

Estou no Ubuntu e fiz este comando:

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

Isso significa que estou no processador de 32 bits ou 64 bits?

A razão pela qual estou tentando descobrir isso é que estava recebendo erros parecidos com o seguinte:

cannot execute binary file

e no Google, pensei que era um problema de processador. Alguma ideia?

Genadinik
fonte
Confira este link . É fornecida uma descrição detalhada do seu problema.
Prateek

Respostas:

32

Isso significa que você está executando um kernel de 32 bits, o que significa que você só pode executar aplicativos de 32 bits sem o uso de um emulador ou virtualização.

Se você quiser ver se o seu processador é de 64 bits, procure lmnos sinalizadores listados em /proc/cpuinfo.

Ignacio Vazquez-Abrams
fonte
27
Também lscpupode ser usado e é mais amigável.
enzotib
@ Ignacio Então, eu tenho um processador de 32 bits que precisará executar algo que é feito para 64 bits. isso é, de todo, possível?
Genadinik
4
Eu não sou Ignacio, mas geralmente não é. Você pode instalar uma VM usando um produto que permite emular um sistema de 64 bits de uma plataforma de 32 bits.
Eduardo I.
Um peso muito mais leve que uma VM é um contêiner chroot ou lxc, associado ao QEMU. Tudo depende do que você realmente precisa.
Ken afiada
84

Você pode usar 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

Mais explicações sobre o campo Arquitetura:

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.
Eric Johnson
fonte
11
@ slm: o campo de arquitetura refere-se ao kernel e não ao processador. Editei minha resposta para torná-la mais clara.
Eric Johnson
7

Você também pode verificar a arquitetura do binário que você está tentando executar usando o arquivo: file filetocheck. Mencionará 32 ou 64 bits.

Eduardo I.
fonte
Essa deve ser a primeira coisa que é verificada. Sharp
Ken Sharp
3

Ideia básica:

x86_64 tem CPU de 64 bits e i386 é de 32 bits.

Com lscpu

Resposta longa: 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

Resposta curta lscpu | awk '/CPU op-mode/ {print}

Saída: CPU op-mode(s): 32-bit, 64-bit

Com lshw

Resposta longa: executar sudo lshw

Resposta um pouco mais curta: sudo lshw -c cpu

Saída:

 *-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

Resposta ainda mais curta: sudo lshw -c cpu | grep width

Saída: width: 64 bits

Sergiy Kolodyazhnyy
fonte
2

uname -pdê a arquitetura do processador. Se der x86_64, significa que a CPU é de 64 bits.

Anand
fonte
11
Isso nem sempre é correto, tho.
Braiam
2
@Braiam: Seria ótimo se você pudesse explicar o porquê.
Jobin
5
@Jobin: uname imprime informações sobre o kernel em execução, não a CPU. Por exemplo, você pode executar um kernel de 32 bits em uma CPU de 64 bits.
Cristian Ciupitu
Isso é definitivamente incorreto.
Ken afiada