Identificare se la CPU è 32bit o 64bit in Linux

Identificare se la CPU è 32bit o 64bit in Linux

Tendenzialmente dovremmo sapere a priori se il nostro pc monta CPU a 32bit o 64bit.

E, sempre in teoria, quelli moderni sono tutti a 64bit.

Ma se vogliamo esserne sicuri, vediamo come trovare questa informazione in Linux.

Vi posto tutti i comandi che conosco uno di fila all'altro:

# uname -m
x86_64

# lscpu | grep Architecture | awk '{print $2}'
x86_64

# lshw -class cpu
  *-cpu                     
       description: CPU
       product: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
       vendor: Intel Corp.
       physical id: 3d
       bus info: cpu@0
       version: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
       slot: SOCKET 0
       size: 1739MHz
       capacity: 4400MHz
       width: 64 bits
       clock: 100MHz
       capabilities: x86-64 ......
       configuration: cores=4 enabledcores=4 threads=8

# getconf LONG_BIT
64

# echo $MACHTYPE
x86_64-unknown-linux-gnu

# echo $HOSTTYPE
x86_64

# file /usr/bin/id | awk '{print $3}'
64-bit

# grep flags /proc/cpuinfo
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...
flags		: ... lm ...

Per quanto riguarda l'ultimo comando, ho messo tutti gli altri flags.

Ho tenuto solo quello che ci interessa, che può avere questi valori:

  • lm = Long mode cpu : 64-bit CPU
  • tm = Protected mode : 32-bit CPU
  • rm = Real Mode : 16-bit CPU

Enjoy!