lscpu
le dice que su arquitectura es i686 (una CPU Intel de 32 bits) y que su CPU admite los modos operativos de 32 y 64 bits. No podrá instalar aplicaciones compiladas x64 ya que están construidas específicamente para arquitecturas x64.
Su CPU particular puede manejar los paquetes integrados i386 o i686. Hay varias formas de verificar sus preferencias de arquitectura y sistema operativo.
Como ya sabe, puede usar el comando lscpu. Funciona bien para darle una idea aproximada de lo que su CPU es capaz de hacer.
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 1199.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
En realidad, estos son los datos proporcionados por el núcleo que la mayoría de las herramientas, como el lscpu
uso, muestran. Este resultado me parece un poco agradable en el hecho de que le muestra información sobre el número de modelo de su CPU en particular. También le mostrará una sección para cada núcleo que pueda tener su CPU.
Aquí está la salida para un solo núcleo:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
stepping : 5
cpu MHz : 1466.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips : 5319.74
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Así es como se ven las primeras 3 líneas de cada sección para un núcleo:
$ grep processor -A 3 /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 37
La salida de /proc/cpuinfo
también puede indicarle el tipo de arquitectura que proporciona su CPU a través de los distintos indicadores que muestra. Observe estas líneas del comando anterior:
$ grep /proc/cpuinfo | head -1
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
Los indicadores que terminan en le _lm
dicen que su procesador admite "modo largo". El modo largo es otro nombre para 64 bits.
Este comando se puede usar para determinar para qué plataforma fue compatible su núcleo. Por ejemplo:
Kernel de 64 bits
$ uname -a
Linux grinchy 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Kernel de 32 bits
$ uname -a
Linux skinner.bubba.net 2.6.18-238.19.1.el5.centos.plus #1 SMP Mon Jul 18 10:07:01 EDT 2011 i686 i686 i386 GNU/Linux
Esta salida puede ser refinado un poco más usando los interruptores, [-m|--machine]
, [-p|--processor]
, y [-i|--hardware-platform]
.
Aquí está esa salida para los mismos sistemas anteriores.
64 bits
$ uname -m; uname -p; uname -i
x86_64
x86_64
x86_64
32 bits
$ uname -m; uname -p; uname -i
i686
i686
i386
NOTA: También hay una versión abreviada de la uname -m
que se puede ejecutar como un solo comando de soporte, arch
. Devuelve exactamente lo mismo que uname -m
. Puede leer más sobre el arch
comando en la documentación de coreutils .
extracto
arch imprime el nombre del hardware de la máquina y es equivalente a 'uname -m'.
Probablemente la mejor herramienta para analizar su hardware tiene que ser hwinfo
. Este paquete puede mostrarle casi cualquier cosa que desee / necesite saber sobre cualquiera de su hardware, directamente desde el terminal. Me ahorró docenas de veces cuando necesitaba algo de información de un chip en la placa base de un sistema o necesitaba saber la revisión de una placa en una ranura PCI.
Puede consultarlo en los diferentes subsistemas de una computadora. En nuestro caso, veremos el cpu
subsistema.
$ hwinfo --cpu
01: None 00.0: 10103 CPU
[Created at cpu.301]
Unique ID: rdCR.a2KaNXABdY4
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,xtopology,nonstop_tsc,aperfmperf,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,smx,est,tm2,ssse3,cx16,xtpr,pdcm,sse4_1,sse4_2,popcnt,aes,lahf_lm,ida,arat,tpr_shadow,vnmi,flexpriority,ept,vpid
Clock: 2666 MHz
BogoMips: 5319.74
Cache: 3072 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
Una vez más, similar a /proc/cpuinfo
este comando muestra la composición de cada núcleo individual en un sistema de múltiples núcleos. Aquí está la primera línea de cada sección de un núcleo, solo para darle una idea.
$ hwinfo --cpu | grep CPU
01: None 00.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
02: None 01.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
03: None 02.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
04: None 03.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
Esta es probablemente la forma más obvia de saber qué arquitectura presenta su CPU al sistema operativo. Haciendo uso de getconf
, consulta la variable del sistema LONG_BIT. Esta no es una variable de entorno.
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
Otra herramienta más, similar en capacidades a hwinfo
. Puede consultar casi cualquier cosa que desee saber sobre el hardware subyacente. Por ejemplo:
# 64-bit Kernel
$ lshw -class cpu
*-cpu
description: CPU
product: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
vendor: Intel Corp.
physical id: 6
bus info: cpu@0
version: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
slot: None
size: 1199MHz
capacity: 1199MHz
width: 64 bits
clock: 133MHz
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid cpufreq
configuration: cores=2 enabledcores=2 threads=4
# 32-bit Kernel
$ lshw -class cpu
*-cpu:0
description: CPU
product: Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz
vendor: Intel Corp.
physical id: 400
bus info: cpu@0
version: 6.15.2
serial: 0000-06F2-0000-0000-0000-0000
slot: Microprocessor
size: 1800MHz
width: 64 bits
clock: 800MHz
capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe x86-64 constant_tsc pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
configuration: id=1
*-logicalcpu:0
description: Logical CPU
physical id: 1.1
width: 64 bits
capabilities: logical
*-logicalcpu:1
description: Logical CPU
physical id: 1.2
width: 64 bits
capabilities: logical
¿Modo (s) de CPU?
Varios de los comandos informan que lo que parece ser una CPU de 32 bits es compatible con los modos de 32 y 64 bits. Esto puede ser un poco confuso y engañoso, pero si comprende el historial de las CPU, Intel específicamente, sabrá que tienen un historial de juegos con sus productos en los que una CPU puede tener un conjunto de instrucciones que admite 16 bits, pero puede abordar más RAM que 2 ^ 16.
Lo mismo está sucediendo con estas CPU. La mayoría de las personas saben que una CPU de 32 bits solo puede direccionar 2 ^ 32 = 4 GB de RAM. Pero hay versiones de CPU que pueden abordar más. Estas CPU a menudo utilizarían un kernel de Linux con el sufijo PAE - Extensión de dirección física . El uso de un núcleo habilitado para PAE junto con este hardware le permitiría direccionar hasta 64 GB en un sistema de 32 bits.
Quizás pienses bien, ¿por qué necesito una arquitectura de 64 bits? El problema con estas CPU es que un solo espacio de procesos está limitado a 2 ^ 32, por lo que si tiene una gran simulación o programa computacional que necesita más de 2 ^ 32 de espacio direccionable en RAM, esto no lo habría ayudado con ese.
Eche un vistazo a la página de Wikipedia en la microarquitectura P6 (i686) para obtener más información.
TL; DR - Entonces, ¿qué diablos es la arquitectura de mi CPU?
En general, puede ser confuso porque varios de los comandos y metodologías anteriores están usando el término "arquitectura" de manera general. Si está interesado en saber si el sistema operativo subyacente es de 32 bits o de 64 bits, use estos comandos:
- lscpu
- getconf LONG_BIT
- tu nombre
Si, por otro lado, desea conocer la arquitectura de la CPU, use estos comandos:
- / proc / cpuinfo
- hwinfo
- lshw
Específicamente, desea buscar campos donde diga cosas como "ancho: 64" o "ancho: 32" si está utilizando una herramienta como lshw
, o busque las banderas:
lm
: Modo largo (x86-64: amd64, también conocido como Intel 64, es decir, compatible con 64 bits)
lahf_lm
: LAHF / SAHF en modo largo
Los presentes de estos 2 indicadores le dicen que la CPU es de 64 bits. Sus ausencias te dicen que es de 32 bits.
Consulte estas URL para obtener información adicional sobre los indicadores de la CPU.
Referencias
páginas man
artículos:
cat /proc/cpu
, creo que en el arranque se puede seleccionar si desea arranque en modo de 64 o 32 bits