¿Mi procesador es de 64 o 32 bits?

41

Estoy en Ubuntu e hice 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

¿Significa que estoy en un procesador de 32 bits o 64 bits?

La razón por la que estoy tratando de resolver esto es porque recibía errores que se veían así:

cannot execute binary file

y desde Google, pensé que era un problema de procesador. ¿Algunas ideas?

Genadinik
fuente
Mira este enlace . Se proporciona una descripción detallada de su problema.
Prateek

Respuestas:

32

Significa que está ejecutando un kernel de 32 bits, lo que significa que solo puede ejecutar aplicaciones de 32 bits sin el uso de un emulador o virtualización.

Si desea ver si su procesador es de 64 bits, busque lmen los indicadores que figuran en /proc/cpuinfo.

Ignacio Vazquez-Abrams
fuente
27
También lscpuse puede usar, y es más amigable.
enzotib
@Ignacio Así que tengo un procesador de 32 bits que necesitará ejecutar algo hecho para 64 bits. ¿Es eso posible?
Genadinik
44
No soy Ignacio, pero en general no lo es. Sin embargo, puede instalar una VM utilizando un producto que le permite emular un sistema de 64 bits o una plataforma de 32 bits.
Eduardo I.
Mucho más liviano que una VM es un chroot o un contenedor lxc asociado con QEMU. Todo depende de lo que realmente necesites.
Ken Sharp
84

Puedes 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

Explicación adicional del campo Arquitectura:

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
fuente
1
@slm: el campo de arquitectura se refiere al núcleo, no al procesador. Edité mi respuesta para hacerlo más claro.
Eric Johnson
7

También puede comprobar la arquitectura de la binaria que está tratando de ejecutar mediante el uso de archivos: file filetocheck. Mencionará 32 bits o 64 bits.

Eduardo I.
fuente
Esto debería ser lo primero que se verifica. Sharp
Ken Sharp
3

Idea básica:

x86_64 es una CPU con capacidad de 64 bits e i386 es de 32 bits.

Con lscpu

Respuesta larga: 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

Respuesta corta lscpu | awk '/CPU op-mode/ {print}

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

Con lshw

Respuesta larga: corre sudo lshw

Respuesta un poco más corta: sudo lshw -c cpu

Salida:

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

Respuesta aún más corta: sudo lshw -c cpu | grep width

Salida: width: 64 bits

Sergiy Kolodyazhnyy
fuente
2

uname -pdar la arquitectura del procesador. Si da x86_64, significa que la CPU es de 64 bits.

Anand
fuente
1
Esto no siempre es correcto, aunque.
Braiam
2
@Braiam: Sería genial si pudieras explicar por qué.
jobin
55
@Jobin: uname imprime información sobre el núcleo en ejecución, no la CPU. Por ejemplo, puede ejecutar un kernel de 32 bits en una CPU de 64 bits.
Cristian Ciupitu
Eso es definitivamente incorrecto.
Ken Sharp