Categories
Informatique

32 ou 64 bits ?

Comment savoir si son noyau Solaris/Linux chargé est un 32 ou 64 bits ? Comment savoir si un binaire est compilé en 32 ou 64 bits ? Et le processeur, 32 ou 64 bits ?
Simple question à se poser dans un dîner mondain 🙂

Sous Solaris

Pour le noyau chargé:

Utilisation de la commande “isainfo”

 # isainfo -v 64-bit sparcv9 applications vis2 vis 32-bit sparc applications vis2 vis v8plus div32 mul32 

Pour un binaire compilé :

Utilisation de la commande “file”

# file /bin/java
 /bin/java: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped

Sous Linux

Pour le noyau chargé :

# uname -a Linux server 2.6.5-7.252-smp #1 SMP Tue Feb 14 11:11:04 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux

Pour le processeur :

# grep flags /proc/cpuinfo 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 nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
  • “Real mode” : 16 bits
  • “Protected Mode” : 32 bits
  • “lm” correspond à Long Mode : 64 bits

Pour un binaire compilé : utilisation de la commande “file“

# file /bin/java
 /bin/java: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped