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?


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.


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.

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.


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


2

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.