Is my system able to run 64-bit OS?

I am using 32-bit Ubuntu 14.4 LTS. How can I tell if my computer can run a 64-bit os? I am confused between architecture and CPU op-mode.

An excerpt from /proc/cpuinfo:

$ grep " lm " /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 arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm tpr_shadow vnmi flexpriority

Output from lscpu:

kamal@kamal-G31T-M7:~$ lscpu
Architecture:          i686
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
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              10
CPU MHz:               2793.084
BogoMIPS:              5586.16
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
…

Solution 1:

If you look at the CPU op-mode(s) line, you'll see a clue:

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

So yes, your CPU supports 64bit instructions. You can use the 64bit version of Ubuntu if you want to. This will require reinstalling, there is no upgrade path.

Most CPUs you'll encounter —certainly from the last decade or so— will probably support 64bit. This isn't a guarantee because Intel still makes 132 32bit CPUs, however these are super-budget Atoms, Celerons and Pentiums, special-purpose Xeons and a few SoCs. AMD's offerings are similar.

If you can find out what the CPU is (i.e. read the Model name output), you end up with something very Google-able. Here is one of my servers:

Model name:            Intel(R) Pentium(R) CPU G3220 @ 3.00GHz

That gives this Intel ARK page which tells you all the CPU features and supported architectures. Of course yours will be different from that link but it's pretty reliable and easier to read then deciphering the flags in lscpu and cat /proc/cpuinfo.

Solution 2:

Please, don't be confused from the output.

Architecture: It means whether the current OS installed is 32-bit or 64-bit.

CPU op-mode(s): This is the real output that says as to whether your CPU is 64-bit or not.

To cross-check, from Ubuntu:

lscpu gathers CPU architecture information like number of CPUs, threads, cores, sockets, NUMA nodes, information about CPU caches, CPU family, model, bogoMIPS, byte order and stepping from sysfs and /proc/cpuinfo, and prints it in a human-readable format. It supports both online and offline CPUs. It can also print out in a parsable format, including how different caches are shared by different CPUs, which can be fed to other programs.

So, run the command:

grep "model name" /proc/cpuinfo 

you will get the model number of your CPU. Do a google search and there you will find something that says as to whether your CPU is 64-bit or not.

From Intel:

3

Solution 3:

Your CPU supports 64-bit systems.

It can be seen in CPU op-mode(s).