Coba uname -m
. Yang singkat uname --machine
dan hasilnya:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Jika tidak, bukan untuk kernel Linux, tetapi untuk CPU , Anda mengetik:
cat /proc/cpuinfo
atau:
grep flags /proc/cpuinfo
Di bawah parameter "flags", Anda akan melihat berbagai nilai: lihat " Apa arti flag dalam / proc / cpuinfo? " Di antara mereka, satu bernama lm
: Long Mode
( x86-64 : amd64, juga dikenal sebagai Intel 64, yaitu 64-bit mampu)
lm ==> 64-bit processor
Atau menggunakanlshw
(seperti yang disebutkan di bawah oleh Rolf of Saxony ), tanpa sudo
(hanya untuk menangkap lebar cpu):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Catatan: Anda dapat memiliki CPU 64-bit dengan kernel 32-bit diinstal .
(seperti ysdx menyebutkan dalam jawabannya sendiri , "Saat ini, sebuah sistem bisa multiarch sehingga tidak masuk akal juga. Anda mungkin ingin mencari target default dari kompiler")
uname -i
,uname -p
danuname -m
tampilkan?Jika Anda menjalankan platform 64 bit, Anda akan melihat x86_64 atau sesuatu yang sangat mirip pada output dari uname -a
Untuk menjalankan nama perangkat keras mesin spesifik Anda
Anda juga bisa menelepon
yang mengembalikan 32 atau 64
sumber
uname -m
keluaranx86_64
getconf LONG_BIT
keluaran32
mana yang benar ?? : \uname -m
tidak berguna untuk QPconfigure
karena dapat memberikan hasil yang salah. Thegetconf LONG_BIT
mendapatkan ukuran bit default dari C library yang mungkin tidak menjadi ukuran yang benar untuk ditentukan, olehCC
, compiler.getconf LONG_BIT
mungkin menyediakan 32 ig itu telah dibangun sebagai aplikasi 32 bit (biasanya 64 bit kernel menjalankan userland 32 bit).lscpu
akan mencantumkan ini di antara informasi lain mengenai CPU Anda:sumber
Perintah lain yang berguna untuk penentuan mudah adalah sebagai berikut:
Perintah:
Menjawab:
sumber
Perintah
setara dengan
tetapi dua kali lebih cepat untuk mengetik
sumber
Saya bertanya-tanya tentang hal ini khusus untuk membangun perangkat lunak dalam Debian (sistem Debian yang diinstal dapat berupa versi 32-bit dengan kernel 32-bit, pustaka, dll., Atau dapat berupa versi 64-bit dengan hal-hal yang dikompilasi untuk 64- bit daripada mode kompatibilitas 32-bit).
Paket Debian sendiri perlu tahu untuk apa arsitekturnya (tentu saja) ketika mereka benar-benar membuat paket dengan semua metadata-nya, termasuk arsitektur platform, jadi ada alat pengemasan yang mengeluarkannya untuk alat pengemasan dan skrip lain untuk digunakan, disebut dpkg-arsitektur . Ini mencakup apa yang dikonfigurasi untuk membangun, serta host saat ini. (Biasanya ini sama saja.) Contoh output pada mesin 64-bit:
Anda dapat mencetak hanya satu dari variabel-variabel itu atau melakukan tes terhadap nilainya dengan opsi baris perintah ke dpkg -architecture.
Saya tidak tahu bagaimana arsitektur dpkg menyimpulkan arsitektur, tetapi Anda bisa melihat dokumentasi atau kode sumbernya (arsitektur dpkg dan sebagian besar sistem dpkg pada umumnya adalah Perl).
sumber
dpkg --architecture
untuk mendapatkan arsitektur sistem host, yang tidak memerlukandpkg-dev
paket untuk diinstal.dpkg: error: unknown option --architecture
untuk dpkg 1.17.5ubuntu dari 14.04. dpkg-architecture (dengan dpkg-dev diinstal) berfungsi dengan baik.dpkg --print-architecture
telah bekerja pada Debian sejak selamanya. Yang ini berfungsi tetapi terbatas pada Debian dan turunannya.sumber
Jika Anda memiliki OS 64-bit, bukan i686, Anda memiliki
x86_64
atauia64
dalam outputuname -a
. Dalam hal ini Anda tidak memiliki salah satu dari dua string ini; Anda memiliki OS 32-bit (perhatikan bahwa ini tidak berarti bahwa CPU Anda tidak 64-bit).sumber
uname
output yang menunjukkan OS 64-bit. Tidak semua dunia adalah x86 atau Itanium ...Sistem itu 32bit. iX86 in
uname
berarti arsitekturnya adalah 32-bit. Jika 64 bit, itu akan kembalisumber
Saat ini, suatu sistem bisa multiarch sehingga tidak masuk akal pula. Anda mungkin ingin menemukan target default dari kompiler:
Anda dapat mencoba mengompilasi hello world:
sumber
cc -v | grep …
kompiler, seseorang hanya dapat menggunakancc -dumpmachine
, yang tidak memerlukan grepping dan didukung tidak hanya oleh GCC.Sehubungan dengan jawaban "getconf LONG_BIT" .
Saya menulis fungsi sederhana untuk melakukannya di 'C':
Ide bagus, 'getconf'!
sumber
CHAR_BIT*sizeof(void*)
atau__WORDSIZE
dalam C.fgets
: stackoverflow.com/questions/16323185/…Anda juga dapat memeriksa menggunakan variabel lingkungan:
Hasil:
i386
-> 32 bitx86_64
-> 64 bitDiambil dari: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
sumber
/bin/bash
bukan variabel lingkungan. Jika Anda sudah bergantung pada Bash, ini berfungsi dengan baik. Namun, hasilnya bisai386
,i486
,i586
,i686
dan lain-lain jadi hati-hati.Di Bash, menggunakan integer overflow:
Ini jauh lebih efisien daripada memanggil proses lain atau membuka file.
sumber
getconf menggunakan panggilan sistem paling sedikit:
sumber
Jika Anda menggeser 1 ke kiri sebesar 32 dan Anda mendapatkan 1, sistem Anda adalah 32 bit. Jika Anda menggeser 1 kiri sebesar 64 dan Anda mendapatkan 1, sistem Anda adalah 64 bit.
Dengan kata lain,
if echo $((1<<32)) gives 1 then your system is 32 bit
.if echo $((1<<64)) gives 1 then your system is 64 bit
.sumber
Jika satu sangat terbatas dalam binari yang tersedia (misalnya dalam initramfs), kolega saya menyarankan:
Pada sistem ALT Linux saya, i586 memiliki
/lib/ld-linux.so.2
dan x86_64 memiliki/lib64/ld-linux-x86-64.so.2
.sumber
sumber
Saya tidak percaya bahwa selama ini, tidak ada yang menyebutkan:
untuk mendapatkan perincian tentang kecepatan, kuantitas, ukuran dan kemampuan perangkat keras CPU.
sumber
Skrip sederhana untuk mendapatkan 64 bit atau 32 bit
sumber
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Berdasarkan fakta bahwa 64-bit biasanya
x86_64
dan 32-biti686
dll.sumber
Pertama, Anda harus mengunduh Virtual Box. Kemudian pilih Linux baru dan 32-bit. Kemudian boot linux menggunakannya. Jika boot maka 32 bit jika tidak maka 64 bit.
sumber