Bộ xử lý của tôi là 64 hay 32 bit?


41

Tôi đang dùng Ubuntu và tôi đã thực hiện lệnh này:

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

Có nghĩa là tôi đang sử dụng bộ xử lý 32 bit hoặc 64 bit?

Lý do tôi đang cố gắng để tìm ra điều này là vì tôi đã gặp phải lỗi giống như thế này:

cannot execute binary file

và từ Googling, tôi nghĩ đó là vấn đề của bộ xử lý. Có ý kiến ​​gì không?


Kiểm tra liên kết này . Một mô tả chi tiết về vấn đề của bạn được đưa ra.
Prateek

Câu trả lời:


32

Điều đó có nghĩa là bạn đang chạy kernel 32 bit, điều đó có nghĩa là bạn chỉ có thể chạy các ứng dụng 32 bit mà không cần sử dụng trình giả lập hoặc ảo hóa.

Nếu bạn muốn xem bộ xử lý của mình là 64-bit thì hãy tìm lmtrong các cờ được liệt kê trong /proc/cpuinfo.


27
Cũng lscpucó thể được sử dụng, và thân thiện hơn.
enzotib

@Ignacio Vì vậy, tôi có bộ xử lý 32 bit sẽ cần chạy thứ gì đó được tạo cho 64 bit. Đó có phải là tất cả có thể?
Genadinik

4
Tôi không phải là Ignacio, nhưng nói chung là không. Mặc dù vậy, bạn có thể cài đặt VM bằng cách sử dụng một sản phẩm cho phép bạn mô phỏng hệ thống 64 bit oa nền tảng 32 bit.
Eduardo I.

Trọng lượng nhẹ hơn nhiều so với VM là một chroot hoặc một thùng chứa lxc kết hợp với QEMU. Tất cả phụ thuộc vào những gì bạn cần thực sự.
Ken Sharp

84

Bạn có thể sử dụng 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

Giải thích thêm về lĩnh vực Kiến trúc:

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.

1
@slm: trường kiến ​​trúc đề cập đến kernel chứ không phải bộ xử lý. Tôi chỉnh sửa câu trả lời của tôi để làm cho nó rõ ràng hơn.
Eric Johnson

7

Bạn cũng có thể kiểm tra kiến ​​trúc của tệp nhị phân bạn đang cố chạy bằng tệp : file filetocheck. Nó sẽ đề cập đến 32-bit hoặc 64-bit.


Đây phải là điều đầu tiên được kiểm tra. 👍
Ken Sharp

3

Ý kiến ​​cơ bản:

x86_64 là cpu có khả năng 64 bit và i386 là 32 bit.

Với lscpu

Câu trả lời dài: 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

Câu trả lời ngắn lscpu | awk '/CPU op-mode/ {print}

Đầu ra: CPU op-mode(s): 32-bit, 64-bit

Với lshw

Câu trả lời dài: chạy sudo lshw

Câu trả lời ngắn hơn một chút: sudo lshw -c cpu

Đầu ra:

 *-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

Câu trả lời thậm chí ngắn hơn: sudo lshw -c cpu | grep width

Đầu ra: width: 64 bits


2

uname -pđưa ra kiến ​​trúc của bộ xử lý. Nếu nó cho x86_64, nó có nghĩa là cpu là 64 bit.


1
Điều này không phải lúc nào cũng đúng, tho.
Braiam

2
@Braiam: Sẽ thật tuyệt nếu bạn có thể giải thích tại sao.
việc

5
@Jobin: uname in thông tin liên quan đến kernel đang chạy chứ không phải CPU. Ví dụ: bạn có thể chạy kernel 32 bit trên CPU 64 bit.
Cristian Ciupitu

Điều đó chắc chắn không chính xác.
Ken Sharp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.