---

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

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
[email protected]:~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit
Sample output on a 32-bit processor

[[email protected] ~]$ lscpu | grep op-mode
CPU 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/cpuinfo
flags : 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
[[email protected] ~]$ 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/