Apakah prosesor saya 64 atau 32 bit?

41

Saya di Ubuntu dan saya melakukan perintah ini:

$ uname -a
Linux slabrams-desktop 2.6.32-29-generic #58-Ubuntu SMP Fri Feb 11 19:00:09 UTC 2011 i686 GNU/Linux

Apakah ini berarti saya menggunakan prosesor 32bit atau 64 bit?

Alasan saya mencoba mencari tahu adalah karena saya mendapatkan kesalahan yang terlihat seperti ini:

cannot execute binary file

dan dari Googling, saya pikir itu masalah prosesor. Ada ide?

Genadinik
sumber
Lihat tautan ini . Penjelasan rinci tentang masalah Anda diberikan.
Prateek

Jawaban:

32

Ini berarti Anda menjalankan kernel 32-bit, yang berarti Anda hanya dapat menjalankan aplikasi 32-bit tanpa menggunakan emulator atau virtualisasi.

Jika Anda ingin melihat apakah prosesor Anda 64-bit, maka cari lmdi flag yang terdaftar /proc/cpuinfo.

Ignacio Vazquez-Abrams
sumber
27
Juga lscpubisa digunakan, dan lebih ramah.
enzotib
@Ignacio Jadi saya punya prosesor 32-bit yang perlu menjalankan sesuatu yang dibuat untuk 64-bit. Apakah itu mungkin?
Genadinik
4
Saya bukan Ignacio, tetapi umumnya tidak. Anda dapat menginstal VM menggunakan produk yang memungkinkan Anda meniru sistem 64-bit dari platform 32-bit.
Eduardo I.
Bobot yang jauh lebih ringan daripada VM adalah chroot atau kontainer lxc yang dipasangkan dengan QEMU. Itu semua tergantung pada apa yang Anda butuhkan.
Ken Sharp
84

Anda bisa menggunakannya lscpu.

someuser@somelaptop:~$ lscpu
Architecture:          i686           # <-- your kernel is 32 bit
CPU op-mode(s):        32-bit, 64-bit # <-- your cpu can handle 32 or 64 bit instructions
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               1199.000
Virtualisation:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K

Penjelasan lebih lanjut tentang bidang Arsitektur:

X86, i686, or i386      means you are running a 32 bit kernel.
X86_64 , amd64 , or X64 means you are running a 64 bit kernel.
Eric Johnson
sumber
1
@slm: bidang arsitektur merujuk ke kernel bukan prosesor. Saya mengedit jawaban saya untuk membuatnya lebih jelas.
Eric Johnson
7

Anda juga dapat memeriksa arsitektur biner Anda mencoba untuk menjalankan dengan menggunakan berkas: file filetocheck. Ini akan menyebutkan 32-bit atau 64-bit.

Eduardo I.
sumber
Ini harus menjadi hal pertama yang diperiksa. 👍
Ken Sharp
3

Ide dasar:

x86_64 adalah 64 bit cpu yang mampu dan i386 adalah 32 bit.

Dengan lscpu

Jawaban panjang: lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            17
Model:                 3
Stepping:              1
CPU MHz:               550.000
BogoMIPS:              4397.92
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
NUMA node0 CPU(s):     0,1

Jawaban singkat lscpu | awk '/CPU op-mode/ {print}

Keluaran: CPU op-mode(s): 32-bit, 64-bit

Dengan lshw

Jawaban panjang: lari sudo lshw

Jawaban yang sedikit lebih pendek: sudo lshw -c cpu

Keluaran:

 *-cpu                   
       description: CPU
       product: AMD Turion(tm) X2 Dual-Core Mobile RM-75
       vendor: Advanced Micro Devices [AMD]
       physical id: 4
       bus info: cpu@0
       version: Turion X2 Mobile RM-75
       slot: Socket M2/S1G1
       size: 550MHz
       capacity: 4GHz
       width: 64 bits
       clock: 200MHz
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp x86-64 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch osvw skinit hw_pstate lbrv svm_lock nrip_save vmmcall cpufr

Jawaban yang lebih singkat: sudo lshw -c cpu | grep width

Keluaran: width: 64 bits

Sergiy Kolodyazhnyy
sumber
2

uname -pberikan arsitektur prosesor. Jika memberi x86_64, itu berarti cpu adalah 64 bit.

Anand
sumber
1
Ini tidak selalu benar, tho.
Braiam
2
@Braiam: Akan lebih bagus jika Anda bisa menjelaskan alasannya.
jobin
5
@ Jonob: uname mencetak informasi tentang kernel yang sedang berjalan, bukan CPU. Misalnya Anda dapat menjalankan kernel 32-bit pada CPU 64-bit.
Cristian Ciupitu
Itu pasti salah.
Ken Sharp