lscpu
gibt an, dass Ihre Architektur i686 (eine Intel 32-Bit-CPU) ist und dass Ihre CPU sowohl den 32-Bit- als auch den 64-Bit-Betriebsmodus unterstützt. Sie können keine von x64 erstellten Anwendungen installieren, da diese speziell für x64-Architekturen erstellt wurden.
Ihre spezielle CPU kann entweder die i386- oder i686-Pakete verarbeiten. Es gibt verschiedene Möglichkeiten, Ihre Architektur- und Betriebssystemeinstellungen zu überprüfen.
Wie Sie bereits wissen, können Sie den Befehl lscpu verwenden. Es gibt Ihnen eine ungefähre Vorstellung davon, wozu Ihre CPU fähig ist.
$ 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
Dies sind tatsächlich die vom Kernel bereitgestellten Daten, die die meisten Tools lscpu
zum Anzeigen verwenden. Ich finde diese Ausgabe ein wenig schön, weil sie einige Informationen zur Modellnummer Ihrer jeweiligen CPU enthält. Außerdem wird ein Abschnitt für jeden Kern angezeigt, den Ihre CPU möglicherweise hat.
Hier ist die Ausgabe für einen einzelnen Kern:
$ 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:
So sehen die ersten drei Zeilen jedes Abschnitts für einen Kern aus:
$ 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
Die Ausgabe von /proc/cpuinfo
kann Ihnen auch über die verschiedenen angezeigten Flags mitteilen, welche Art von Architektur Ihre CPU bereitstellt. Beachten Sie diese Zeilen aus dem obigen Befehl:
$ 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
Die Flags, die mit enden, zeigen an _lm
, dass Ihr Prozessor den "Long Mode" unterstützt. Long Mode ist ein anderer Name für 64-Bit.
Mit diesem Befehl können Sie ermitteln, für welche Plattform Ihr Kernel Unterstützung bietet. Beispielsweise:
64-Bit-Kernel
$ 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
32-Bit-Kernel
$ 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
Dieser Ausgang kann ein wenig weiter verfeinert werden , um die Schalter verwenden, [-m|--machine]
, [-p|--processor]
, und [-i|--hardware-platform]
.
Hier ist die Ausgabe für die oben genannten Systeme.
64-Bit
$ uname -m; uname -p; uname -i
x86_64
x86_64
x86_64
32-Bit
$ uname -m; uname -p; uname -i
i686
i686
i386
HINWEIS: Es gibt auch eine Kurzversion uname -m
, die Sie als eigenständigen Befehl ausführen können arch
. Es gibt genau das Gleiche zurück wie uname -m
. Weitere Informationen zu diesem arch
Befehl finden Sie in der Dokumentation zu coreutils .
Auszug
arch gibt den Hardware-Namen der Maschine aus und entspricht "uname -m".
Wahrscheinlich das beste Tool zur Analyse Ihrer Hardware hwinfo
. Dieses Paket kann Ihnen so ziemlich alles zeigen, was Sie über Ihre Hardware wissen wollen / müssen, direkt vom Terminal aus. Es erspart mir Dutzende Male, wenn ich Informationen von einem Chip auf der Hauptplatine eines Systems oder die Revision einer Platine in einem PCI-Steckplatz benötige.
Sie können es für die verschiedenen Subsysteme eines Computers abfragen. In unserem Fall schauen wir uns das cpu
Subsystem an.
$ 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
Ähnlich wie bei /proc/cpuinfo
diesem Befehl wird auch hier der Aufbau jedes einzelnen Kerns in einem Mehrkernsystem angezeigt. Hier ist die erste Zeile aus jedem Abschnitt eines Kerns, um Ihnen eine Idee zu geben.
$ 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"
Dies ist wahrscheinlich die naheliegendste Methode, um festzustellen, welche Architektur Ihre CPU dem Betriebssystem präsentiert. Verwenden getconf
Sie, um die Systemvariable LONG_BIT abzufragen. Dies ist keine Umgebungsvariable.
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
Noch ein weiteres Tool, das in seinen Fähigkeiten ähnlich ist wie hwinfo
. Sie können so ziemlich alles abfragen, was Sie über die zugrunde liegende Hardware wissen möchten. Beispielsweise:
# 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
CPU-Betriebsmodus (e)?
Einige der Befehle geben an, dass eine 32-Bit-CPU 32-Bit- und 64-Bit-Modi unterstützt. Dies kann ein wenig verwirrend und irreführend sein. Wenn Sie jedoch die Geschichte der CPUs, insbesondere von Intel, verstehen, wissen Sie, dass sie bereits Spiele mit ihren Produkten gespielt haben, bei denen eine CPU möglicherweise über einen Befehlssatz verfügt, der 16-Bit unterstützt. kann aber mehr RAM adressieren als 2 ^ 16.
Das Gleiche gilt für diese CPUs. Die meisten Leute wissen, dass eine 32-Bit-CPU nur 2 ^ 32 = 4 GB RAM adressieren kann. Es gibt jedoch Versionen von CPUs, die mehr unterstützen. Diese CPUs verwenden häufig einen Linux-Kernel mit dem Suffix PAE - Physical Address Extension . Wenn Sie einen PAE-fähigen Kernel zusammen mit dieser Hardware verwenden, können Sie auf einem 32-Bit-System bis zu 64 GB adressieren.
Warum brauche ich dann eine 64-Bit-Architektur? Das Problem bei diesen CPUs ist, dass ein einzelner Prozessspeicherplatz auf 2 ^ 32 begrenzt ist. Wenn Sie also ein großes Simulations- oder Computerprogramm haben, das mehr als 2 ^ 32 adressierbaren Speicherplatz im RAM benötigt, hätte dies Ihnen nicht geholfen damit.
Weitere Informationen finden Sie auf der Wikipedia-Seite zur P6-Mikroarchitektur (i686) .
TL; DR - Was zum Teufel ist die Architektur meiner CPU?
Im Allgemeinen kann es verwirrend werden, da einige der oben genannten Befehle und Methoden den Begriff "Architektur" lose verwenden. Wenn Sie daran interessiert sind, ob das zugrunde liegende Betriebssystem 32-Bit oder 64-Bit ist, verwenden Sie diese Befehle:
- lscpu
- getconf LONG_BIT
- dein Name
Wenn Sie andererseits die Architektur der CPU kennen wollen, verwenden Sie diese Befehle:
- / proc / cpuinfo
- hwinfo
- lshw
Insbesondere möchten Sie nach Feldern suchen, in denen beispielsweise "width: 64" oder "width: 32" angezeigt wird, wenn Sie ein Tool wie dieses verwenden lshw
, oder nach den Flags suchen:
lm
: Long Mode (x86-64: amd64, auch als Intel 64 bekannt, dh 64-Bit-fähig)
lahf_lm
: LAHF / SAHF im Langmodus
Die Geschenke dieser 2 Flags zeigen an, dass die CPU 64-Bit ist. Ihre Abwesenheit sagt Ihnen, dass es 32-Bit ist.
Weitere Informationen zu den CPU-Flags finden Sie in diesen URLs.
Verweise
Manpages
Artikel:
cat /proc/cpu
, ich denke, beim Booten können Sie auswählen, ob Sie im 64- oder 32-Bit-Modus booten möchten