โปรเซสเซอร์ของฉันเป็น 64 หรือ 32 บิตหรือไม่


41

ฉันอยู่บน Ubuntu และฉันทำตามคำสั่งนี้:

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

มันหมายความว่าฉันใช้โปรเซสเซอร์ 32 บิตหรือ 64 บิตใช่ไหม

เหตุผลที่ฉันพยายามคิดออกคือฉันได้รับข้อผิดพลาดซึ่งมีลักษณะเช่นนี้:

cannot execute binary file

และจาก Googling ฉันคิดว่านี่เป็นปัญหาตัวประมวลผล ความคิดใด ๆ


ลองลิงค์นี้ รายละเอียดของปัญหาของคุณจะได้รับ
Prateek

คำตอบ:


32

หมายความว่าคุณกำลังใช้เคอร์เนลแบบ 32 บิตซึ่งหมายความว่าคุณสามารถเรียกใช้แอพแบบ 32 บิตได้โดยไม่ต้องใช้ตัวจำลองหรือการจำลองเสมือน

หากคุณต้องการที่จะดูว่าโปรเซสเซอร์ของคุณเป็น 64 บิตแล้วมองหาในธงที่ระบุไว้ในlm/proc/cpuinfo


27
นอกจากนี้ยังlscpuสามารถนำมาใช้และเป็นมิตรมากขึ้น
enzotib

@Ignacio ดังนั้นฉันมีหน่วยประมวลผลแบบ 32 บิตซึ่งจะต้องเรียกใช้สิ่งที่ทำสำหรับ 64 บิต เป็นไปได้ไหม?
Genadinik

4
ฉันไม่ใช่อิกนาชิโอ แต่โดยทั่วไปแล้วไม่ใช่ คุณสามารถติดตั้ง VM โดยใช้ผลิตภัณฑ์ที่ให้คุณเลียนแบบระบบ 64 บิตและแพลตฟอร์ม 32 บิต
Eduardo I.

น้ำหนักที่เบากว่า VM เป็น chroot หรือ lxc container จับคู่กับ QEMU ทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการจริงๆ
Ken Sharp

84

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

คำอธิบายเพิ่มเติมของฟิลด์สถาปัตยกรรม:

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: ฟิลด์สถาปัตยกรรมอ้างอิงถึงเคอร์เนลไม่ใช่โปรเซสเซอร์ ฉันแก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้น
Eric Johnson

7

file filetocheckนอกจากนี้คุณยังสามารถตรวจสอบสถาปัตยกรรมของไบนารีที่คุณกำลังพยายามที่จะดำเนินการโดยใช้ไฟล์: มันจะพูดถึงอย่างใดอย่างหนึ่ง 32- บิตหรือ 64- บิต


นี่ควรเป็นสิ่งแรกที่มีการตรวจสอบ 👍
Ken Sharp

3

แนวคิดพื้นฐาน:

x86_64 เป็น CPU ที่มีความสามารถ 64 บิตและ i386 เป็น 32 บิต

ด้วย lscpu

คำตอบยาว: 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

คำตอบสั้น ๆ lscpu | awk '/CPU op-mode/ {print}

ผลผลิต: CPU op-mode(s): 32-bit, 64-bit

ด้วย lshw

คำตอบยาว: วิ่ง sudo lshw

คำตอบที่สั้นลงเล็กน้อย: sudo lshw -c cpu

เอาท์พุท:

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

แม้แต่คำตอบที่สั้นกว่า: sudo lshw -c cpu | grep width

เอาท์พุท: width: 64 bits


2

uname -pให้สถาปัตยกรรมของโปรเซสเซอร์ ถ้ามันให้x86_64หมายความว่า cpu เป็น 64 บิต


1
นี่ไม่ถูกเสมอไป
Braiam

2
@Braiam: จะดีถ้าคุณสามารถอธิบายได้ว่าทำไม
jobin

5
@Jobin: unameพิมพ์ข้อมูลเกี่ยวกับเคอร์เนลที่กำลังทำงานไม่ใช่ CPU ตัวอย่างเช่นคุณสามารถเรียกใช้เคอร์เนลแบบ 32 บิตบน CPU แบบ 64 บิต
Cristian Ciupitu

นั่นไม่ถูกต้องแน่นอน
Ken Sharp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.