Check if a machine runs on 64 bit or 32 bit Processor/Linux OS?

755

Q. How can I check if my server is running on a 64 bit processor and running 64 bit OS or 32 bit operating system?

Before answering above question we have to understand below points.

We can run a 32-bit Operating system on a 64 bit processor/system.
We can run a 64-bit operating system on a 64 bit processor/system.
We cannot run a 64-bit operating system on a 32-bit processor/system.
We can run a 32-bit operating system on a 32-bit processor/system.

Once we are clear about the above 4 points then we can see if our machine have a 64 bit processor or not.

How to check if my CPU is a 64-bit supported processor or not?

There are two commands to check if it’s a 64 bit processor or not

Option 1 : use lscpu command to check if it supports multiple CPU operation modes(either 16, 32 or 64 bit mode).

as a normal/root user execute below command

lscpu | grep op-mode

Sample output on a 64-bit processor

This e-mail address is being protected from spambots. You need JavaScript enabled to view it
 :~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit

Sample output on a 32-bit processor

[surendra@www ~]$ lscpu | grep op-modeCPU op-mode(s): 32-bit

If you observe the first output will say that your CPU supports both 32-bit as well as 64 bit operating systems. This indicates that it’s 64-bit processor from our above 4 rules. But in the second machine it say’s only 32-bit CPU mode which indicates its a 32 bit processor.

Option 2: Use proc file system file CPU info to get the processor type.

grep -w lm /proc/cpuinfo

Sample output on a 64-bit processor when searching for lm(long mode) bit is set or not

grep -w lm /proc/cpuinfoflags : tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr

Sample output on a 32-bit processor when search for lm(long mode) bit.

grep -w lm /proc/cpuinfo

[surendra@www ~]$ grep lm /proc/cpuinfo

If you don’t get any output that indicates its not a 64 bit processor.

How to check if my Operating system is a 64-bit or 32-bit?

Before knowing about this you should know about i386, i486 etc naming convention.

What is difference between i386, i486, i586, and i686 OS?

Read Full post:   http://www.linuxnix.com/find-determine-if-a-machine-runs-64-bit-linux-os-or-not/