Мій процесор 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-розрядних. Це взагалі можливо?
Генадінік

4
Я не Ігнасіо, але взагалі це не так. Ви можете встановити VM за допомогою продукту, який дозволяє імітувати 64-бітну систему на 32-бітній платформі.
Едуардо І.

Набагато легша вага, ніж ВМ, - це або chroot, або контейнер lxc, породжений QEMU. Все залежить від того, що вам потрібно насправді.
Кен Шарп

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: поле архітектури відноситься до ядра, а не до процесора. Я відредагував свою відповідь, щоб зробити її більш зрозумілою.
Ерік Джонсон

7

Ви також можете перевірити архітектуру бінарного файлу, який ви намагаєтеся запустити, використовуючи файл : file filetocheck. Він буде згадувати або 32-розрядні, або 64-бітні.


Це має бути найперше, що перевіряється. 👍
Кен Шарп

3

Основна ідея:

x86_64 - це 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, це означає, що процесор 64-бітний.


1
Це не завжди правильно, тхо.
Брайам

2
@Braiam: Було б чудово, якби ви могли пояснити, чому.
jobin

5
@Jobin: uname друкує інформацію щодо запущеного ядра, а не процесора. Наприклад, ви можете запустити 32-бітове ядро ​​на 64-розрядному процесорі.
Крістіан Цюпіту

Це, безумовно, неправильно.
Кен Шарп
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.