"uname -m" adalah perintah yang Anda cari. Anda dapat menjalankan 32bit dan 64bit pada prosesor intel dan AMD modern, jadi "uname -p" tidak akan membantu Anda (selain itu sebagian besar tidak berfungsi hari ini, ini di sini core2 memikirkan tanggapan untuk "uname -p" tidak diketahui").
Mencari keberadaan / usr / lib64 (seperti yang telah disarankan) juga tidak akan membantu Anda, karena beberapa paket perangkat keras dan sistem yang terkait akan menginstal pustaka 32bit dan 64bit agar aman. Pada sistem saya (debian) paket fakeroot tidak hanya itu.
Adapun output dari "uname -m", jika i386 atau i686 32bit, jika x86_64 (atau alpha, atau ia64 atau arsitektur 64bit lainnya yang belum pernah saya lihat :) ini 64bit.
(selain menyenangkan, server FreeBSD 64bit saya mengembalikan "amd64", yang mungkin sedikit aneh untuk intel quadcore tetapi benar-benar dapat dimengerti jika Anda mengetahui sejarah arsitektur x86 64bit)
apakah ini memberitahu Anda arsitektur instalasi atau arsitektur CPU yang sebenarnya. Misalnya, jika Anda menginstal OS 32-bit pada cpu 64bit, apakah ini akan mengembalikan i686 atau x86_64?
monkut
15
uname -a dan cari x86_64. Jika Anda ingin tahu apakah CPU Anda dapat menangani 64bit, cat / proc / cpuinfo dan cari lm di dalam flag.
Hanya untuk membingungkan, Anda dapat menjalankan kernel 64bit dengan userland 32bit, itulah yang saya lakukan. Dalam hal ini, uname -mkembali x86_64tetapi saya tidak memiliki perpustakaan 64bit yang diinstal sehingga sebagian besar program 64bit tidak akan berjalan.
Jadi, sekali Anda memeriksa nama, Anda perlu mencari /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.sodan /lib/ld-linux.so.2, /lib/libc-2.7.sountuk melihat apakah pustaka 64bit dan 32bit tersedia. Dan untuk benar-benar memastikan, jalankan file-file itu dan lihat apakah mereka mengeksekusi dengan benar.
Sepotong informasi lain yang bermanfaat adalah keluaran lsb_release -ayang cross-distro dan akan melaporkan modul LSB spesifik arsitektur apa yang tersedia.
uname -m hanya akan memberi Anda arsitektur 'arch' / kernel yang sedang berjalan. Ini TIDAK akan memberi tahu Anda jika Anda menjalankan distribusi GNU / Linux 32 bit pada CPU berkemampuan 64bit.
Untuk mengetahui kemampuan CPU Anda:
cat /proc/cpuinfo
Bendera 'LM' harus ada dalam sistem 64bits karena mewakili 'LONG MODE' (Ekstensi 64bit, AMD64 AMD atau EM64T Intel).
Jawaban:
"uname -m" adalah perintah yang Anda cari. Anda dapat menjalankan 32bit dan 64bit pada prosesor intel dan AMD modern, jadi "uname -p" tidak akan membantu Anda (selain itu sebagian besar tidak berfungsi hari ini, ini di sini core2 memikirkan tanggapan untuk "uname -p" tidak diketahui").
Mencari keberadaan / usr / lib64 (seperti yang telah disarankan) juga tidak akan membantu Anda, karena beberapa paket perangkat keras dan sistem yang terkait akan menginstal pustaka 32bit dan 64bit agar aman. Pada sistem saya (debian) paket fakeroot tidak hanya itu.
Adapun output dari "uname -m", jika i386 atau i686 32bit, jika x86_64 (atau alpha, atau ia64 atau arsitektur 64bit lainnya yang belum pernah saya lihat :) ini 64bit.
(selain menyenangkan, server FreeBSD 64bit saya mengembalikan "amd64", yang mungkin sedikit aneh untuk intel quadcore tetapi benar-benar dapat dimengerti jika Anda mengetahui sejarah arsitektur x86 64bit)
sumber
uname -a dan cari x86_64. Jika Anda ingin tahu apakah CPU Anda dapat menangani 64bit, cat / proc / cpuinfo dan cari lm di dalam flag.
sumber
untuk RedHat / CentOS:
32-bit
64-bit
sumber
Hanya untuk membingungkan, Anda dapat menjalankan kernel 64bit dengan userland 32bit, itulah yang saya lakukan. Dalam hal ini,
uname -m
kembalix86_64
tetapi saya tidak memiliki perpustakaan 64bit yang diinstal sehingga sebagian besar program 64bit tidak akan berjalan.Jadi, sekali Anda memeriksa nama, Anda perlu mencari
/lib64/ld-linux-x86-64.so.2
,/lib64/libc-2.7.so
dan/lib/ld-linux.so.2
,/lib/libc-2.7.so
untuk melihat apakah pustaka 64bit dan 32bit tersedia. Dan untuk benar-benar memastikan, jalankan file-file itu dan lihat apakah mereka mengeksekusi dengan benar.Sepotong informasi lain yang bermanfaat adalah keluaran
lsb_release -a
yang cross-distro dan akan melaporkan modul LSB spesifik arsitektur apa yang tersedia.sumber
lsb_release -a
tidak menampilkan arsitektur userland$> getconf LONG_BIT
Jawaban: 32 atau 64.sumber
Cara lain untuk melakukannya adalah dengan menanyakan perl apa yang dikatakan kompiler ukuran bilangan bulat panjang adalah:
vs.
Atau, jika Anda menginstal gcc, hal yang sama dalam C:
vs.
:-)
sumber
Sebagai duplikat dari:
Linux + cara memverifikasi versi linux 32 Bit atau 64 Bit
uname -m hanya akan memberi Anda arsitektur 'arch' / kernel yang sedang berjalan. Ini TIDAK akan memberi tahu Anda jika Anda menjalankan distribusi GNU / Linux 32 bit pada CPU berkemampuan 64bit.
Untuk mengetahui kemampuan CPU Anda:
Bendera 'LM' harus ada dalam sistem 64bits karena mewakili 'LONG MODE' (Ekstensi 64bit, AMD64 AMD atau EM64T Intel).
sumber
sumber
Jika Anda memiliki / usr / lib64 Anda menjalankan x86_64 ..
sumber
Perintah Brad Gilbert memiliki bug perl. Saya sudah memperbaikinya dan perintah di bawah ini berfungsi: cat / proc / cpuinfo | grep ^ flags | perl -e '$ = <>; cetak ($ ? "x86_64 \ n": "not x86_64 \ n")'
sumber