lscpu
memberi tahu Anda bahwa arsitektur Anda adalah i686 (CPU Intel 32-bit), dan bahwa CPU Anda mendukung mode operasi 32-bit dan 64-bit. Anda tidak akan dapat menginstal aplikasi yang dibuat x64 karena dibuat khusus untuk arsitektur x64.
CPU khusus Anda dapat menangani paket bawaan i386 atau i686. Ada sejumlah cara untuk memverifikasi arsitektur &preferensi OS Anda.
lscpu
Seperti yang sudah Anda ketahui, Anda dapat menggunakan perintah lscpu. Ini bekerja dengan baik untuk memberi Anda gambaran kasar tentang kemampuan CPU Anda.
$ 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
/proc/cpuinfo
Ini sebenarnya adalah data yang disediakan oleh kernel yang sebagian besar alat seperti lscpu
gunakan untuk menampilkan. Saya menemukan output ini sedikit bagus karena ini menunjukkan kepada Anda beberapa info nomor model tentang CPU khusus Anda. Ini juga akan menunjukkan kepada Anda bagian untuk setiap inti yang mungkin dimiliki CPU Anda.
Inilah keluaran untuk satu inti:
$ 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:
Inilah tampilan 3 baris pertama dari setiap bagian untuk inti:
$ 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
Keluaran dari /proc/cpuinfo
juga dapat memberi tahu Anda jenis arsitektur yang disediakan CPU Anda melalui berbagai tanda yang ditampilkannya. Perhatikan baris-baris berikut dari perintah di atas:
$ 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
Bendera yang diakhiri dengan _lm
memberi tahu Anda bahwa prosesor Anda mendukung "mode panjang". Mode panjang adalah nama lain untuk 64-bit.
hapus nama
Perintah ini dapat digunakan untuk menentukan platform apa yang didukung oleh kernel Anda. Misalnya:
kernel 64-bit
$ 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 32-bit
$ 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
Keluaran ini dapat disempurnakan sedikit lebih jauh menggunakan sakelar, [-m|--machine]
, [-p|--processor]
, dan [-i|--hardware-platform]
.
Inilah output untuk sistem yang sama di atas.
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
CATATAN: Ada juga versi singkat dari uname -m
yang dapat Anda jalankan sebagai perintah yang berdiri sendiri, arch
. Ini mengembalikan hal yang persis sama dengan uname -m
. Anda dapat membaca selengkapnya tentang arch
perintah dalam dokumentasi coreutils.
kutipan
arch mencetak nama perangkat keras mesin, dan setara dengan 'uname -m'.
hwinfo
Mungkin alat terbaik untuk menganalisis perangkat keras Anda adalah hwinfo
. Paket ini dapat menunjukkan kepada Anda hampir semua hal yang ingin/perlu Anda ketahui tentang perangkat keras Anda, langsung dari terminal. Ini menyelamatkan saya berkali-kali ketika saya memerlukan beberapa info tentang sebuah chip pada motherboard sistem atau perlu mengetahui revisi papan dalam slot PCI.
Anda dapat menanyakannya pada berbagai subsistem komputer. Dalam kasus kita, kita akan melihat cpu
subsistem.
$ 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
Sekali lagi, mirip dengan /proc/cpuinfo
perintah ini menunjukkan kepada Anda susunan setiap inti individu dalam sistem multi-inti. Inilah baris pertama dari setiap bagian inti, hanya untuk memberi Anda gambaran.
$ 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"
getconf
Ini mungkin cara yang paling jelas untuk mengetahui arsitektur apa yang disajikan CPU Anda ke OS. Memanfaatkan getconf
, Anda menanyakan variabel sistem LONG_BIT. Ini bukan variabel lingkungan.
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
lshw
Namun alat lain, mirip dengan kemampuan hwinfo
. Anda dapat menanyakan hampir semua hal yang ingin Anda ketahui tentang perangkat keras yang mendasarinya. Misalnya:
# 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: [email protected]
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: [email protected]
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
Mode operasi CPU?
Beberapa perintah melaporkan bahwa apa yang tampak sebagai CPU 32-bit mendukung mode 32-bit &64-bit. Ini bisa sedikit membingungkan dan menyesatkan, tetapi jika Anda memahami sejarah CPU, khususnya Intel, Anda akan tahu bahwa mereka memiliki riwayat bermain game dengan produk mereka di mana CPU mungkin memiliki set instruksi yang mendukung 16-bit, tetapi dapat mengatasi lebih banyak RAM yang 2 ^ 16.
Hal yang sama terjadi dengan CPU ini. Kebanyakan orang tahu bahwa CPU 32-bit hanya dapat menangani 2^32 =4GB RAM. Tetapi ada versi CPU yang dapat menangani lebih banyak. CPU ini sering menggunakan kernel Linux dengan akhiran PAE - Ekstensi Alamat Fisik. Menggunakan kernel berkemampuan PAE bersama dengan perangkat keras ini akan memungkinkan Anda untuk mengatasi hingga 64GB pada sistem 32-bit.
Anda mungkin berpikir dengan baik mengapa saya membutuhkan arsitektur 64-bit? Masalah dengan CPU ini adalah ruang proses tunggal dibatasi hingga 2^32, jadi jika Anda memiliki simulasi besar atau program komputasi yang membutuhkan lebih dari 2^32 ruang yang dapat dialamatkan dalam RAM, maka ini tidak akan membantu Anda dengan itu.
Lihat halaman wikipedia di mikroarsitektur P6 (i686) untuk info lebih lanjut.
TL;DR - Jadi apa arsitektur CPU saya?
Secara umum bisa membingungkan karena beberapa perintah dan metodologi di atas menggunakan istilah "arsitektur" secara longgar. Jika Anda tertarik apakah OS dasarnya adalah 32-bit atau 64-bit, gunakan perintah berikut:
- lscpu
- getconf LONG_BIT
- hapus nama
Sebaliknya, jika Anda ingin mengetahui arsitektur CPU, gunakan perintah berikut:
- /proc/cpuinfo
- hwinfo
- lshw
Secara khusus Anda ingin mencari bidang yang mengatakan hal-hal seperti "width:64" atau "width:32" jika Anda menggunakan alat seperti lshw
, atau cari bendera:
lm
:Mode Panjang (x86-64:amd64, juga dikenal sebagai Intel 64, artinya mampu 64-bit)lahf_lm
:LAHF/SAHF dalam mode panjang
Hadiah dari 2 flag ini memberi tahu Anda bahwa CPU adalah 64-bit. Ketidakhadiran mereka memberi tahu Anda bahwa itu 32-bit.
Lihat URL ini untuk informasi tambahan tentang bendera CPU.
- Apa arti flag di /proc/cpuinfo?
- Bendera fitur CPU dan artinya
Referensi
halaman manual
- halaman manual lscpu
- /halaman referensi proc/cpuinfo
- hapus nama halaman manual
- halaman manual hwinfo
- halaman manual getconf
artikel:
- Periksa apakah mesin berjalan pada Prosesor 64 bit atau 32 bit/Linux OS?
- Cari tahu apakah prosesor 32bit atau 64 (Linux)
- Butuh Bantuan :pemeriksaan 32 bit / 64 bit untuk Linux
Jika kernel Anda adalah kernel linux 32 bit, Anda tidak akan dapat menjalankan program 64 bit, meskipun prosesor Anda mendukungnya.
Instal kernel 64 bit (dan seluruh OS tentunya) untuk menjalankan 64 bit
Untuk kelengkapan:karena pada sebagian besar arsitektur 64-bit dimungkinkan untuk menjalankan kode 32-bit, baik di ruang kernel maupun ruang pengguna, orang tidak boleh lupa bahwa sebenarnya ada 4 kemungkinan kombinasi:
- Ruang pengguna 32-bit pada kernel 32-bit
- Ruang pengguna 64-bit pada kernel 64-bit
- Ruang pengguna 32-bit pada kernel 64-bit
- keduanya Ruang pengguna 64-bit dan 32-bit pada kernel 64-bit
uname
adalah cara biasa untuk menentukan varian kernel. Untuk ruang pengguna, file
cukup baik dalam mengenali executable:file $SHELL
atau file /sbin/init
adalah idiom yang nyaman. Hanya keberadaan keduanya /lib/*.so
dan /lib64/*.so
biasanya merupakan indikasi yang baik, bahwa sistem menggunakan kedua varian ruang pengguna.