lscpu
đang nói với bạn rằng kiến trúc của bạn là i686 (CPU Intel 32 bit) và CPU của bạn hỗ trợ cả hai chế độ hoạt động 32 bit và 64 bit. Bạn sẽ không thể cài đặt các ứng dụng được xây dựng x64 vì chúng được xây dựng dành riêng cho kiến trúc x64.
CPU cụ thể của bạn có thể xử lý các gói được xây dựng i386 hoặc i686. Có một số cách để xác minh tùy chọn kiến trúc & hệ điều hành của bạn.
Như bạn đã biết, bạn có thể sử dụng lệnh lscpu. Nó hoạt động tốt trong việc cung cấp cho bạn một ý tưởng sơ bộ về khả năng CPU của bạn.
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 1199.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
Đây thực sự là dữ liệu được cung cấp bởi kernel mà hầu hết các công cụ như lscpu
sử dụng để hiển thị. Tôi thấy đầu ra này hơi tốt trong thực tế là nó cho bạn thấy một số thông tin số mô hình về CPU cụ thể của bạn. Ngoài ra, nó sẽ hiển thị cho bạn một phần cho mỗi lõi mà CPU của bạn có thể có.
Đây là đầu ra cho một lõi đơn:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
stepping : 5
cpu MHz : 1466.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips : 5319.74
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Đây là 3 dòng đầu tiên của mỗi phần cho một lõi trông như thế nào:
$ grep processor -A 3 /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 37
--
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 37
Đầu ra từ /proc/cpuinfo
cũng có thể cho bạn biết loại kiến trúc mà CPU của bạn đang cung cấp thông qua các cờ khác nhau mà nó hiển thị. Lưu ý các dòng này từ lệnh trên:
$ grep /proc/cpuinfo | head -1
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
Các cờ kết thúc _lm
cho bạn biết rằng bộ xử lý của bạn hỗ trợ "chế độ dài". Chế độ dài là tên gọi khác của 64-bit.
Lệnh này có thể được sử dụng để xác định nền tảng nào mà kernel của bạn được xây dựng để hỗ trợ. Ví dụ:
Nhân 64 bit
$ uname -a
Linux grinchy 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Nhân 32 bit
$ uname -a
Linux skinner.bubba.net 2.6.18-238.19.1.el5.centos.plus #1 SMP Mon Jul 18 10:07:01 EDT 2011 i686 i686 i386 GNU/Linux
Sản lượng này có thể được cải tiến một chút nữa bằng cách sử dụng công tắc, [-m|--machine]
, [-p|--processor]
, và [-i|--hardware-platform]
.
Đây là đầu ra cho các hệ thống trên.
64-bit
$ uname -m; uname -p; uname -i
x86_64
x86_64
x86_64
32-bit
$ uname -m; uname -p; uname -i
i686
i686
i386
LƯU Ý: Ngoài ra còn có phiên bản dạng ngắn uname -m
mà bạn có thể chạy dưới dạng một lệnh độc lập , arch
. Nó trả về chính xác điều tương tự như uname -m
. Bạn có thể đọc thêm về arch
lệnh trong tài liệu coreutils .
đoạn trích
vòm in tên phần cứng của máy và tương đương với 'uname -m'.
Có lẽ là công cụ tốt nhất để phân tích phần cứng của bạn phải có hwinfo
. Gói này có thể hiển thị cho bạn khá nhiều thứ bạn muốn / cần biết về bất kỳ phần cứng nào của bạn, ngay từ thiết bị đầu cuối. Việc này giúp tôi tiết kiệm hàng chục lần khi tôi cần một số thông tin về chip trên bo mạch chủ của hệ thống hoặc cần biết sửa đổi bảng trong khe cắm PCI.
Bạn có thể truy vấn nó dựa trên các hệ thống con khác nhau của máy tính. Trong trường hợp của chúng tôi, chúng tôi sẽ xem xét cpu
hệ thống con.
$ hwinfo --cpu
01: None 00.0: 10103 CPU
[Created at cpu.301]
Unique ID: rdCR.a2KaNXABdY4
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,xtopology,nonstop_tsc,aperfmperf,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,smx,est,tm2,ssse3,cx16,xtpr,pdcm,sse4_1,sse4_2,popcnt,aes,lahf_lm,ida,arat,tpr_shadow,vnmi,flexpriority,ept,vpid
Clock: 2666 MHz
BogoMips: 5319.74
Cache: 3072 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
Một lần nữa, tương tự như /proc/cpuinfo
lệnh này cho bạn thấy trang điểm của từng lõi riêng lẻ trong một hệ thống đa lõi. Đây là dòng đầu tiên từ mỗi phần của lõi, chỉ để cung cấp cho bạn một ý tưởng.
$ hwinfo --cpu | grep CPU
01: None 00.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
02: None 01.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
03: None 02.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
04: None 03.0: 10103 CPU
Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"
Đây có lẽ là cách rõ ràng nhất để nói kiến trúc mà CPU của bạn đang trình bày với HĐH. Sử dụng getconf
, truy vấn của bạn biến hệ thống LONG_BIT. Đây không phải là một biến môi trường.
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
Một công cụ khác, tương tự về khả năng hwinfo
. Bạn có thể truy vấn khá nhiều thứ bạn muốn biết về phần cứng bên dưới. Ví dụ:
# 64-bit Kernel
$ lshw -class cpu
*-cpu
description: CPU
product: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
vendor: Intel Corp.
physical id: 6
bus info: cpu@0
version: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
slot: None
size: 1199MHz
capacity: 1199MHz
width: 64 bits
clock: 133MHz
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid cpufreq
configuration: cores=2 enabledcores=2 threads=4
# 32-bit Kernel
$ lshw -class cpu
*-cpu:0
description: CPU
product: Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz
vendor: Intel Corp.
physical id: 400
bus info: cpu@0
version: 6.15.2
serial: 0000-06F2-0000-0000-0000-0000
slot: Microprocessor
size: 1800MHz
width: 64 bits
clock: 800MHz
capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe x86-64 constant_tsc pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
configuration: id=1
*-logicalcpu:0
description: Logical CPU
physical id: 1.1
width: 64 bits
capabilities: logical
*-logicalcpu:1
description: Logical CPU
physical id: 1.2
width: 64 bits
capabilities: logical
CPU op-mode (s)?
Một số lệnh báo cáo rằng những gì có vẻ là CPU 32 bit như hỗ trợ chế độ 32 bit & 64 bit. Điều này có thể hơi khó hiểu và gây hiểu lầm, nhưng nếu bạn hiểu lịch sử của CPU, cụ thể là Intel, bạn sẽ biết rằng họ có lịch sử chơi trò chơi với các sản phẩm của mình trong đó CPU có thể có bộ hướng dẫn hỗ trợ 16 bit, nhưng có thể giải quyết nhiều RAM hơn 2 ^ 16.
Điều tương tự đang diễn ra với các CPU này. Hầu hết mọi người đều biết rằng CPU 32 bit chỉ có thể giải quyết 2 ^ 32 = 4GB RAM. Nhưng có những phiên bản CPU có thể giải quyết nhiều hơn. Các CPU này thường sử dụng nhân Linux với hậu tố PAE - Phần mở rộng địa chỉ vật lý . Sử dụng kernel hỗ trợ PAE cùng với phần cứng này sẽ cho phép bạn giải quyết tối đa 64GB trên hệ thống 32 bit.
Bạn có thể nghĩ tốt sau đó tại sao tôi cần một kiến trúc 64 bit? Vấn đề với các CPU này là một không gian xử lý duy nhất bị giới hạn ở 2 ^ 32, vì vậy nếu bạn có một chương trình mô phỏng hoặc tính toán lớn cần nhiều hơn 2 ^ 32 không gian có thể định địa chỉ trong RAM, thì điều này sẽ không giúp bạn với.
Hãy xem trang wikipedia trên vi kiến trúc P6 (i686) để biết thêm thông tin.
TL; DR - Vậy kiến trúc CPU của tôi là cái quái gì vậy?
Nói chung, nó có thể gây nhầm lẫn bởi vì một số lệnh và phương pháp ở trên đang sử dụng thuật ngữ "kiến trúc" một cách lỏng lẻo. Nếu bạn quan tâm đến việc hệ điều hành cơ bản là 32 bit hay 64 bit, hãy sử dụng các lệnh sau:
- lscpu
- nhận được LONG_BIT
- uname
Mặt khác, nếu bạn muốn biết kiến trúc của CPU, hãy sử dụng các lệnh sau:
- / Proc / cpuinfo
- hwinfo
- lshw
Cụ thể, bạn muốn tìm các trường có ghi những thứ như "width: 64" hoặc "width: 32" nếu bạn đang sử dụng một công cụ như lshw
hoặc tìm các cờ:
lm
: Chế độ dài (x86-64: amd64, còn được gọi là Intel 64, tức là có khả năng 64 bit)
lahf_lm
: LAHF / SAHF ở chế độ dài
Quà của 2 lá cờ này cho bạn biết rằng CPU là 64 bit. Sự vắng mặt của họ cho bạn biết rằng đó là 32-bit.
Xem các URL này để biết thêm thông tin về các cờ CPU.
Người giới thiệu
trang người đàn ông
bài viết:
cat /proc/cpu
, tôi nghĩ lúc khởi động bạn có thể chọn nếu bạn muốn khởi động ở chế độ 64 hoặc 32 bit