Mon processeur est-il 64 ou 32 bits?

41

Je suis sur Ubuntu et j'ai fait cette commande:

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

Est-ce que cela signifie que je suis sur un processeur 32 bits ou 64 bits?

La raison pour laquelle j'essaie de comprendre cela est que j'avais des erreurs qui ressemblaient à ceci:

cannot execute binary file

et de Google, je pensais que c'était un problème de processeur. Des idées?

Genadinik
la source
Découvrez ce lien . Une description détaillée de votre problème est donnée.
Prateek

Réponses:

32

Cela signifie que vous exécutez un noyau 32 bits, ce qui signifie que vous ne pouvez exécuter que des applications 32 bits sans utiliser d'émulateur ou de virtualisation.

Si vous voulez voir si votre processeur est 64 bits, recherchez lmles drapeaux répertoriés dans /proc/cpuinfo.

Ignacio Vazquez-Abrams
la source
27
Aussi lscpupeut être utilisé, et est plus convivial.
enzotib
@ Ignacio Donc, j'ai un processeur 32 bits qui devra exécuter quelque chose qui est fait pour 64 bits. Est-ce que c'est possible?
Genadinik
4
Je ne suis pas Ignacio, mais généralement pas. Vous pouvez toutefois installer une machine virtuelle à l'aide d'un produit vous permettant d'émuler un système 64 bits sur une plate-forme 32 bits.
Eduardo I.
Un poids beaucoup plus léger qu'un ordinateur virtuel est un chroot ou un conteneur lxc jumelé avec QEMU. Tout dépend de ce dont vous avez vraiment besoin.
Ken Sharp
84

Vous pouvez utiliser 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

Explication supplémentaire du domaine de l'architecture:

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
la source
1
@slm: le champ architecture fait référence au noyau et non au processeur. J'ai édité ma réponse pour la rendre plus claire.
Eric Johnson
7

Vous pouvez également vérifier l'architecture du binaire que vous essayez d'exécuter le fichier en utilisant: file filetocheck. Il mentionnera soit 32 bits ou 64 bits.

Eduardo I.
la source
Cela devrait être la toute première chose vérifiée. 👍
Ken Sharp ,
3

Idée basique:

x86_64 est une unité centrale capable de 64 bits et i386 est de 32 bits.

Avec lscpu

Longue réponse: 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

Réponse courte lscpu | awk '/CPU op-mode/ {print}

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

Avec lshw

Réponse longue: courir sudo lshw

Réponse légèrement plus courte: sudo lshw -c cpu

Sortie:

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

Réponse encore plus courte: sudo lshw -c cpu | grep width

Sortie: width: 64 bits

Sergiy Kolodyazhnyy
la source
2

uname -pdonner l'architecture du processeur. Si cela donne x86_64, cela signifie que le processeur est en 64 bits.

Anand
la source
1
Ce n'est pas toujours juste, tho.
Braiam
2
@ Braiam: Ce serait formidable si vous pouviez expliquer pourquoi.
jobin
5
@Jobin: uname affiche des informations concernant le noyau en cours d' exécution, pas la CPU. Par exemple, vous pouvez exécuter un noyau 32 bits sur un processeur 64 bits.
Cristian Ciupitu
C'est vraiment faux.
Ken Sharp