Saya bingung. Menjalankan Fedora Linux, lscpu
menghasilkan:
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
...
Tetapi ketika saya mencoba menginstal program 64-bit (Chrome) saya mendapatkan error seperti:
Paket / ..........x86_64.rpm memiliki arsitektur x86_64 yang tidak kompatibel. Arsitektur yang valid adalah ['i686', 'i586', 'i486', i386 ']
Saya kurang tertarik untuk dapat menginstal Chrome dan lebih tertarik pada mengapa lscpu
mengatakan bahwa CPU saya dapat berjalan dalam mode 64-bit; jelas ini tidak bisa berarti saya dapat menjalankan program 64-bit. Adakah yang bisa menjelaskan?
cat /proc/cpu
, saya pikir pada saat bootup Anda dapat memilih jika Anda ingin boot dalam mode 64 atau 32 bit/proc/cpuinfo
. Tapi ini menimbulkan lebih banyak pertanyaan aneh. The*_lm
bendera menunjukkan kedua prosesor saya mendukung modus lama, namun ukuran alamat yang "36 bit fisik," ..Jawaban:
lscpu
memberitahu Anda bahwa arsitektur Anda adalah i686 (sebuah CPU Intel 32-bit), dan bahwa CPU Anda mendukung mode pengoperasian 32-bit dan 64-bit. Anda tidak akan dapat menginstal aplikasi yang dibangun x64 karena dibuat khusus untuk arsitektur x64.CPU khusus Anda dapat menangani paket bawaan i386 atau i686. Ada beberapa 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.
/ proc / cpuinfo
Ini sebenarnya adalah data yang disediakan oleh kernel yang sebagian besar dari alat-alat seperti
lscpu
gunakan untuk menampilkan. Saya menemukan output ini sedikit bagus pada kenyataan bahwa itu menunjukkan kepada Anda beberapa info nomor model tentang CPU khusus Anda. Juga akan menunjukkan bagian untuk setiap inti yang mungkin dimiliki CPU Anda.Berikut ini output untuk satu inti:
Inilah yang terlihat seperti 3 baris pertama dari setiap bagian untuk inti:
Output dari
/proc/cpuinfo
juga dapat memberi tahu Anda jenis arsitektur yang disediakan CPU Anda melalui berbagai flag yang ditampilkan. Perhatikan baris-baris ini dari perintah di atas:Bendera yang berakhir dengan
_lm
memberi tahu Anda bahwa prosesor Anda mendukung "mode panjang". Mode panjang adalah nama lain untuk 64-bit.nama kamu
Perintah ini dapat digunakan untuk menentukan platform apa yang dibangun oleh kernel Anda. Sebagai contoh:
Kernel 64-bit
Kernel 32-bit
Output ini dapat disempurnakan sedikit lebih jauh dengan menggunakan switch,
[-m|--machine]
,[-p|--processor]
, dan[-i|--hardware-platform]
.Inilah output untuk sistem yang sama di atas.
64-bit
32-bit
CATATAN: Ada juga versi bentuk pendek
uname -m
yang dapat Anda jalankan sebagai perintah yang berdiri sendiriarch
,. Ini mengembalikan hal yang sama persis denganuname -m
. Anda dapat membaca lebih lanjut tentangarch
perintah dalam dokumentasi coreutils .kutipan
hwinfo
Mungkin alat terbaik untuk menganalisis perangkat keras Anda harus
hwinfo
. Paket ini dapat menunjukkan kepada Anda apa saja yang Anda ingin / perlu ketahui tentang perangkat keras Anda, langsung dari terminal. Ini menyelamatkan saya puluhan kali ketika saya membutuhkan info dari sebuah chip pada motherboard sistem atau perlu mengetahui revisi papan di slot PCI.Anda dapat menanyakannya terhadap berbagai subsistem komputer. Dalam kasus kami, kami akan melihat
cpu
subsistem.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 ide.getconf
Ini mungkin cara yang paling jelas untuk mengetahui arsitektur apa yang disajikan CPU Anda ke OS. Memanfaatkan
getconf
, Anda mempertanyakan variabel sistem LONG_BIT. Ini bukan variabel lingkungan.lih
Namun alat lain, mirip dengan kemampuan
hwinfo
. Anda dapat menanyakan hampir semua hal yang ingin Anda ketahui tentang perangkat keras yang mendasarinya. Sebagai contoh: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 sejarah 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 pada CPU ini. Kebanyakan orang tahu bahwa CPU 32-bit hanya dapat mengatasi 2 ^ 32 = 4GB RAM. Tetapi ada versi CPU yang bisa mengatasi lebih banyak. CPU ini sering menggunakan kernel Linux dengan akhiran PAE - Physical Address Extension . Menggunakan kernel yang diaktifkan PAE bersama dengan perangkat keras ini akan memungkinkan Anda untuk mengatasi hingga 64GB pada sistem 32-bit.
Anda mungkin berpikir dengan baik lalu mengapa saya perlu arsitektur 64-bit? Masalah dengan CPU ini adalah bahwa ruang proses tunggal terbatas pada 2 ^ 32, jadi jika Anda memiliki simulasi besar atau program komputasi yang membutuhkan lebih dari 2 ^ 32 ruang addressable dalam RAM, maka ini tidak akan membantu Anda dengan itu.
Lihatlah halaman wikipedia di mikroarsitektur P6 (i686) untuk informasi lebih lanjut.
TL; DR - Jadi, apa sih arsitektur CPU saya?
Secara umum ini bisa membingungkan karena sejumlah perintah dan metodologi di atas menggunakan istilah "arsitektur" secara longgar. Jika Anda tertarik untuk mengetahui apakah OS yang mendasarinya adalah 32-bit atau 64-bit gunakan perintah ini:
Jika di sisi lain Anda ingin tahu arsitektur CPU gunakan perintah ini:
Khususnya Anda ingin mencari bidang di mana dikatakan hal-hal seperti "width: 64" atau "width: 32" jika Anda menggunakan alat seperti
lshw
, atau mencari benderanya:lm
: Long Mode (x86-64: amd64, juga dikenal sebagai Intel 64, yaitu mampu 64-bit)lahf_lm
: LAHF / SAHF dalam mode panjangHadiah 2 bendera ini memberi tahu Anda bahwa CPU 64-bit. Ketidakhadiran mereka memberi tahu Anda bahwa itu 32-bit.
Lihat URL ini untuk informasi tambahan tentang flag CPU.
Referensi
halaman manual
artikel:
sumber
lscpu
agak menyesatkan dalam "Arsitektur: i686" sebenarnya mengacu pada menjalankan OS 32-bit.Jika kernel Anda adalah kernel linux 32 bit, Anda tidak akan dapat menjalankan program 64 bit, bahkan jika prosesor Anda mendukungnya.
Instal kernel 64 bit (dan seluruh OS tentunya) untuk menjalankan 64 bit
sumber
Untuk kelengkapan: karena pada sebagian besar arsitektur 64-bit dimungkinkan untuk menjalankan kode 32-bit, baik di ruang kernel dan ruang pengguna, orang tidak boleh lupa bahwa sebenarnya ada 4 kemungkinan kombinasi:
uname
adalah cara yang biasa untuk menentukan varian kernel. Untuk ruang pengguna,file
cukup baik dalam mengenali executable:file $SHELL
ataufile /sbin/init
idiom yang nyaman. Hanya keberadaan keduanya/lib/*.so
dan/lib64/*.so
biasanya merupakan indikasi yang baik, bahwa sistem olahraga kedua varian ruang pengguna.sumber
Untuk mengetahui apakah Ubuntu yang diinstal adalah 32 atau 64 bit:
a) getconf LONG_BIT
b) uname -m
Jika itu menunjukkan i686 atau i386 itu berarti 32 bit. Jika ini menunjukkan x86_64 itu berarti 64 bit.
Jika CPU 32 bit Ubuntu harus dari 32 bit. Jika CPU 64 bit, ia bisa bekerja dalam 64 atau 32 bit. Jadi kita dapat memilih: Ubuntu dapat terdiri dari 32 bit atau 64 bit.
Untuk mengetahui apakah CPU 32 atau 64 bit:
a) grep -w lm / proc / cpuinfo
Jika kita melihat lm berwarna merah adalah 64 bit. Sebaliknya 32 bit.
b) sudo lshw | grep "description: CPU" -A 12 | lebar grep
Itu mengatakan dengan jelas apa yang ingin kita ketahui.
Perintah untuk kedua info:
lscpu
Kita hanya perlu melihat ke 2 baris pertama dari output: "Arsitektur" menginformasikan tentang versi Linux yang diinstal: "i686 ″ mewakili salah satu dari 32 bit, sedangkan" x86_64 ″ adalah singkatan dari 64 bit. "CPU op-mode (s)" menginformasikan tentang CPU. "32-bit" mewakili salah satu dari 32 bit, sedangkan "32-bit, 64-bit" atau "64-bit" adalah singkatan dari 64 bit.
sumber